2009-07-16 116 views
9

有没有人找到一种简单但有效的方法从文本中提取日期引用?我已经做了大量的时间提取工具的搜索,但没有很多。有一些白皮书,但它似乎属于整个语义网络的一个子集,但没有给予太多的关注。时间提取(即从自由格式文本中提取日期/时间实体) - 如何?

我只是在寻找80%有效的东西。没有必要捕捉像“2009年1月以后的那个月”这样的事情,但基本的日常实体会很好。

我接受所有建议,甚至花哨的正则表达式。

开火!

(和感谢 - 亨利)我已经这样做了

回答

1

一种方法是只寻找什么,是4个数字,并将其转换为数字。如果这个数字在你感兴趣的年数范围内,你可能有一年可以使用。如果您对任何匹配的月份和日期感兴趣,您可以检查相邻的单词以查看它们是月份名称还是1到31之间的数字。我相信这会满足您的80%要求。

正则表达式年:[0-9] {4} - 您需要转换为数字,看看它是否在您认为有效的年数范围内。

正则表达式月:一月|一月|二月|二月...等每月

正则表达式月的天数:[0-9] {1,2} - 您将需要转换为一个数字,看看它是否是1-31

+0

我目前正在使用一个简单的正则表达式中提取年=>/\ b((19 | 20)\ d \ d) \ b /(只想把重点放在以19和20开始的年份上,以限制误报);下一步是寻找几个月,但仍然没有找到一种方法来处理同一句子中的多个日期 – henry74 2009-07-16 01:38:26

-3

我在如何找到饲料它的空白,但this library将解析一个广泛的日期,可以用作“这是一个真正的日期“功能。 (全面披露,我认为LIB的作者)

+0

看起来图书馆要求您发送实际日期条款。我正在寻找一些东西,它允许你喂它的句子,并提取日期/时间实体。 – henry74 2009-07-17 14:29:48

3
  1. 如果你的数据在目标时间表达只能在有限的格式,使用正则表达式和迭代的方法来优化您的系统

  2. 否则使用斯坦福NLP工具包,SUTime,这可能是过杀,但绝对满足您的需求