Lucene Porter Stemmer不公开 [英] Lucene Porter Stemmer not public
问题描述
如何在Lucene 3.6.2中使用Porter Stemmber类? 这是我所拥有的:
How to use the Porter Stemmber class in Lucene 3.6.2? Here is what I have:
import org.apache.lucene.analysis.PorterStemmer;
...
PorterStemmer stemmer = new PorterStemmer();
term = stemmer.stem(term);
有人告诉我:PorterStemmer在org.apache.lucene.analysis中不是公开的;无法从外部程序包访问.
I am being told: PorterStemmer is not public in org.apache.lucene.analysis; cannot be accessed from outside package.
我也广泛阅读了有关使用Snowball的信息,但不鼓励这样做.什么是在Java中使用Lucene阻止的正确方法?
I also read extensively about using Snowball, but it isn't encouraged. What is the right way to stem using Lucene in Java??
推荐答案
1)如果要将PorterStemmer用作Lucene令牌分析过程的一部分,请使用 PorterStemFilter
1) If you want to use PorterStemmer as part of Lucene token analysis process, use PorterStemFilter
示例代码
class MyAnalyzer extends Analyzer {
public final TokenStream tokenStream(String fieldName, Reader reader) {
return new PorterStemFilter(new LowerCaseTokenizer(reader));
}
}
2)如果您只想将PorterStemmer用于任何其他应用程序,则以下是作者本人的源代码: Java中的PorterStemmer
这篇关于Lucene Porter Stemmer不公开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!