問題描述
如何在 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 用于任何其他應用程序,這里是作者自己的源代碼:PorterStemmer in Java
這篇關于Lucene Porter Stemmer 未公開的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!