我正在寻找一种方法来分析一串文本并找出它是用哪种时态写的,例如:“我要去商店”== 当前,“我买了一辆车”== 过去等。 .
关于我如何做到这一点的任何提示?
我正在寻找一种方法来分析一串文本并找出它是用哪种时态写的,例如:“我要去商店”== 当前,“我买了一辆车”== 过去等。 .
关于我如何做到这一点的任何提示?
是的,这将是非常困难的......我已经开始为一个快速的周末项目做类似的事情,直到我意识到这一点......尽管如此,这里有一个我发现很有帮助的资源。
从普林斯顿大学下载 Wordnet 3.0 的源代码,它有一个英语单词数据库。文件 /dict/index.verb 是现在时英语动词的列表,您应该能够以 CSV 格式将其导入数据库,而不会有太多麻烦。从那里开始,您就靠自己了,并且需要弄清楚如何处理英语的怪异之处。
这可能是一个相当艰巨的过程。你想得到多详细的信息?您只想考虑过去、现在和未来吗?或者你想考虑简单现在,现在进行,简单过去等?
在任何情况下,您还必须评估肯定形式、否定形式和问题形式。可以在http://www.ego4u.com/en/cram-up/grammar/tenses找到一个可以提供帮助的在线图表
注意规则和信号词。
标记/从数据库/文件中查找动作词(或者至少,猜测 - *th=past,例如)/计算时态命中?
对于这样的任务,我相信正则表达式是不够的:这是一项相当艰巨的任务......
要么你不会从正则表达式中得到任何好处,要么你会以某种超级怪物正则表达式结束,即使你也无法理解和维护......
这可能需要的不仅仅是正则表达式......我想像某种“语言引擎”之类的东西......
如果您确实需要它并且不只是在玩,您可以看看nltk。解析是一件复杂的事情。解析自然语言更加复杂。而解析高度不规则的语言,比如英语,则更糟。如果你能缩小问题范围,你就有更好的机会找到解决方案。
你需要它做什么?
您可以在 Ian Barber 的PHP/ir站点找到 PHP 的基本 Brill Parser 实现。该算法将标记你的话。
如果输入“我认为”,结果将是:
I/NN 思考/VBP
NN=名词,VBP=动词现在