我试图使用 core-nlp 中的“SUTime”功能。如果我尝试将在线演示中的这个用于“sampleInput”
From next month, we will have meeting on every friday, from 3:00 pm to 4:00 pm.”
结果(参考日期:2017-1-1):
<TIMEX3 range="(2017-02-01,2017-02-28,P1M)" tid="t1" type="DATE" value="2017-02">next month</TIMEX3>
但是,当我尝试通过 SUTime API 运行相同的输入时,它会导致 (esp: 'Temporal Value')
<Token text="next month" Temporal Value="THIS P1M OFFSET P1M" Timex="null" Timex type="DATE" Start offset="5" End Offset="15" />
下面是代码:
List<CoreMap> timexAnnsAll = document.get(TimeAnnotations.TimexAnnotations.class);
for (CoreMap cm : timexAnnsAll) {
try {
List<CoreLabel> tokens = cm.get(CoreAnnotations.TokensAnnotation.class);
Temporal temporal = cm.get(TimeExpression.Annotation.class).getTemporal();
System.out.println("Token text : " + cm.toString());
System.out.println("Temporal Value : " + temporal.toString());
System.out.println("Timex : " + temporal.getTimexValue());
System.out.println("Timex type : " + temporal.getTimexType().name());