Lucene Porter Stemmer不公开

srr*_*vnn 4 java lucene porter-stemmer

如何在Lucene 3.6.2中使用Porter Stemmber类?这是我有的:

import org.apache.lucene.analysis.PorterStemmer;
...
PorterStemmer stemmer = new PorterStemmer();
term = stemmer.stem(term);
Run Code Online (Sandbox Code Playgroud)

我被告知:在org.apache.lucene.analysis中,PorterStemmer不公开; 无法从外部包裹访问.

编辑:我也广泛阅读有关使用Snowball的内容,但不鼓励这样做.什么是在Java中使用Lucene的正确方法?

pha*_*ani 8

1)如果要将PorterStemmer用作Lucene令牌分析过程的一部分,请使用 PorterStemFilter

示例代码

 class MyAnalyzer extends Analyzer {
  public final TokenStream tokenStream(String fieldName, Reader reader) {
    return new PorterStemFilter(new LowerCaseTokenizer(reader));
  }
 }
Run Code Online (Sandbox Code Playgroud)

2)如果你想将PorterStemmer用于任何其他应用程序,这里是作者自己的源代码:Java中的PorterStemmer