在php中识别时态

时间:2009-08-03 19:59:08

标签: php regex nlp linguistics

我正在寻找一种方法来分析一串文字,并找出它所写的时态,例如:“我要去商店”==当前,“我买了一辆车”==过去等。

关于我如何做到这一点的任何提示?

6 个答案:

答案 0 :(得分:4)

是的,这将是非常困难的...我已经开始做类似的事情,这将是一个快速的周末项目,直到我意识到这一点......尽管如此,这是一个我发现有用的资源。

Download the source code of Wordnet 3.0 from Princeton,其中包含英文单词数据库。文件/dict/index.verb是一个现在紧张的英语动词列表,您应该能够以CSV格式导入数据库,而不会有太多麻烦。从那里,你是独立的,需要弄清楚如何处理英语的怪异。

答案 1 :(得分:3)

这可能是一个相当任务的过程。你想要多详细?你想只考虑过去,现在和未来吗?或者你想考虑简单呈现,现在进步,过去简单等?

在任何情况下,您还必须评估肯定表格,否定表格和问题表格。可以在http://www.ego4u.com/en/cram-up/grammar/tenses

找到可以提供帮助的在线图表

注意规则和信号词。

答案 2 :(得分:2)

Tokenize /从db / file中查找动作词(或至少猜猜 - * th =过去,例如)/ count tense hits?

答案 3 :(得分:2)

对于这样的任务,我认为正则表达式是不够的:这是一项相当困难的任务......

要么你不会从正则表达式中获得任何好处,要么你会以某种超级怪物 - 正则表达式结束,即使你不理解并且能够维持......

这可能需要的不仅仅是正则表达式...我想某种类似“语言引擎”的东西......

答案 4 :(得分:1)

如果你真的需要它并且不仅仅是玩耍,你可以看看nltk。解析是一个复杂的问题。解析自然语言甚至更复杂。解析一种非常不规则的语言,比如英语,甚至更糟。如果您可以缩小问题范围,那么您就有更好的解决方案。

你需要什么?

答案 5 :(得分:0)

您可以在Ian Barber的PHP/ir站点找到PHP的基本Brill Parser实现。该算法将标记您的单词。

如果输入单词"我想",结果将是:

I / NN think / VBP

NN =名词, VBP =动词存在