在文本文档中查找日期或日期/时间的策略?

时间:2011-10-05 22:36:40

标签: parsing datetime date

问题:给定非结构化文本文档找到任何日期或日期/时间子字符串。

我目前的想法是使用一堆正则表达式来搜索已知格式,这种格式感觉非常糟糕,昂贵且容易出错: - )

这就是我所说的那种文档:

  

培根ipsum dolor坐在牛腩里面,排骨aute。 Ullamco consequat shank swine chuck,laboris do pastrami 1980年1月10日est venison shankle short 1-20-1980 loin bresaola咸牛肉。牛肋骨28/2/2001 tri-tip est cupidatat shank,excepteur qui non pastrami。

我怀疑我不是第一个解决这个问题的人,我希望结果代码隐藏在一些我不知道的开源项目中......

思想?

1 个答案:

答案 0 :(得分:0)

这是一个特殊的启发式算法 - 但可能首先进行标记化?

您可以识别以下令牌

  • “垃圾”(默认情况下,任何不像日期部分的内容)
  • dddd(4位数 - 通常是一年)
  • dd(2位数 - 日月或年)
  • d(1位数 - 日或月)
  • dd_st
  • dd_th(以及数字位数的变化)
  • dd_rd
  • dd_nd
  • monthname

等等

每个令牌可以有多种解释(例如d是月或日),日期是3个令牌的任意序列,您可以从年,月,日中选择其中一个(按您希望的任何顺序)允许)。

这里的想法是接受比正则表达式更多的语法,如果这是你的意图......