private Event createEvent(String obs) { int lastSpace = obs.lastIndexOf(' '); if (lastSpace == -1) return null; else { String[] contexts = obs.substring(0,lastSpace).split("\\s+"); float[] values = RealValueFileEventStream.parseContexts(contexts); return new Event(obs.substring(lastSpace + 1),contexts,values); } }
public static List<Event> generateEvents(String[] sentence, String[] tags, Object[] additionalContext, POSContextGenerator cg) { List<Event> events = new ArrayList<Event>(sentence.length); for (int i = 0; i < sentence.length; i++) { // it is safe to pass the tags as previous tags because // the context generator does not look for non predicted tags String[] context = cg.getContext(i, sentence, tags, additionalContext); events.add(new Event(tags[i], context)); } return events; }
@Override public Event read() throws IOException { String line; if ((line = reader.readLine()) != null) { int si = line.indexOf(' '); String outcome = line.substring(0, si); String[] contexts = line.substring(si + 1).split(" "); float[] values = parseContexts(contexts); return new Event(outcome, contexts, values); } return null; } }
public static List<Event> generateEvents(String[] sentence, String[] outcomes, NameContextGenerator cg) { List<Event> events = new ArrayList<>(outcomes.length); for (int i = 0; i < outcomes.length; i++) { events.add(new Event(outcomes[i], cg.getContext(i, sentence, outcomes,null))); } cg.updateAdaptiveData(sentence, outcomes); return events; }
public Event next() { isVirgin = false; return new Event(sample.getLanguage().getLang(), mContextGenerator.getContext(sample.getContext().toString())); }
private ObjectStream<Event> createEventStream() { List<Event> events = new ArrayList<>(); for (int i = 0; i < cntx.length; i++) { events.add(new Event(outputs[i], cntx[i])); } return ObjectStreamUtils.createObjectStream(events); }
@Override public Event read() throws IOException { String line = textStream.read(); if (line == null) return null; String[] tokens = line.split("\\s+"); return new Event(tokens[tokens.length - 1], Arrays.copyOf(tokens, tokens.length - 1)); }
public Event next() { isVirgin = false; return new Event(sample.getCategory(), mContextGenerator.getContext(sample.getText(), sample.getExtraInformation())); }
@Test public void testNullContext() { try { new Event("o1", null); Assert.fail("NPE must be thrown"); } catch (NullPointerException expected) { } }
@Test public void testNullOutcome() { try { new Event(null, new String[]{"aa", "bb", "cc"}); Assert.fail("NPE must be thrown"); } catch (NullPointerException expected) { } }
@Test public void testNaiveBayes1() throws IOException { testDataIndexer.index(createTrainingStream()); NaiveBayesModel model = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); String label = "politics"; String[] context = {"bow=united", "bow=nations"}; Event event = new Event(label, context); // testModel(model, event, 1.0); // Expected value without smoothing testModel(model, event, 0.9681650180264167); // Expected value with smoothing }
@Test public void testNaiveBayes3() throws IOException { testDataIndexer.index(createTrainingStream()); NaiveBayesModel model = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); String label = "politics"; String[] context = {"bow=united"}; Event event = new Event(label, context); //testModel(model, event, 2.0/3.0); // Expected value without smoothing testModel(model, event, 0.6655036407766989); // Expected value with smoothing }
@Test public void testNaiveBayes4() throws IOException { testDataIndexer.index(createTrainingStream()); NaiveBayesModel model = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); String label = "politics"; String[] context = {}; Event event = new Event(label, context); testModel(model, event, 7.0 / 12.0); }
@Test public void testNaiveBayes2() throws IOException { testDataIndexer.index(createTrainingStream()); NaiveBayesModel model = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); String label = "sports"; String[] context = {"bow=manchester", "bow=united"}; Event event = new Event(label, context); // testModel(model, event, 1.0); // Expected value without smoothing testModel(model, event, 0.9658833555831029); // Expected value with smoothing }
@Test public void testNaiveBayes3() throws IOException { testDataIndexer.index(NaiveBayesCorrectnessTest.createTrainingStream()); NaiveBayesModel model1 = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); NaiveBayesModel model2 = persistedModel(model1); String label = "politics"; String[] context = {"bow=united"}; Event event = new Event(label, context); testModelOutcome(model1, model2, event); }
@Test public void testNaiveBayes4() throws IOException { testDataIndexer.index(NaiveBayesCorrectnessTest.createTrainingStream()); NaiveBayesModel model1 = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); NaiveBayesModel model2 = persistedModel(model1); String label = "politics"; String[] context = {}; Event event = new Event(label, context); testModelOutcome(model1, model2, event); }
@Test public void testNaiveBayes2() throws IOException { testDataIndexer.index(NaiveBayesCorrectnessTest.createTrainingStream()); NaiveBayesModel model1 = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); NaiveBayesModel model2 = persistedModel(model1); String label = "sports"; String[] context = {"bow=manchester", "bow=united"}; Event event = new Event(label, context); testModelOutcome(model1, model2, event); }
@Test public void testNaiveBayes1() throws IOException { testDataIndexer.index(NaiveBayesCorrectnessTest.createTrainingStream()); NaiveBayesModel model1 = (NaiveBayesModel) new NaiveBayesTrainer().trainModel(testDataIndexer); NaiveBayesModel model2 = persistedModel(model1); String label = "politics"; String[] context = {"bow=united", "bow=nations"}; Event event = new Event(label, context); testModelOutcome(model1, model2, event); }
@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()); } }