@Test public void testSingle() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Sir John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("John Smith")); p.setEnd(p.getBegin() + "John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Sir", out.getTitle()); assertEquals(jCas.getDocumentText().indexOf("Sir"), out.getBegin()); }
@Test public void testTwo() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Senator Col John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("John Smith")); p.setEnd(p.getBegin() + "John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Senator Col", out.getTitle()); assertEquals(jCas.getDocumentText().indexOf("Senator"), out.getBegin()); }
@Test public void testThree() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Prime Minister John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("John Smith")); p.setEnd(p.getBegin() + "John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Prime Minister", out.getTitle()); assertEquals(jCas.getDocumentText().indexOf("Prime"), out.getBegin()); }
@Test public void testPreciseConstructApositive() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "The prime minister, David Cameron explained on Tuesday."; // david camera - prime minister jCas.setDocumentText(text); Person p = new Person(jCas); p.setBegin(text.indexOf("David Cameron")); p.setEnd(p.getBegin() + "David Cameron".length()); p.addToIndexes(); processJCas(); processJCasWithSieve(4); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); assertEquals(1, targets.size()); }
@Test public void testPreciseConstructPredicate() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "David Cameron is the prime minister."; // david camera - prime minister jCas.setDocumentText(text); Person p = new Person(jCas); p.setBegin(text.indexOf("David Cameron")); p.setEnd(p.getBegin() + "David Cameron".length()); p.addToIndexes(); processJCas(); processJCasWithSieve(4); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); assertEquals(1, targets.size()); }
@Test public void testExisting() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Senator Col John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("Col John Smith")); p.setEnd(p.getBegin() + "Col John Smith".length()); p.setTitle("Col"); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Senator Col", out.getTitle()); assertEquals(jCas.getDocumentText().indexOf("Senator"), out.getBegin()); }
@Test public void testRelaxedHeadMatch() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "Circuit Judge N. Sanders has been seen talking to James when the Judge said ok."; jCas.setDocumentText(text); Person fsc = new Person(jCas); fsc.setBegin(text.indexOf("Circuit Judge N. Sanders")); fsc.setEnd(fsc.getBegin() + "Circuit Judge N. Sanders".length()); fsc.addToIndexes(); Person fc = new Person(jCas); fc.setBegin(text.indexOf("Judge", fsc.getEnd())); fc.setEnd(fc.getBegin() + "Judge".length()); fc.addToIndexes(); Person j = new Person(jCas); j.setBegin(text.indexOf("James")); j.setEnd(j.getBegin() + "James".length()); j.addToIndexes(); processJCas(); processJCasWithSieve(9); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); assertEquals(1, targets.size()); }
@Test public void testPronounResolutionSingleSentence() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "John went to see Lucy and he ate with her."; jCas.setDocumentText(text); Person john = new Person(jCas); john.setBegin(text.indexOf("John")); john.setEnd(john.getBegin() + "John".length()); john.addToIndexes(); Person lucy = new Person(jCas); lucy.setBegin(text.indexOf("Lucy")); lucy.setEnd(lucy.getBegin() + "Lucy".length()); lucy.addToIndexes(); processJCas(); processJCasWithSieve(10); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); assertEquals(2, targets.size()); // TODO: Need to test what that its he which is matched }
@Test public void testPronounResolutionTwoSentence() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "John went to see Lucy at the weekend. That was the first time that he saw her there."; jCas.setDocumentText(text); Person john = new Person(jCas); john.setBegin(text.indexOf("John")); john.setEnd(john.getBegin() + "John".length()); john.addToIndexes(); Person lucy = new Person(jCas); lucy.setBegin(text.indexOf("Lucy")); lucy.setEnd(lucy.getBegin() + "Lucy".length()); lucy.addToIndexes(); processJCas(); processJCasWithSieve(10); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); assertEquals(2, targets.size()); // TODO: Need to test what that its he which is matched } }
@Test public void testExistingMixed() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Senator Col John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("Col John Smith")); p.setEnd(p.getBegin() + "Col John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Senator Col", out.getTitle()); assertEquals("Senator Col John Smith", out.getCoveredText()); }
@Test public void testSingleExisting() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Sir John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("Sir John Smith")); p.setEnd(p.getBegin() + "Sir John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Sir", out.getTitle()); assertEquals("Sir John Smith", out.getCoveredText()); }
@Test public void testSingleExisting2() throws AnalysisEngineProcessException, ResourceInitializationException { jCas.setDocumentText("They refered to him as Mr. John Smith"); Person p = new Person(jCas); p.setBegin(jCas.getDocumentText().indexOf("Mr. John Smith")); p.setEnd(p.getBegin() + "Mr. John Smith".length()); p.addToIndexes(); processJCas(); Collection<Person> select = JCasUtil.select(jCas, Person.class); assertEquals(1, select.size()); Person out = select.iterator().next(); assertEquals("Mr", out.getTitle()); assertEquals("Mr. John Smith", out.getCoveredText()); }
@Test public void testExactStringMatch() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "Chris went to London and in London he saw Big Ben."; // london - london jCas.setDocumentText(text); Person chris = new Person(jCas); chris.setBegin(text.indexOf("Chris")); chris.setEnd(chris.getBegin() + "Chris".length()); chris.addToIndexes(); Location london = new Location(jCas); london.setBegin(text.indexOf("London")); london.setEnd(london.getBegin() + "London".length()); london.addToIndexes(); Location london2 = new Location(jCas); london2.setBegin(text.indexOf("London", london.getEnd())); london2.setEnd(london2.getBegin() + "London".length()); london2.addToIndexes(); processJCas(); processJCasWithSieve(1); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); List<Location> location = new ArrayList<>(JCasUtil.select(jCas, Location.class)); assertEquals(1, targets.size()); assertSame(targets.get(0), location.get(0).getReferent()); assertSame(targets.get(0), location.get(1).getReferent()); }
@Test public void testRelaxedStringMatch() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "The University of Warwick is near Coventry and that was the University at which Chris studied."; // university of warwick - university jCas.setDocumentText(text); Person chris = new Person(jCas); chris.setBegin(text.indexOf("Chris")); chris.setEnd(chris.getBegin() + "Chris".length()); chris.addToIndexes(); Organisation uow = new Organisation(jCas); uow.setBegin(text.indexOf("University of Warwick")); uow.setEnd(uow.getBegin() + "University of Warwick".length()); uow.addToIndexes(); Organisation u = new Organisation(jCas); u.setBegin(text.indexOf("University", uow.getEnd())); u.setEnd(u.getBegin() + "University".length()); u.addToIndexes(); processJCas(); processJCasWithSieve(2); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); List<Organisation> location = new ArrayList<>(JCasUtil.select(jCas, Organisation.class)); assertEquals(1, targets.size()); assertSame(targets.get(0), location.get(0).getReferent()); assertSame(targets.get(0), location.get(1).getReferent()); }
@Test public void testExtractReferenceTargets() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "Chris went to London and he saw Big Ben there."; // there - london jCas.setDocumentText(text); Person chris = new Person(jCas); chris.setBegin(text.indexOf("Chris")); chris.setEnd(chris.getBegin() + "Chris".length()); chris.addToIndexes(); ReferenceTarget target = new ReferenceTarget(jCas); target.addToIndexes(); Location london = new Location(jCas); london.setBegin(text.indexOf("London")); london.setEnd(london.getBegin() + "London".length()); london.setReferent(target); london.addToIndexes(); Location there = new Location(jCas); there.setBegin(text.indexOf("there")); there.setEnd(there.getBegin() + "there".length()); there.setReferent(target); there.addToIndexes(); processJCas(); processJCasWithSieve(0); // We should have a reference target and it should be different to the previous, as its been // recreated. Collection<ReferenceTarget> targets = JCasUtil.select(jCas, ReferenceTarget.class); assertEquals(1, targets.size()); assertTrue(targets.iterator().next().getInternalId() != target.getInternalId()); }
@Test public void testAthleteIsMadePersonNoSource() throws AnalysisEngineProcessException, ResourceInitializationException { processJCas( TemplateFieldToEntityAnnotator.PARAM_ENTITY_TYPE, "common.Person", TemplateFieldToEntityAnnotator.PARAM_FIELD_NAME, "athlete", TemplateFieldToEntityAnnotator.PARAM_RECORD_NAME, "report"); Person person = JCasUtil.selectSingle(jCas, Person.class); assertEquals("fox", person.getValue()); assertEquals(16, person.getBegin()); assertEquals(19, person.getEnd()); }
@Test public void testAthleteIsMadePersonSource() throws AnalysisEngineProcessException, ResourceInitializationException { processJCas( TemplateFieldToEntityAnnotator.PARAM_ENTITY_TYPE, "common.Person", TemplateFieldToEntityAnnotator.PARAM_FIELD_NAME, "athlete", TemplateFieldToEntityAnnotator.PARAM_RECORD_NAME, "report", TemplateFieldToEntityAnnotator.PARAM_SOURCE, "brownSauce"); Person person = JCasUtil.selectSingle(jCas, Person.class); assertEquals("fox", person.getValue()); assertEquals(16, person.getBegin()); assertEquals(19, person.getEnd()); }
public void assertPersonMatches() { final Person inPerson = JCasUtil.selectSingle(in, Person.class); final Person outPerson = JCasUtil.selectSingle(out, Person.class); assertEquals(inPerson.getGender(), outPerson.getGender()); assertEquals(inPerson.getBegin(), outPerson.getBegin()); assertEquals(inPerson.getEnd(), outPerson.getEnd()); assertEquals(inPerson.getValue(), outPerson.getValue()); assertEquals(0, inPerson.getConfidence(), outPerson.getConfidence()); // Check that person to entity is deferenced and its the same as the one we get... final ReferenceTarget inRt = JCasUtil.selectSingle(in, ReferenceTarget.class); final ReferenceTarget outRtFromJCas = JCasUtil.selectSingle(out, ReferenceTarget.class); final ReferenceTarget outRt = outPerson.getReferent(); assertNotNull(outRt); assertEquals(inRt.getBegin(), outRt.getBegin()); assertEquals(inRt.getEnd(), outRt.getEnd()); assertSame(outRt, outRtFromJCas); }
assertEquals(12 + 2, p.getBegin()); assertEquals(12 + 10, p.getEnd());
@Test public void testWholeDocument() { final TextBlock block = new TextBlock(jCas); assertTrue(block.isWholeDocument()); assertEquals(0, block.getBegin()); assertEquals(DOC_TEXT, block.getCoveredText()); assertEquals(DOC_TEXT, block.getDocumentText()); assertEquals(DOC_TEXT.length(), block.getEnd()); assertSame(jCas, block.getJCas()); assertNull(block.getText()); final Entity annotation = block.newAnnotation(Entity.class, 3, 7); assertNotNull(annotation); assertEquals(3, annotation.getBegin()); assertEquals(7, annotation.getEnd()); final Person p = new Person(jCas); block.setBeginAndEnd(p, 2, 10); assertEquals(2, p.getBegin()); assertEquals(10, p.getEnd()); assertEquals(1, block.toDocumentOffset(1)); assertEquals(1, block.toBlockOffset(1)); assertEquals(3, block.select(Buzzword.class).size()); } }