.append(FIELD_WORD_DISTANCE, r.getWordDistance()) .append(FIELD_NORMAL_WORD_DISTANCE, normalize(r.getWordDistance())) .append(FIELD_DEPENDENCY_DISTANCE, r.getDependencyDistance()) .append( FIELD_NORMAL_DEPENDENCY_DISTANCE, normalize(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 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(1, sc.getSentenceDistance()); assertEquals(-1, sc.getWordDistance()); assertEquals(-1, sc.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());