Porter和Lancaster提取算法的主要区别和好处是什么?
我正在处理Java中的文档分类任务。
强烈推荐这两种算法,每种都有什么优点和缺点,并且在自然语言处理任务的文献中更常用?
回答:
从根本上讲,porter和lancaster词干提取算法之间的主要区别是lancaster词干提取器比porter词干分析器更具攻击性。当今使用的三种主要的阻止算法是Porter,Snowball(Porter2)和Lancaster(Paice-
Husk),其侵略性连续性基本上遵循相同的思路。波特是最不积极的算法,实际上每种算法的细节都相当冗长和技术性。这是您的细分:
波特:毫无疑问,最常用的茎梗,也是最柔和的茎梗之一。少数几个实际上具有Java支持的词干分析器之一,这是一个加分,尽管它也是算法中计算量最大的一个(不允许有很大的余地)。它也是最古老的词干算法。
Porter2:出于充分的理由,几乎被普遍认为是对Porter的改进。波特本人实际上也承认它比他原来的算法要好。与搬运工相比,它的计算时间略短,并且周围有相当大的社区。
兰开斯特(Lancaster):非常激进的词干算法,有时会出错。使用搬运工和滚雪球时,词干表达通常对读者而言是相当直观的,而对于兰卡斯特而言,则不然,因为许多较短的单词将完全被混淆。这里最快的算法,将大大减少您的单词工作量,但是如果您想要更多的区别,而不是您想要的工具。
老实说,我觉得Snowball通常是要走的路。在某些情况下,Lancaster会极大地缩减您的工作集,这可能非常有用,但是在我看来,雪球的边际速度提高并不值得缺乏精确性。波特的实现最多,因此通常是默认的定位算法,但如果可以的话,请使用滚雪球。
回答:
Snowball是一种小型字符串处理语言,旨在创建用于信息检索的词干算法。
Snowball编译器将Snowball脚本翻译成另一种语言-当前支持ISO C,C#,Go,Java,Javascript,Object
Pascal,Python和Rust。
名字的历史
由于它有效地提供了“后缀STRIPPER GRAMmar”,因此我曾戏称它为“ strippergram”,但是好感已盛行,因此,它被“
Snowball”命名为对SNOBOL的致敬,SNOBOL是SNOBOL的出色字符串处理语言。
1960年代起的Farber,Griswold,Poage和Polonsky先生。
-–马丁·波特
用Snowball语言实现的词干有时有时简称为Snowball词干分析器。例如,请参阅自然语言工具包:nltk.stem.snowball。
以上是 Porter和Lancaster提取算法的主要区别和好处是什么? 的全部内容, 来源链接: utcz.com/qa/405389.html