ngramのセットをコンパイルしたい約500の文があります。ストップワードを削除するのに問題があります。lucene StandardFilterとStopFilterを追加しようとしましたが、それでも同じ問題が発生します。これが私のコードです:
for(String curS: Sentences)
{
reader = new StringReader(curS);
tokenizer = new StandardTokenizer(Version.LUCENE_36, reader);
tokenizer = new StandardFilter(Version.LUCENE_36, tokenizer);
tokenizer = new StopFilter(Version.LUCENE_36, tokenizer, stopWords);
tokenizer = new ShingleFilter(tokenizer, 2, 3);
charTermAttribute = tokenizer.addAttribute(CharTermAttribute.class);
while(tokenizer.incrementToken())
{
curNGram = charTermAttribute.toString().toString();
nGrams.add(curNGram); //store each token into an ArrayList
}
}
たとえば、私がテストしている最初のフレーズは、「聞くすべての人のために」です。この例では、curNGramは「For」に設定されています。これは私のリストstopWordsのストップワードです。また、この例では、「every」はストップワードであるため、「person」を最初のngramにする必要があります。
- StopFilerを使用しているときに、ストップワードがリストに追加されるのはなぜですか?
すべての助けに感謝します!