p.setEnd(p.getBegin() + "John".length()); p.setValue("John"); p.setReferent(chrisRt); p.addToIndexes(); he.setEnd(he.getBegin() + "Jonny".length()); he.setValue("Jonny"); he.setReferent(chrisRt); he.addToIndexes();
@Test public void testExistingReferentsMerge() throws Exception { AnalysisEngine corefCapAE = AnalysisEngineFactory.createEngine( CorefCapitalisationAndApostrophe.class, "mergeReferents", true); jCas.setDocumentText(TEXT); ReferenceTarget rt1 = Annotations.createReferenceTarget(jCas); ReferenceTarget rt2 = Annotations.createReferenceTarget(jCas); Person p1 = Annotations.createPerson(jCas, 0, 5, JAMES); p1.setReferent(rt1); Person p2 = Annotations.createPerson(jCas, 22, 27, JAMES_UC); p2.setReferent(rt2); corefCapAE.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rtt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Person p1t = JCasUtil.selectByIndex(jCas, Person.class, 0); Person p2t = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals(rtt, p1t.getReferent()); assertEquals(rtt, p2t.getReferent()); }
@Test public void testExistingReferentsNoMerge() throws Exception { AnalysisEngine corefCapAE = AnalysisEngineFactory.createEngine(CorefCapitalisationAndApostrophe.class); jCas.setDocumentText(TEXT); ReferenceTarget rt1 = Annotations.createReferenceTarget(jCas); ReferenceTarget rt2 = Annotations.createReferenceTarget(jCas); Person p1 = Annotations.createPerson(jCas, 0, 5, JAMES); p1.setReferent(rt1); Person p2 = Annotations.createPerson(jCas, 22, 27, JAMES_UC); p2.setReferent(rt2); corefCapAE.process(jCas); assertEquals(2, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt1t = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); ReferenceTarget rt2t = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 1); Person p1t = JCasUtil.selectByIndex(jCas, Person.class, 0); Person p2t = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals(rt1t, p1t.getReferent()); assertEquals(rt2t, p2t.getReferent()); }
@Test public void testAlreadyExists() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "John say that he would visit London"; jCas.setDocumentText(text); ReferenceTarget rt = new ReferenceTarget(jCas); rt.addToIndexes(); Person p = new Person(jCas); p.setBegin(0); p.setEnd(4); p.setReferent(rt); p.setValue("John"); p.addToIndexes(); Person pHe = new Person(jCas); pHe.setBegin(14); pHe.setEnd(16); pHe.setReferent(rt); pHe.setValue("he"); pHe.addToIndexes(); Location l = new Location(jCas); l.setBegin(text.indexOf("London")); l.setEnd(l.getBegin() + "London".length()); l.setValue("London"); l.addToIndexes(); processJCas(); List<Entity> list = new ArrayList<>(JCasUtil.select(jCas, Entity.class)); assertEquals(3, list.size()); // Check no additional entities have been created }
@Test public void test() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "John say that he would visit London"; jCas.setDocumentText(text); ReferenceTarget rt = new ReferenceTarget(jCas); rt.addToIndexes(); Person p = new Person(jCas); p.setBegin(0); p.setEnd(4); p.setReferent(rt); p.setValue("John"); p.addToIndexes(); WordToken he = new WordToken(jCas); he.setBegin(text.indexOf("he")); he.setEnd(he.getBegin() + "he".length()); he.setReferent(rt); he.addToIndexes(); Location l = new Location(jCas); l.setBegin(text.indexOf("London")); l.setEnd(l.getBegin() + "London".length()); l.setValue("London"); l.addToIndexes(); processJCas(); List<Entity> list = new ArrayList<>(JCasUtil.select(jCas, Entity.class)); assertEquals(3, list.size()); assertEquals("John", list.get(0).getValue()); assertEquals("John", list.get(1).getValue()); assertTrue(list.get(1) instanceof Person); assertEquals("London", list.get(2).getValue()); }
ReferenceTarget r4 = Annotations.createReferenceTarget(jCas); p1.setReferent(r1); p2.setReferent(r2); p3.setReferent(r3); p4.setReferent(r4); c1.setReferent(r1); c2.setReferent(r2); c3.setReferent(r3); c4.setReferent(r4);
@Test public void testTwoExistingReferent() throws Exception { AnalysisEngine corefCapAE = AnalysisEngineFactory.createEngine(CorefCapitalisationAndApostrophe.class); jCas.setDocumentText(TEXT + " James has not been to Guatemala."); ReferenceTarget rt = Annotations.createReferenceTarget(jCas); Person p1 = Annotations.createPerson(jCas, 0, 5, JAMES); p1.setReferent(rt); Person p2 = Annotations.createPerson(jCas, 22, 27, JAMES_UC); p2.setReferent(rt); Annotations.createPerson(jCas, 56, 61, JAMES); corefCapAE.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rtt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Person p1t = JCasUtil.selectByIndex(jCas, Person.class, 0); Person p2t = JCasUtil.selectByIndex(jCas, Person.class, 1); Person p3t = JCasUtil.selectByIndex(jCas, Person.class, 2); assertEquals(rtt, p1t.getReferent()); assertEquals(rtt, p2t.getReferent()); assertEquals(rtt, p3t.getReferent()); }
@Test public void testMultiplePersonWithSameReference() throws Exception { jCas.setDocumentText( "Mr Simon Brown, was caught stealing sausages. Brown was found guilty. Mr Simon Brown was sentenced to 5 years."); ReferenceTarget rt = new ReferenceTarget(jCas); Person pSimon = new Person(jCas, 0, 14); pSimon.setReferent(rt); pSimon.addToIndexes(); Person pPeter = new Person(jCas, 70, 84); pPeter.setReferent(rt); pPeter.addToIndexes(); processJCas(); assertEquals(3, JCasUtil.select(jCas, Person.class).size()); Person p1 = JCasUtil.selectByIndex(jCas, Person.class, 0); assertEquals("Mr Simon Brown", p1.getCoveredText()); Person p2 = JCasUtil.selectByIndex(jCas, Person.class, 2); assertEquals("Mr Simon Brown", p2.getCoveredText()); Person p3 = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals("Brown", p3.getCoveredText()); assertEquals(rt, p3.getReferent()); } }
@Test public void testMultiplePersonWithReferences() throws Exception { jCas.setDocumentText( "Mr Simon Brown, was caught stealing sausages. Brown was found guilty. Mr Peter Brown was acquitted."); Person pSimon = new Person(jCas, 0, 14); pSimon.setReferent(new ReferenceTarget(jCas)); pSimon.addToIndexes(); Person pPeter = new Person(jCas, 70, 84); pPeter.setReferent(new ReferenceTarget(jCas)); pPeter.addToIndexes(); processJCas(); assertEquals(3, JCasUtil.select(jCas, Person.class).size()); Person p1 = JCasUtil.selectByIndex(jCas, Person.class, 0); assertEquals("Mr Simon Brown", p1.getCoveredText()); Person p2 = JCasUtil.selectByIndex(jCas, Person.class, 2); assertEquals("Mr Peter Brown", p2.getCoveredText()); Person p3 = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals("Brown", p3.getCoveredText()); assertNull(p3.getReferent()); }
@Test public void testOneExistingReferent() throws Exception { AnalysisEngine corefCapAE = AnalysisEngineFactory.createEngine(CorefCapitalisationAndApostrophe.class); jCas.setDocumentText(TEXT); ReferenceTarget rt = Annotations.createReferenceTarget(jCas); Person p1 = Annotations.createPerson(jCas, 0, 5, JAMES); p1.setReferent(rt); Annotations.createPerson(jCas, 22, 27, JAMES_UC); corefCapAE.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rtt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Person p1t = JCasUtil.selectByIndex(jCas, Person.class, 0); Person p2t = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals(rtt, p1t.getReferent()); assertEquals(rtt, p2t.getReferent()); }
chris.setBegin(jCas.getDocumentText().indexOf("Chris")); chris.setEnd(chris.getBegin() + "Chris".length()); chris.setReferent(chrisRT); chris.addToIndexes(); he.setBegin(jCas.getDocumentText().indexOf("he")); he.setEnd(he.getBegin() + "he".length()); he.setReferent(chrisRT); he.addToIndexes();
@Test public void testSinglePersonWithReferences() throws Exception { jCas.setDocumentText("Mr Simon Brown, was caught stealing sausages. Brown was found guilty."); Person p = new Person(jCas, 0, 14); p.setReferent(new ReferenceTarget(jCas)); p.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Person.class).size()); Person p1 = JCasUtil.selectByIndex(jCas, Person.class, 0); assertEquals("Mr Simon Brown", p1.getCoveredText()); Person p2 = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals("Brown", p2.getCoveredText()); assertNotNull(p1.getReferent()); assertEquals(p1.getReferent(), p2.getReferent()); }
p.setEnd(5); p.setValue(PERSON); p.setReferent(new ReferenceTarget(jCas)); p.addToIndexes();
pJohn.setReferent(rtJohn); pJohn.addToIndexes(); pJS.setReferent(rtJS); pJS.addToIndexes();
pJohn.setReferent(rtJohn); pJohn.addToIndexes(); pJS.setReferent(rtJS); pJS.addToIndexes();
p.setReferent(rtP); p.addToIndexes(); pJS.setReferent(rtJS); pJS.addToIndexes(jCas);
pJS.setReferent(rtJS); pJS.addToIndexes(jCas);
public JCasSerializationTester() throws UIMAException { out = JCasFactory.createJCas(); in = JCasFactory.createJCas(); in.setDocumentText("This is a test"); final DocumentAnnotation inDA = (DocumentAnnotation) in.getDocumentAnnotationFs(); inDA.setDocumentClassification("CLASS"); final Location l = new Location(in); l.setBegin(10); l.setEnd(12); l.setGeoJson(GEO_JSON); l.setValue("Dinagat Islands"); l.setConfidence(0.9d); l.addToIndexes(in); final ReferenceTarget rt = new ReferenceTarget(in); rt.setBegin(0); rt.setEnd(1); rt.addToIndexes(in); final Person p = new Person(in); p.setBegin(2); p.setEnd(8); p.setGender("Male"); p.setValue("Peter"); p.setConfidence(0.5d); p.setReferent(rt); p.addToIndexes(in); }
p.setEnd(5); p.setValue(PERSON); p.setReferent(new ReferenceTarget(jCas)); p.addToIndexes();
js.setValue("John Smith"); js.setConfidence(0.9d); js.setReferent(target); js.addToIndexes(jCas); he.setValue("He"); he.setConfidence(0.9d); he.setReferent(target); he.addToIndexes(jCas);