2

我正在使用 SUutime / stanford nlp,它做得很好,但我不知道如何阅读常规日期格式。

例如:

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

它返回空

对于像这样的表达:“我们于 1988 年 10 月 27 日参加了活动”,它工作得很好

有任何想法吗?

干杯

4

3 回答 3

3

我没有使用斯坦福时间包的经验,但它可能没有针对那种时间格式进行调整。

我建议你看看是这样的: http ://cogcomp.cs.illinois.edu/page/software_view/IllinoisTemporalExtractor

它基本上基于 HeidelTime 工作: https ://code.google.com/p/heideltime/

于 2014-05-27T09:04:41.520 回答
1

好的大家,我想我明白了。

在 sutime/english.sutime.txt 第 319 行中,美国标记的模式很少:

{ 规则类型:“时间”,模式:/yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?)?(Z )?/ }
{ 规则类型:“时间”,模式:/yyyy-MM-dd/ }
{ 规则类型:“时间”,模式:/'T'HH(:?mm(:?ss(.,)?)? )?(Z)?/ }
# Tokenizer "有时会添加额外的斜线
{ ruleType: "time", pattern: /yyyy\?/MM\?/dd/ }
{ ruleType: "time", pattern: /MM?\? /dd?\?/(yyyy|yy)/ }
{ 规则类型:“时间”,模式:/MM?-dd?-(yyyy|yy)/ }
{ 规则类型:“时间”,模式:/HH?:mm (:ss)?/ }
{ 规则类型:“时间”,模式:/yyyy-MM/ }

只需要添加一些规则类型,就可以得到所需的顺序

于 2014-05-28T10:52:43.560 回答
1

我会把它放在这里,以防有人发现它有用。

问题是不支持某些时间格式。

查看 sutime/english.sutime.txt 文件,您会看到如下所示的一行。那里的 TODO 显示仍然可以添加其他格式。我添加了另外 2 个,如下所示:

  # 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 或 28/12/2014

这与 OP 所需的表格相同。

于 2016-02-21T21:47:03.880 回答