【问题标题】:Lucene 4.1.0 Porter Stemmer not work properlyLucene 4.1.0 Porter Stemmer 无法正常工作
【发布时间】:2013-06-03 04:49:18
【问题描述】:

我在 Java 中使用我的应用程序,我使用 Lucene 4.1.0 来使用 Porter Stemmer 方法。 我已阅读并实施this

这是我的代码

import org.apache.lucene.analysis.snowball.*;
import org.tartarus.snowball.ext.PorterStemmer;


 private String stemmer(String word){
        PorterStemmer obj = new PorterStemmer();
        obj.setCurrent(word);
        obj.stem();
        return obj.getCurrent();
}

此方法有效,但 Porter Stemmer 对某些单词无法正常工作,例如:

  1. 来源 >> 来源
  2. 耦合>>耦合
  3. 伴奏>>伴奏

也许算法中存在错误? 如何解决这个问题?

【问题讨论】:

  • 这正是波特算法的工作原理,你期待什么?
  • 如何解决这个错误?也许有什么解决办法?谢谢
  • 对不起,我当时不懂搬运工词干。那些完全正确的输出

标签: java algorithm lucene porter-stemmer


【解决方案1】:

Porter Stemmer 算法有望转换 source >> source。请从here阅读更多关于搬运工词干算法的信息

【讨论】:

  • 谢谢你的回答,有什么办法可以解决问题吗?
  • 你到底想通过词干实现什么?
  • 总有一些案例存在过度词干。也许你想要实现的是 Lemmatisation。 词干提取的主要目的是将单词的不同形式映射到单个形式,这就是波特算法的作用。所以它不是错误。但是词形还原更复杂。
  • 我在我的应用程序中使用 WordNet,我想从文本中设置一个关键字作为 WordNet 的输入。所以,我需要一个单词的单一形式
【解决方案2】:

您可以在搬运工词干分析器之上使用词建议器。对于单词建议,您可以使用“suggester basic in java”

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2011-08-26
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多