我有一个包含3个组件的NLP任务.我尝试了几种方法(最后提到),但无法获得良好的结果.
>在语句中检测时间表达
>然后将其分类为时间戳,时间触发或时间段.
>使每个表达式等于其DateTime等价物.
例:
以参考时间为2000小时,2015年7月20日,星期四
>时间戳:
我想从现在开始20分钟预定出租车
Answer: [tStamp]2020 hrs, Thursday, July 20th
>时间触发:
2之后的任何计时器都可以
Answer: [tTrigger] - start - 0200 hrs,July 21st 2015
5点之前是好的
[tTrigger] - start - now, 2000hrs, July 20th, 2015 : end - 0500 hrs, July 21st, 2015
>时间段:
我在旧金山工作了两年
[tPeriod] - 2013-2015
我试图用正则表达式给出非常通用的结果.我读过的第二个选择是尝试使模型从Naive Bays分类器中学习,但是naive Bays学习确切的单词而不是短语.
我在python中遇到了parsedatetime 1.5软件包,这在某种程度上将短语转换为时间戳可以解决上述问题的3.但是我仍然无法解决滞留和分类问题.
解决方法:
斯坦福的CoreNLP库有一个Python包装器,其中包括SUTime工具.查看在线SUTime demo,以了解这是否对您有用.