用WordNet数据库确定Word类型的算法

时间:2015-01-04 18:53:19

标签: php mysql algorithm nlp wordnet

我正在开展一个项目,该项目需要扫描英文自然文本的段落并检测它们是什么类型的单词。该应用程序适用于AJAX,PHP和MySQL。

我的应用程序不需要100%准确,只是试图找到匹配文本输入的最佳内容。为此,我使用了WordNet数据库的SQL版本,它允许我使用dict视图搜索单词及其类型。

SELECT lemma, pos FROM dict WHERE lemma = 'fool' ORDER BY lemma;

以上是数据库看到的示例,但我的PHP实际上是根据AJAX调用的文本创建动态绑定参数,实际上,它将包含许多关键字。

这将返回一个记录数组,其中包含每个搜索的单词及其类型。

我的问题是,大多数单词可以是多种类型,例如,使用傻瓜示例,它将三个作为名词,四个作为动词。我不需要微小的差异,但我想知道这个词是否是名词或动词。

这个问题在大多数单词中都存在,这意味着我无法准确地检测到不同类型的单词,因为它可能是任何用途。

我想知道是否有人可以指出我在算法的正确方向或我可能做的事情,以便至少给出对词类型的最佳猜测。

最重要的是形容词和名词。

1 个答案:

答案 0 :(得分:3)

您要完成的任务称为词性标注(已在评论中提供),而Wordnet绝对不是执行此操作的工具。 在评论中还有一个链接到一个非常简单的PHP方法。 POS有很多库。注释中链接的那个实现了Brill解析器,它非常简单并且实现了良好的结果。为了获得更好的性能,我建议使用有PHP接口的Stanford NLP工具,例如:https://github.com/agentile/PHP-Stanford-NLP

有几个相关的SO问题: