我有大约 500 个句子,我想在其中编译一组 ngram。我无法删除停用词。我尝试添加 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 时,为什么停用词会添加到我的列表中?
感谢所有帮助!