gpt4 book ai didi

java - Porter 和 Lancaster Stemming 算法的主要区别和优势是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:27:49 26 4
gpt4 key购买 nike

我正在处理 java 中的文档分类任务。

强烈推荐这两种算法,每种算法的优缺点是什么?哪种算法在自然语言处理任务的文献中更常用?

最佳答案

在它的基础上,porter 和 lancaster 词干提取算法之间的主要区别在于,lancaster 词干提取器比 porter 词干提取器更具侵略性。目前使用的三种主要词干提取算法是 Porter、Snowball (Porter2) 和 Lancaster (Paice-Husk),攻击性连续统基本上遵循相同的路线。 Porter 是最不激进的算法,每个算法的细节实际上都相当冗长和技术性。不过,这里有一个分割:

Porter:毫无疑问是最常用的词干分析器,也是最温和的词干分析器之一。为数不多的真正支持 Java 的词干分析器之一,这是一个加分项,尽管它也是算法中计算量最大的(当然不是很大的优势)。它也是最古老的词干提取算法。

Porter2:几乎普遍认为是对 Porter 的改进,这是有充分理由的。事实上,波特本人也承认它比他原来的算法要好。计算时间比 porter 稍快,周围有相当大的社区。

Lancaster:非常激进的词干提取算法,有时会出错。对于 porter 和 snowball,词干表示对读者来说通常是相当直观的,而 Lancaster 则不然,因为许多较短的单词会变得完全混淆。这里最快的算法,会大大减少你的工作单词集,但如果你想要更多的区别,不是你想要的工具。

老实说,我觉得 Snowball 通常是要走的路。在某些情况下,Lancaster 会极大地减少您的工作集,这可能非常有用,但是在我看来,雪球的边际速度增加不值得缺乏精度。虽然 Porter 的实现最多,因此通常是默认的首选算法,但如果可以,请使用雪球。

雪球 - 附加信息

Snowball is a small string processing language designed for creatingstemming algorithms for use in Information Retrieval.

The Snowball compiler translates a Snowball script into anotherlanguage - currently ISO C, C#, Go, Java, Javascript, Object Pascal,Python and Rust are supported.

名字的历史

Since it effectively provides a ‘suffix STRIPPER GRAMmar’, I had toyedwith the idea of calling it ‘strippergram’, but good sense hasprevailed, and so it is ‘Snowball’ named as a tribute to SNOBOL, theexcellent string handling language of Messrs Farber, Griswold, Poageand Polonsky from the 1960s.
---Martin Porter

以 Snowball 语言实现的词干分析器有时简称为 Snowball 词干分析器。例如,请参阅自然语言工具包:nltk.stem.snowball .

关于java - Porter 和 Lancaster Stemming 算法的主要区别和优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com