使用WordNet数据库确定单词类型的算法

6
我正在开发一个项目,需要扫描英语自然文本段落并检测它们是哪种类型的单词。该应用程序使用AJAX、PHP和MySQL。
我的应用程序不需要100%准确,只需尝试找到与文本输入最匹配的内容。为此,我使用了WordNet数据库的SQL版本,可以使用“dict”视图搜索单词及其类型。
SELECT lemma, pos FROM dict WHERE lemma = 'fool' ORDER BY lemma;

上面是数据库看到的一个示例,但我的PHP实际上基于来自AJAX调用的文本创建动态绑定参数,并且实际上将包含许多关键字。
这将返回一个记录数组,其中包含每个搜索的单词及其类型。
然而,我的问题是大多数单词可以是多种类型,例如,在"fool"的例子中,它将三个作为名词和四个作为动词返回。对我来说,微小的差异并不需要,但我想知道这个单词在使用中是名词还是动词。
这个问题存在于大多数单词中,这意味着我无法准确检测不同类型的单词,因为它可能是任何一种用法。
我想知道是否有人能指引我一个算法或者我能够做些什么来至少最好猜测出单词类型。
最重要的是要正确获取形容词和名词。

2
http://phpir.com/part-of-speech-tagging/ - Mark Baker
非常感谢,我现在正在尝试。它似乎很适合我的目的。 - Arcana
1个回答

5
您正在尝试完成的任务被称为词性标注(如评论中所建议),Wordnet肯定不是进行此操作的工具。 在评论中还有一个非常简单的PHP POS方法的链接。有许多POS库。评论中链接的那个实现了Brill解析器,它非常简单并且可以获得良好的结果。为了获得更好的性能,我建议使用Stanford NLP工具,其中有PHP接口,例如: https://github.com/agentile/PHP-Stanford-NLP 这里有几个相关的SO问题:

嗨!谢谢你的回答。我确实跟着链接并最终使用了Brill标注器来满足我的需求! - Arcana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接