【问题标题】:Snowball Stemmer [Java]雪球词干 [Java]
【发布时间】:2016-02-15 17:37:41
【问题描述】:

我目前在我的 Java 项目中使用 Snowball Stemmer (Porter2) 来提取词等。但是,它提取的词要么不一定需要提取,要么提取太多?例如,online -> onlinwhy -> whiraise-> raisappreciate -> appreci

有什么办法可以防止这种不必要的词干,因为我希望它给我有意义的词,以及需要词干的词,例如treating -> treatrecords -> record、@987654327 @ 等通过实现某种字典来避免这些词被词干?或者是否有任何其他类似于 Snowball 的词干提取器在词干提取能力方面不太精确?

感谢大家的帮助。

这是我的功能。

【问题讨论】:

  • 你的词干目标是什么?搜索?
  • @bigOTHER -- 我的目标是从互联网上获取推文,将推文中的词干掉并删除停用词,这样我就可以将推文中的基本词留给分析。但是,有些词过于词干,并不真正想要这个,这就是为什么我一直在寻找它不那么精确
  • 这些词干很好,因为 Portar 是为了搜索目标而存在的,即词干是否是真正的起源并不重要,重要的是它对于整个词族都是一样的。
  • @bigOTHER——所以你认为这无关紧要吗?你认为我仍然能够使用真正精确的 Snowball 特性来分析推文吗?
  • 你在做什么分析?

标签: java stemming porter-stemmer snowball


【解决方案1】:

Porter Stemmer 的主要工作是将单词组合成一组词干。这些词干很好,因为 Porter 的存在是为了搜索目标,即词干是否是真正的起源并不重要,重要的是它对于整个词族都是一样的。

当您致力于词频分析搭配的目标时,我想您需要一个轻型词干分析器或一个最小的词干分析器。

您可以查看这篇文章以了解 Lucene 中使用的 stemmers。你可以注意到:

minimal_english

Lucene 中的EnglishMinimalStemmer,它删除了 复数

【讨论】:

  • EnglishMinimalStemmer 是否也会删除 ing、ment 等结尾?
  • @JohnLewis no ,这仅适用于复数形式。如果你想要更多,试试 kstem 或 lovins。
  • 刚刚实现了Lovins,看起来比Snowball精确多了哈哈
  • @JohnLewis Porter 是最好的,但不适合你的情况。
  • 对于我的情况,你会推荐什么?我想删除的不仅仅是复数形式,例如以 ing、ent 等结尾的。
猜你喜欢
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多