SUTime与常规日期阅读

时间:2014-05-26 11:53:44

标签: time nlp stanford-nlp sutime

我正在使用SUutime / stanford nlp,它做得很好,但我无法弄清楚如何阅读常规日期格式。

例如:

'我们于1988年10月27日参加了活动'

它返回null

表达如下:'我们于1988年10月27日去参加活动',它运作得很好

任何想法?

欢呼声

3 个答案:

答案 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所需的表格相同。