当前位置: 首页 > 面试题库 >

Porter和Lancaster提取算法的主要区别和好处是什么?

刘承悦
2023-03-14
问题内容

我正在处理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。



 类似资料:
  • Flink被比作Spark,在我看来,这是一个错误的比较,因为它将窗口事件处理系统与微批处理进行了比较;同样地,对我来说,将Flink与Samza进行比较也没有那么大的意义。在这两种情况下,它比较了实时事件处理策略和批处理事件处理策略,即使在Samza的情况下“规模”较小。但我想知道Flink与Storm的比较如何,它在概念上似乎更相似。 我发现这张(幻灯片#4)记录了Flink的“可调延迟”这一

  • 本文向大家介绍Kafka和Flume之间的主要区别是什么?相关面试题,主要包含被问及Kafka和Flume之间的主要区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka和Flume之间的主要区别是: 工具类型 Apache Kafka——Kafka是面向多个生产商和消费者的通用工具。 Apache Flume——Flume被认为是特定应用程序的专用工具。 复制功能 Apache

  • 问题内容: 网上似乎充满了Velocity和FreeMarker之间的比较,并且它们似乎相当等效。但是,StringTemplate和FreeMarker之间似乎几乎没有比较! 那么,StringTemplate和FreeMarker之间的主要区别是什么? 我对它们的用法是仅生成HTML页面。在这两种方法中,我曾期望FreeMarker更合适,功能更强大,因为这似乎是更常见的一种- 但快速浏览一下

  • 问题内容: 创建表: 结果: 请让我知道Varchar2和char有什么区别?我们什么时候都使用? 问题答案: 显示差异的简单示例: CHAR对于字符长度始终固定的表达式很有用,例如美国各州的邮政编码,例如CA,NY,FL,TX

  • 问题内容: 我想问一下您最喜欢JS的软件包管理器是什么?我看到了一些关于yarn和npm的文章。但是我不确定有什么对我更好。我刚刚开始学习JS。 现在,yarn和npm之间的差异对我来说就像可乐品牌之间的差异。 问题答案: 有时候我们只有一个,但是解决依赖性和缓存问题太多,以至于另一个工具诞生了()。通常,它使用本地缓存来解决依赖关系,例如,在运行几乎总是在同一环境中运行的CI作业时,这非常关键,

  • 我正在查看React Native网站,然后我意识到你可以用React Native以及Android/iOS应用构建web应用。我想知道react dom和react Native之间的主要区别是什么,如果这两个库都可以构建web应用程序并操作dom。react-dom有哪些主要特性,react-Native没有?