【发布时间】:2015-09-26 06:48:49
【问题描述】:
我有一个包含 3 个组件的 NLP 任务。我尝试了几种方法(最后提到),但我无法获得好的结果。
- 检测语句中的时间表达式
- 然后分类为时间戳、时间触发器或时间段。
- 将每个表达式等同于其等效的 DateTime。
例子:
以2015 年 7 月 20 日星期四 2000 小时为参考时间
-
时间戳:
我想在 20 分钟后预订出租车
Answer: [tStamp]2020 hrs, Thursday, July 20th -
时间触发:
2 之后的任何计时器都可以
Answer: [tTrigger] - start - 0200 hrs,July 21st 20155 之前是好的
[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. 提到的问题,但我仍然无法解决拘留和分类问题。
【问题讨论】:
-
这不是代码编写服务。展示您的尝试,我们将提供帮助。请阅读how to ask a question
-
@pynchia:对不起,如果你误会了!!!我是 NLP 的新手,所以想了解一下。截至目前,我知道正则表达式不起作用。我想知道我可以使用哪些其他工具。我肯定会自己编写代码。这就是为什么我用 NLP 关键字而不是任何语言关键字来标记问题。
-
朴素贝叶斯不学习单词,它学习给定一些输入的概率,并且以前相信在给定一些上下文的情况下发现该输入的概率。如果您开始考虑单词的组合及其顺序,这可能会有所帮助。我并不是说朴素贝叶斯是要走的路,只是指出它不会在你指出的地方停止。
-
@miraculixx 谢谢,让我试一试。
-
我对同样的问题感兴趣 - 您是否发现了如何最好地解决这个问题?
标签: python nlp stanford-nlp jnlp opennlp