我是否有机会使用 Lucene 的 ShingleAnalyzerWrapper 生成考虑到标点符号的二元组(即:.\,\;)?快速示例:给定字段“一二;三四”将仅提供 2 个二元组:(一二)和(三四)?
问问题
468 次
1 回答
1
您可以创建一个ShingleAnalyzerWrapper
使用基于LetterTokenizer
. LetterTokenizer
打破非字母的输入文本。就像是:
public class MyCharAnalyzer extends Analyzer {
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream result = new LetterTokenizer(reader);
return result;
}
}
ShingleAnalyzerWrapper myBigramWrapper = new ShingleAnalyzerWrapper(new MyCharAnalyzer());
如果您想更好地控制您认为的标点符号,您可以子类CharTokenizer
化并覆盖该isTokenChar()
方法。
于 2011-06-10T05:14:23.867 回答