.append(FIELD_SENTENCE_DISTANCE, r.getSentenceDistance()) .append(FIELD_NORMAL_SENTENCE_DISTANCE, normalize(r.getSentenceDistance())) .append(FIELD_WORD_DISTANCE, r.getWordDistance()) .append(FIELD_NORMAL_WORD_DISTANCE, normalize(r.getWordDistance())) .append(FIELD_DEPENDENCY_DISTANCE, r.getDependencyDistance()) .append(
@Test public void testStructureSentenceGivesRelation() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("Jon, at last, visits London."); final Person person = Annotations.createPerson(jCas, 0, 3, "Jon"); final Location location = Annotations.createLocation(jCas, 21, 27, "London", ""); final uk.gov.dstl.baleen.types.structure.Sentence s = new uk.gov.dstl.baleen.types.structure.Sentence(jCas); s.setBegin(0); s.setEnd(jCas.getDocumentText().length()); s.addToIndexes(); addWordTokens(); processJCas(SentenceRelationshipAnnotator.PARAM_VALUE_STRATEGY, ValueStrategy.BETWEEN); final List<Relation> relations = new ArrayList<>(JCasUtil.select(jCas, Relation.class)); assertEquals(1, relations.size()); final Relation r = relations.get(0); assertEquals(person, r.getSource()); assertEquals(location, r.getTarget()); assertEquals("", r.getRelationshipType()); assertEquals(", at last, visits", r.getValue()); assertEquals(0, r.getSentenceDistance()); assertEquals(5, r.getWordDistance()); assertEquals(-1, r.getDependencyDistance()); }
@Test public void testLanguageSentenceGivesRelation() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("Jon, at last, visits London."); final Person person = Annotations.createPerson(jCas, 0, 3, "Jon"); final Location location = Annotations.createLocation(jCas, 21, 27, "London", ""); final uk.gov.dstl.baleen.types.structure.Sentence s = new uk.gov.dstl.baleen.types.structure.Sentence(jCas); s.setBegin(0); s.setEnd(jCas.getDocumentText().length()); s.addToIndexes(); addWordTokens(); processJCas(); final List<Relation> relations = new ArrayList<>(JCasUtil.select(jCas, Relation.class)); Assert.assertEquals(1, relations.size()); final Relation r = relations.get(0); assertEquals(person, r.getSource()); assertEquals(location, r.getTarget()); assertEquals("", r.getRelationshipType()); assertEquals("Jon, at last, visits London.", r.getValue()); assertEquals(0, r.getSentenceDistance()); assertEquals(5, r.getWordDistance()); assertEquals(-1, r.getDependencyDistance()); }
@Test public void testBothOnlyGivesOneRelationAndDependencyValue() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("Jon, at last, visits London."); final Person person = Annotations.createPerson(jCas, 0, 3, "Jon"); final Location location = Annotations.createLocation(jCas, 21, 27, "London", ""); final Sentence s1 = new Sentence(jCas); s1.setBegin(0); s1.setEnd(jCas.getDocumentText().length()); s1.addToIndexes(); final uk.gov.dstl.baleen.types.structure.Sentence s = new uk.gov.dstl.baleen.types.structure.Sentence(jCas); s.setBegin(0); s.setEnd(jCas.getDocumentText().length()); s.addToIndexes(); addDependencyInformation(); processJCas(SentenceRelationshipAnnotator.PARAM_VALUE_STRATEGY, ValueStrategy.DEPENDENCY); final List<Relation> relations = new ArrayList<>(JCasUtil.select(jCas, Relation.class)); Assert.assertEquals(1, relations.size()); final Relation r = relations.get(0); assertEquals(person, r.getSource()); assertEquals(location, r.getTarget()); assertEquals("", r.getRelationshipType()); assertEquals("visits", r.getValue()); assertEquals(0, r.getSentenceDistance()); assertEquals(5, r.getWordDistance()); assertEquals(1, r.getDependencyDistance()); }
assertEquals("visited", r1.getValue()); assertEquals(0, r1.getSentenceDistance()); assertEquals(1, r1.getWordDistance()); assertEquals(1, r1.getDependencyDistance()); assertEquals("visited London", r2.getValue()); // Not great, but is the shortest dependency path assertEquals(0, r2.getSentenceDistance()); assertEquals(3, r2.getWordDistance()); assertEquals(2, r2.getDependencyDistance());
assertEquals(2, lc.getSentenceDistance()); assertEquals(1, sc.getSentenceDistance()); assertEquals(-1, sc.getWordDistance()); assertEquals(-1, sc.getDependencyDistance());
assertEquals(r.getSentenceDistance(), relation.get(FIELD_SENTENCE_DISTANCE)); assertEquals(1.0, (double) relation.get(FIELD_NORMAL_SENTENCE_DISTANCE), 0.001); assertEquals(r.getWordDistance(), relation.get(FIELD_WORD_DISTANCE)); assertEquals(1.0 / 11, (double) relation.get(FIELD_NORMAL_WORD_DISTANCE), 0.001); assertEquals(-1, relation.get(FIELD_DEPENDENCY_DISTANCE));