如何解析时态表达式(尤其是时间范围),Python?

时间:2015-09-26 06:48:49

标签: python nlp stanford-nlp jnlp opennlp

我有一个NLP任务,它有3个组件。我尝试了一些方法(最后提到),但我无法取得好成绩。

  1. 在声明中检测时间表达式
  2. 然后将其分类为时间戳时间触发器时间段
  3. 将每个表达式等同于其DateTime等效项。
  4. 示例:

    参考时间为 2000小时,2015年7月20日,星期四

    1. 时间戳

      我想在20分钟后预订出租车

      Answer: [tStamp]2020 hrs, Thursday, July 20th
      
    2. 时间触发器

      2之后的任何计时器都很好

      Answer:  [tTrigger] - start - 0200 hrs,July 21st 2015
      

      在5之前是好的

      [tTrigger] - start - now, 2000hrs, July 20th, 2015 : end - 0500 hrs, July 21st, 2015
      
    3. 时间段

      我在旧金山工作了两年

      [tPeriod] -  2013-2015
      
    4. 我尝试使用正则表达式提供非常通用的结果。我读到的第二个选项是试图让模型从Naive Bays分类器中学习,但天真的海湾学习的是精确的单词,而不是短语。

      我遇到了python中的parsedatetime 1.5包,在某种程度上将短语转换为时间戳非常棒,这解决了上述问题3.但我仍然无法解决拘留和分类问题。

1 个答案:

答案 0 :(得分:3)

有斯坦福大学CoreNLP库的Python包装器,其中包含SUTime工具。查看在线SUTime demo,了解这对您是否有用。