我正在尝试在程序中使用 Lucene 来删除停用词并实现词干提取?但是,当我尝试像这样导入 Lucene_36
时......
public String removeStopWords(){
StandardAnalyzer analyser = new StandardAnalyzer(Version.LUCENE_36);
Analyzer analyzer = new StopAnalyzer(Version.LUCENE_36);
TokenStream tokenStream = new StandardTokenizer(Version.LUCENE_36,new StringReader(GetTweets.tweetContent));
StringBuilder sb = new StringBuilder();
tokenStream = new StopFilter(Version.LUCENE_36, tokenStream, StandardAnalyzer.STOP_WORDS_SET);
CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);
它会在代码的 Lucene_36
部分下方返回错误,提示 Lucene_36 - 无法解析或不是字段
。
有什么帮助吗?
谢谢大家
最佳答案
自 3.6 版以来,API 发生了很多变化。 Lucene 3.6 的向后兼容性在版本 5.0 中被删除,除此之外,这些构造函数都不再采用 Version
参数。
我不太确定您如何使用分析器以及您在此处构建的分析器,但这里有一个至少应该编译的快速重写:
public String removeStopWords(){
StandardAnalyzer analyser = new StandardAnalyzer();
Analyzer analyzer = new StopAnalyzer();
Tokenizer tokenizer = new StandardTokenizer();
tokenizer.setReader(new StringReader(GetTweets.tweetContent));
TokenStream tokenStream = tokenizer;
StringBuilder sb = new StringBuilder();
tokenStream = new StopFilter(tokenStream, StandardAnalyzer.STOP_WORDS_SET);
CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);
关于java - Lucene_36 - 无法解析或不是字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35317337/