return Optional.of(new Quantity(jCas)); case "Temporal": return Optional.of(new Temporal(jCas)); case "Url": return Optional.of(new Url(jCas));
return Optional.of(new Quantity(jCas)); case "Temporal": return Optional.of(new Temporal(jCas)); case "Url": return Optional.of(new Url(jCas));
final Temporal temporal = new Temporal(jCas); temporal.setPrecision(TemporalUtils.PRECISION_EXACT); temporal.setScope(TemporalUtils.SCOPE_SINGLE);
final Temporal temporal = new Temporal(jCas); temporal.setPrecision(TemporalUtils.PRECISION_EXACT); temporal.setScope(TemporalUtils.SCOPE_SINGLE);
@Test public void testCurrencyInDateNoValue() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CleanTemporal.class); jCas.setDocumentText("It cost $4.10"); Temporal dt = new Temporal(jCas); dt.setBegin(8); dt.setEnd(13); dt.addToIndexes(); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); ae.process(jCas); assertEquals(0, JCasUtil.select(jCas, Temporal.class).size()); } }
public static Temporal createTemporal(JCas jCas, int begin, int end, String value) { Temporal d2 = new Temporal(jCas); d2.setValue(value); d2.setBegin(begin); d2.setEnd(end); d2.addToIndexes(); return d2; }
@Test public void testCurrencyInDate() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CleanTemporal.class); jCas.setDocumentText("It cost $4.10"); Temporal dt = new Temporal(jCas); dt.setBegin(8); dt.setEnd(13); dt.setValue(dt.getCoveredText()); dt.addToIndexes(); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); ae.process(jCas); assertEquals(0, JCasUtil.select(jCas, Temporal.class).size()); }
@Test public void test4() throws UIMAException { createPOS(); Person person = new Person(jCas, 0, 2); // He person.addToIndexes(); Money money = new Money(jCas, 59, 71); // $1.8 billion money.addToIndexes(); Temporal date = new Temporal(jCas, 75, 84); // September date.addToIndexes(); processJCas(NPVNP.PARAM_ONLY_EXISTING, true); assertEquals(0, JCasUtil.select(jCas, Relation.class).size()); }
@Override public void map(JCas jCas, Element element, AnnotationCollector collector) { switch (element.tagName().toLowerCase()) { case "time": collector.add(new Temporal(jCas)); break; case "meter": collector.add(new Quantity(jCas)); break; case "dfn": collector.add(new Buzzword(jCas)); break; case "address": collector.add(new Location(jCas)); break; case "abbr": collector.add(new Buzzword(jCas)); break; case "cite": collector.add(new DocumentReference(jCas)); break; default: return; } } }
@Override public void map(JCas jCas, Element element, AnnotationCollector collector) { switch (element.tagName().toLowerCase()) { case "time": collector.add(new Temporal(jCas)); break; case "meter": collector.add(new Quantity(jCas)); break; case "dfn": collector.add(new Buzzword(jCas)); break; case "address": collector.add(new Location(jCas)); break; case "abbr": collector.add(new Buzzword(jCas)); break; case "cite": collector.add(new DocumentReference(jCas)); break; default: return; } } }
String text = "26 November 1992"; jCas.setDocumentText(text); Temporal temporal = new Temporal(jCas, 0, text.length()); temporal.setPrecision(TemporalUtils.PRECISION_EXACT); temporal.setScope(TemporalUtils.SCOPE_SINGLE);
Temporal dt1 = new Temporal(jCas); dt1.setValue("1 January 2010"); dt1.setBegin(16); Temporal dt2 = new Temporal(jCas); dt2.setValue("1 January 1930"); dt2.setBegin(60); dt2.addToIndexes(); Temporal dt3 = new Temporal(jCas); dt3.setValue("1 January 1930 to 1 January 2010"); dt3.setTimestampStart(jan1930); dt3.addToIndexes(); Temporal dt4 = new Temporal(jCas); dt4.setValue("Some date"); dt4.addToIndexes();
@Test public void testTime() throws Exception { jCas.setDocumentText("It was midnight, and all was quiet"); Temporal t = new Temporal(jCas, 7, 15); t.setTimestampStart(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setTimestampStop(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setScope("SINGLE"); t.setTemporalType("TIME"); t.setValue("midnight"); t.addToIndexes(); processJCas( NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME"); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0); assertEquals("00:00", tTest.getValue()); assertTrue(tTest.getIsNormalised()); }
@Test public void testTimeRange() throws Exception { jCas.setDocumentText("It was July, and all was quiet"); Temporal t = new Temporal(jCas, 7, 11); t.setTimestampStart(LocalDateTime.of(2016, 7, 1, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setTimestampStop(LocalDateTime.of(2016, 8, 1, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setScope("RANGE"); t.setTemporalType("DATE"); t.setValue("July"); t.addToIndexes(); processJCas( NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME"); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0); assertEquals("July", tTest.getValue()); assertFalse(tTest.getIsNormalised()); }
@Test public void testWrongType() throws Exception { jCas.setDocumentText("It was midnight, and all was quiet"); Temporal t = new Temporal(jCas, 7, 15); t.setTimestampStart(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setTimestampStop(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)); t.setScope("SINGLE"); t.setTemporalType("TIME"); t.setValue("midnight"); t.addToIndexes(); processJCas( NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "DATE"); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0); assertEquals("midnight", tTest.getValue()); assertFalse(tTest.getIsNormalised()); }
@Test public void testNoTimestamp() throws Exception { jCas.setDocumentText("It was midnight, and all was quiet"); Temporal t = new Temporal(jCas, 7, 15); t.setScope("SINGLE"); t.setTemporalType("TIME"); t.setValue("midnight"); t.addToIndexes(); processJCas( NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME"); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0); assertEquals("midnight", tTest.getValue()); assertFalse(tTest.getIsNormalised()); } }
private void createDocument(JCas jCas) { jCas.reset(); jCas.setDocumentText("Simon was born in November 1980 in London, UK"); Person p = new Person(jCas); p.setValue("Simon"); p.setBegin(0); p.setEnd(5); p.addToIndexes(); Temporal d = new Temporal(jCas); d.setValue(NOVEMBER); d.setBegin(18); d.setEnd(26); d.addToIndexes(); Location l = new Location(jCas); l.setValue(LONDON); l.setBegin(35); l.setEnd(41); l.addToIndexes(); // entity value different to covering text "UK" Location l2 = new Location(jCas); l2.setValue(UNITED_KINGDOM); l2.setBegin(43); l2.setEnd(45); l2.addToIndexes(); assertEquals(1, JCasUtil.select(jCas, Person.class).size()); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); }
@Test public void test2() throws UIMAException { createPOS(); Person person = new Person(jCas, 0, 1); // H person.addToIndexes(); Money money = new Money(jCas, 59, 71); // $1.8 billion money.addToIndexes(); Temporal date = new Temporal(jCas, 75, 84); // September date.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Relation.class).size()); Relation r1 = JCasUtil.selectByIndex(jCas, Relation.class, 0); assertEquals("reckons", r1.getValue()); assertEquals(person, r1.getSource()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r1.getTarget().getTypeName()); assertEquals("the current account deficit", r1.getTarget().getCoveredText()); Relation r2 = JCasUtil.selectByIndex(jCas, Relation.class, 1); assertEquals("will narrow to", r2.getValue()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r2.getSource().getTypeName()); assertEquals("the current account deficit", r2.getSource().getCoveredText()); assertEquals(money, r2.getTarget()); }
@Test public void test3() throws UIMAException { createPOS(); Person person = new Person(jCas, 0, 2); // He person.addToIndexes(); Money money = new Money(jCas, 54, 71); // only $1.8 billion money.addToIndexes(); Temporal date = new Temporal(jCas, 75, 84); // September date.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Relation.class).size()); Relation r1 = JCasUtil.selectByIndex(jCas, Relation.class, 0); assertEquals("reckons", r1.getValue()); assertEquals(person, r1.getSource()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r1.getTarget().getTypeName()); assertEquals("the current account deficit", r1.getTarget().getCoveredText()); Relation r2 = JCasUtil.selectByIndex(jCas, Relation.class, 1); assertEquals("will narrow to", r2.getValue()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r2.getSource().getTypeName()); assertEquals("the current account deficit", r2.getSource().getCoveredText()); assertEquals(money, r2.getTarget()); }
@Test public void test1() throws UIMAException { createPOS(); Person person = new Person(jCas, 0, 2); // He person.addToIndexes(); Money money = new Money(jCas, 59, 71); // $1.8 billion money.addToIndexes(); Temporal date = new Temporal(jCas, 75, 84); // September date.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Relation.class).size()); Relation r1 = JCasUtil.selectByIndex(jCas, Relation.class, 0); assertEquals("reckons", r1.getValue()); assertEquals(person, r1.getSource()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r1.getTarget().getTypeName()); assertEquals("the current account deficit", r1.getTarget().getCoveredText()); Relation r2 = JCasUtil.selectByIndex(jCas, Relation.class, 1); assertEquals("will narrow to", r2.getValue()); assertEquals("uk.gov.dstl.baleen.types.semantic.Entity", r2.getSource().getTypeName()); assertEquals("the current account deficit", r2.getSource().getCoveredText()); assertEquals(money, r2.getTarget()); }