我正在尝试使用Lucene 4对葡萄牙语句子进行分词和词干提取。
基于这个[线程] (如何使用Lucene Analyzer对字符串进行分词?),我能够正确地对葡萄牙语句子进行分词。然而,没有应用任何词干提取。因此,阅读Lucene 4文档,我找到了这个类[BrazilianStemmer] (https://lucene.apache.org/core/4_0_0/analyzers-common/org/apache/lucene/analysis/br/BrazilianStemmer.html)。
我修改了代码以使用这个BrazilianStemmer类。
基于这个[线程] (如何使用Lucene Analyzer对字符串进行分词?),我能够正确地对葡萄牙语句子进行分词。然而,没有应用任何词干提取。因此,阅读Lucene 4文档,我找到了这个类[BrazilianStemmer] (https://lucene.apache.org/core/4_0_0/analyzers-common/org/apache/lucene/analysis/br/BrazilianStemmer.html)。
我修改了代码以使用这个BrazilianStemmer类。
public static StringBuffer tokenizeString(StringBuffer text) {
StringBuffer result = new StringBuffer();
try {
Analyzer analyzer = new PortugueseAnalyzer();
TokenStream stream = analyzer.tokenStream(null, new StringReader(text.toString()));
stream.reset();
BrazilianStemFilter filter = new BrazilianStemFilter(stream);
while (filter.incrementToken()) {
result.append(filter.getAttribute(CharTermAttribute.class).toString());
result.append(" ");
}
filter.close();
analyzer.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
但是,我不确定它是否正常工作。这是从Lucene实现外语词干处理的正确且更好的方法吗?