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

Arc*_*ana 5 php mysql algorithm nlp wordnet

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

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

SELECT lemma, pos FROM dict WHERE lemma = 'fool' ORDER BY lemma;
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

我想知道是否有人可以指出我在算法的正确方向或我可以做什么,以便至少给出最好的猜测单词类型是什么.

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

Jos*_*lls 5

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

有几个相关的 SO 问题: