我正在使用SUutime / stanford nlp,它做得很好,但我无法弄清楚如何阅读常规日期格式。
例如:
'我们于1988年10月27日参加了活动'
它返回null
表达如下:'我们于1988年10月27日去参加活动',它运作得很好
任何想法?
欢呼声
答案 0 :(得分:2)
我不是斯坦福临时包的经验,但它可能没有针对那种时间格式进行调整。
我建议你看一下这个: http://cogcomp.cs.illinois.edu/page/software_view/IllinoisTemporalExtractor
基本上基于HeidelTime的作品: https://code.google.com/p/heideltime/
答案 1 :(得分:1)
在sutime / english.sutime.txt第319行中,美国标记的模式很少:
{ruleType:“time”,pattern:/yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?) ?(Z)?/}
{ruleType:“time”,pattern:/ yyyy-MM-dd /}
{ruleType:“time”,pattern:/'T'HH(:?mm(:?ss(.,)?)?)?(Z)?/}
#Tokenen“有时会增加额外的斜杠
{ruleType:“time”,pattern:/ yyyy \?/ MM \?/ dd /}
{ruleType:“time”,pattern:/ MM?\?/ dd?\?/(yyyy | yy)/}
{ruleType:“time”,pattern:/ MM?-dd? - (yyyy | yy)/}
{ruleType:“time”,pattern:/ HH?:mm(:ss)?/}
{ruleType:“time”,pattern:/ yyyy-MM /}
只需添加一些ruleTypes,即可获得所需的订单
答案 2 :(得分:1)
如果有人发现它有用,我会把它放在这里。
问题是不支持某些时间格式。
看一下sutime / english.sutime.txt文件,你会看到如下所示的一行。 TODO那里仍然可以添加其他格式。我加入了另外两个人,如下所示:
# TODO: Support other timezone formats
{ ruleType: "time", pattern: /yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?)?(Z)?/ }
{ ruleType: "time", pattern: /yyyy-MM-dd/ }
{ ruleType: "time", pattern: /'T'HH(:?mm(:?ss([.,](S{1,3}))?)?)?(Z)?/ }
#The entries below are newly added to support other time formats.
{ ruleType: "time", pattern: /dd\/MM\/yyyy/ }
{ ruleType: "time", pattern: /dd-MM-yyyy/ }
新添加的条目使SUTime能够正确识别表单的时间格式:
20-12-2014或2014年12月28日
与OP所需的表格相同。