.append(FIELD_END, r.getEnd()) .append(FIELD_CONFIDENCE, r.getConfidence()) .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()))
final Relation sc = findRelationBetween(relations, steve, chris); assertEquals(1, js.getSentenceDistance()); assertEquals(1, ls.getSentenceDistance()); assertEquals(1, sc.getSentenceDistance());
final Relation sc = findRelationBetween(relations, steve, chris); assertEquals(1, js.getSentenceDistance()); assertEquals(2, jc.getSentenceDistance()); assertEquals(1, sc.getSentenceDistance());
final Relation sc = findRelationBetween(relations, steve, chris); assertEquals(1, js.getSentenceDistance()); assertEquals(1, ls.getSentenceDistance()); assertEquals(2, jc.getSentenceDistance()); assertEquals(2, lc.getSentenceDistance()); assertEquals(1, sc.getSentenceDistance()); assertEquals(-1, sc.getWordDistance()); assertEquals(-1, sc.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 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 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(0, r1.getSentenceDistance()); assertEquals(1, r1.getWordDistance()); assertEquals(1, r1.getDependencyDistance()); assertEquals(0, r2.getSentenceDistance()); assertEquals(3, r2.getWordDistance()); assertEquals(2, r2.getDependencyDistance());
assertEquals(r.getRelationshipType(), relation.get(FIELD_RELATIONSHIP_TYPE)); assertEquals(r.getRelationSubType(), relation.get(FIELD_RELATIONSHIP_SUBTYPE)); 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));