Porter和Lancaster提取算法的主要区别和好处是什么? [关闭]
java
machine-learning
nlp
5
0

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

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

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

从根本上讲,porter和lancaster词干提取算法之间的主要区别是lancaster词干提取器比porter提取器更具攻击性。当今使用的三种主要的阻止算法是Porter,Snowball(Porter2)和Lancaster(Paice-Husk),其侵略性连续性基本上遵循相同的思路。波特是最不积极的算法,实际上每种算法的细节都相当冗长和技术性。这是您的细分:

波特:毫无疑问,最常用的茎梗,也是最柔和的茎梗之一。少数几个实际上具有Java支持的词干分析器之一,这是一个加分,尽管它也是算法中计算量最大的一个(不允许有很大的保证)。它也是最古老的词干算法。

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

兰开斯特(Lancaster):非常激进的词干算法,有时会出错。使用搬运工和滚雪球时,词干表达通常对读者而言是相当直观的,而对于兰卡斯特而言,则不然,因为许多较短的单词将完全被混淆。这里最快的算法,将大大减少您的单词工作量,但是如果您想要更多的区别,而不是您想要的工具。

老实说,我觉得Snowball通常是最好的选择。在某些情况下,Lancaster会极大地缩减您的工作集,这可能非常有用,但是我认为,滚雪球般的边际速度增加并不值得缺乏精确性。波特的实现最多,因此通常是默认的定位算法,但如果可以的话,请使用滚雪球。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号