文字列を返すメソッドを見つけようと思っているとは思わないでしょう。 Attributeを処理する必要があります。
Reader reader = new StringReader("This is a test string");
NGramTokenizer gramTokenizer = new NGramTokenizer(reader, 1, 3);
CharTermAttribute charTermAttribute = gramTokenizer.addAttribute(CharTermAttribute.class);
gramTokenizer.reset();
while (gramTokenizer.incrementToken()) {
String token = charTermAttribute.toString();
//Do something
}
gramTokenizer.end();
gramTokenizer.close();
は必ずリセットしてください()トークナイザそれそれはしかし、その後再利用する必要がある場合:
は次のように動作するはずです。むしろ文字よりも、コメントあたりの単語の
トークン化のグループ化、:
Reader reader = new StringReader("This is a test string");
TokenStream tokenizer = new StandardTokenizer(Version.LUCENE_36, reader);
tokenizer = new ShingleFilter(tokenizer, 1, 3);
CharTermAttribute charTermAttribute = tokenizer.addAttribute(CharTermAttribute.class);
while (tokenizer.incrementToken()) {
String token = charTermAttribute.toString();
//Do something
}
私は属性の用語で文字列の代わりの文字で何ができますか?ですから、私の出力は次のようになります:This is、a、test、string、This is、a test、... test string。 – CodeKingPlusPlus
これは、LuceneのNGramTokenizerが扱うように設計されたものではありません。あなたが使いたいと思うのは、StandardTokenizerと組み合わされたShingleFilterです。私は私の答えを更新し、そこに表現するのをより簡単にするでしょう... – femtoRgon
私はトークン化プロセスで使用できるストップワードフィルターを知っていますか? – CodeKingPlusPlus