【发布时间】:2014-03-23 00:39:27
【问题描述】:
我是 Lucene 的新手,我正在尝试使用 WordnetSynonymParser 来扩展使用 wordnet 同义词序言的查询。这是我到目前为止所拥有的:
public class CustomAnalyzer extends Analyzer {
@Override
protected TokenStreamComponents createComponents(String fieldName, Reader reader){
// TODO Auto-generated method stub
Tokenizer source = new ClassicTokenizer(Version.LUCENE_47, reader);
TokenStream filter = new StandardFilter(Version.LUCENE_47, source);
filter = new LowerCaseFilter(Version.LUCENE_47,filter);
SynonymMap mySynonymMap = null;
try {
mySynonymMap = buildSynonym();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
filter = new SynonymFilter(filter, mySynonymMap, false);
return new TokenStreamComponents(source, filter);
}
private SynonymMap buildSynonym() throws IOException
{
File file = new File("wn/wn_s.pl");
InputStream stream = new FileInputStream(file);
Reader rulesReader = new InputStreamReader(stream);
SynonymMap.Builder parser = null;
parser = new WordnetSynonymParser(true, true, new StandardAnalyzer(Version.LUCENE_47));
((WordnetSynonymParser) parser).add(rulesReader);
SynonymMap synonymMap = parser.build();
return synonymMap;
}
}
我收到错误“SynonymMap.Builder 类型中的方法 add(CharsRef, CharsRef, boolean) 不适用于参数(Reader)”
但是,WordnetSynonymParser 的文档要求 add 函数有一个 Reader 参数。
我在这里做错了什么? 任何帮助表示赞赏。
【问题讨论】:
标签: java lucene wordnet synonym