/** * Generates a string representing the specified event. * @param event The event for which a string representation is needed. * @return A string representing the specified event. */ public static String toLine(Event event) { StringBuilder sb = new StringBuilder(); sb.append(event.getOutcome()); String[] context = event.getContext(); for (int ci = 0,cl = context.length; ci < cl; ci++) { sb.append(" ").append(context[ci]); } sb.append(System.getProperty("line.separator")); return sb.toString(); }
while ((ev = eventStream.read()) != null) { events.add(ev); update(ev.getContext(), counter);
protected List<ComparableEvent> index(ObjectStream<Event> events, Map<String, Integer> predicateIndex) throws IOException { Map<String, Integer> omap = new HashMap<>(); List<ComparableEvent> eventsToCompare = new ArrayList<>(); Event ev; while ((ev = events.read()) != null) { omap.putIfAbsent(ev.getOutcome(), omap.size()); int[] cons = Arrays.stream(ev.getContext()) .map(pred -> predicateIndex.get(pred)) .filter(Objects::nonNull) .mapToInt(i -> i).toArray(); // drop events with no active features if (cons.length > 0) { int ocID = omap.get(ev.getOutcome()); eventsToCompare.add(new ComparableEvent(ocID, cons, ev.getValues())); } else { display("Dropped event " + ev.getOutcome() + ":" + Arrays.asList(ev.getContext()) + "\n"); } } outcomeLabels = toIndexedStringArray(omap); predLabels = toIndexedStringArray(predicateIndex); return eventsToCompare; }
eventStore.writeInt(ev.getContext().length); String[] ec = ev.getContext(); update(ec, counter); for (String ctxString : ec)
String[] contextStrings = events[ei].getContext(); float[] values = events[ei].getValues(); int oi = omap.get(events[ei].getOutcome()); String[] contextStrings = taggerEvent.getContext(); float[] values = taggerEvent.getValues(); int oi = omap.get(taggerEvent.getOutcome());
protected static void testModelOutcome(NaiveBayesModel model1, NaiveBayesModel model2, Event event) { String[] labels1 = extractLabels(model1); String[] labels2 = extractLabels(model2); Assert.assertArrayEquals(labels1, labels2); double[] outcomes1 = model1.eval(event.getContext()); double[] outcomes2 = model2.eval(event.getContext()); Assert.assertArrayEquals(outcomes1, outcomes2, 0.000000000001); }
public static void testModel(MaxentModel model, double expecedAccuracy) throws IOException { List<Event> devEvents = readPpaFile("devset"); int total = 0; int correct = 0; for (Event ev: devEvents) { String targetLabel = ev.getOutcome(); double[] ocs = model.eval(ev.getContext()); int best = 0; for (int i = 1; i < ocs.length; i++) { if (ocs[i] > ocs[best]) { best = i; } } String predictedLabel = model.getOutcome(best); if (targetLabel.equals(predictedLabel)) correct++; total++; } double accuracy = correct / (double) total; System.out.println("Accuracy on PPA devset: (" + correct + "/" + total + ") " + accuracy); Assert.assertEquals(expecedAccuracy, accuracy, .00001); } }
private void testModel(MaxentModel model, Event event, double higher_probability) { double[] outcomes = model.eval(event.getContext()); String outcome = model.getBestOutcome(outcomes); Assert.assertEquals(2, outcomes.length); Assert.assertEquals(event.getOutcome(), outcome); if (event.getOutcome().equals(model.getOutcome(0))) { Assert.assertEquals(higher_probability, outcomes[0], 0.0001); } if (!event.getOutcome().equals(model.getOutcome(0))) { Assert.assertEquals(1.0 - higher_probability, outcomes[0], 0.0001); } if (event.getOutcome().equals(model.getOutcome(1))) { Assert.assertEquals(higher_probability, outcomes[1], 0.0001); } if (!event.getOutcome().equals(model.getOutcome(1))) { Assert.assertEquals(1.0 - higher_probability, outcomes[1], 0.0001); } }
@Test public void testWithValues() { Event event = new Event("o1", new String[]{"aa", "bb", "cc"}); Assert.assertEquals("o1", event.getOutcome()); Assert.assertArrayEquals(new String[]{"aa", "bb", "cc"}, event.getContext()); Assert.assertNull(event.getValues()); Assert.assertEquals("o1 [aa bb cc]", event.toString()); }
@Test public void testWithoutValues() { Event event = new Event("o1", new String[]{"aa", "bb", "cc"}, new float[]{0.2F, 0.4F, 0.4F}); Assert.assertEquals("o1", event.getOutcome()); Assert.assertArrayEquals(new String[]{"aa", "bb", "cc"}, event.getContext()); Assert.assertArrayEquals(new float[]{0.2F, 0.4F, 0.4F}, event.getValues(), 0.001F); Assert.assertEquals("o1 [aa=0.2 bb=0.4 cc=0.4]", event.toString()); } }
/** * Generates a string representing the specified event. * @param event The event for which a string representation is needed. * @return A string representing the specified event. */ public static String toLine(Event event) { StringBuilder sb = new StringBuilder(); sb.append(event.getOutcome()); String[] context = event.getContext(); for (int ci = 0,cl = context.length; ci < cl; ci++) { sb.append(" ").append(context[ci]); } sb.append(System.getProperty("line.separator")); return sb.toString(); }
/** * Generates a string representing the specified event. * @param event The event for which a string representation is needed. * @return A string representing the specified event. */ public static String toLine(Event event) { StringBuilder sb = new StringBuilder(); sb.append(event.getOutcome()); String[] context = event.getContext(); for (int ci = 0,cl = context.length; ci < cl; ci++) { sb.append(" ").append(context[ci]); } sb.append(System.getProperty("line.separator")); return sb.toString(); }
while ((ev = eventStream.read()) != null) { events.add(ev); update(ev.getContext(), counter);
while ((ev = eventStream.read()) != null) { events.add(ev); update(ev.getContext(), counter);
eventCount++; eventStore.write(FileEventStream.toLine(ev)); String[] ec = ev.getContext(); update(ec, counter);
String[] econtext = ev.getContext(); ComparableEvent ce; System.err.println("Dropped event " + ev.getOutcome() + ":" + Arrays.asList(ev.getContext()));
protected List<ComparableEvent> index(ObjectStream<Event> events, Map<String, Integer> predicateIndex) throws IOException { Map<String, Integer> omap = new HashMap<>(); List<ComparableEvent> eventsToCompare = new ArrayList<>(); Event ev; while ((ev = events.read()) != null) { omap.putIfAbsent(ev.getOutcome(), omap.size()); int[] cons = Arrays.stream(ev.getContext()) .map(pred -> predicateIndex.get(pred)) .filter(Objects::nonNull) .mapToInt(i -> i).toArray(); // drop events with no active features if (cons.length > 0) { int ocID = omap.get(ev.getOutcome()); eventsToCompare.add(new ComparableEvent(ocID, cons, ev.getValues())); } else { display("Dropped event " + ev.getOutcome() + ":" + Arrays.asList(ev.getContext()) + "\n"); } } outcomeLabels = toIndexedStringArray(omap); predLabels = toIndexedStringArray(predicateIndex); return eventsToCompare; }
eventStore.writeInt(ev.getContext().length); String[] ec = ev.getContext(); update(ec, counter); for (String ctxString : ec)
protected List<ComparableEvent> index(ObjectStream<Event> events, Map<String, Integer> predicateIndex) throws IOException { Map<String, Integer> omap = new HashMap<>(); List<ComparableEvent> eventsToCompare = new ArrayList<>(); Event ev; while ((ev = events.read()) != null) { omap.putIfAbsent(ev.getOutcome(), omap.size()); int[] cons = Arrays.stream(ev.getContext()) .map(pred -> predicateIndex.get(pred)) .filter(Objects::nonNull) .mapToInt(i -> i).toArray(); // drop events with no active features if (cons.length > 0) { int ocID = omap.get(ev.getOutcome()); eventsToCompare.add(new ComparableEvent(ocID, cons, ev.getValues())); } else { display("Dropped event " + ev.getOutcome() + ":" + Arrays.asList(ev.getContext()) + "\n"); } } outcomeLabels = toIndexedStringArray(omap); predLabels = toIndexedStringArray(predicateIndex); return eventsToCompare; }
String[] context = ev.getContext(); update(context, predicateSet, counter, cutoff);