如何在Lucene的SynonimMap中传递wordnet数据库?

时间:2013-07-19 20:16:09

标签: java lucene wordnet

WordnetSynonymParser类如何让数据库wordnet成为同义词的映射?我看到有WordnetSynonimParser这个类,但不知道它是否适合我的目的,通过WordNet中的同义词扩展查询。

1 个答案:

答案 0 :(得分:0)

WordnetSynonymParserSynonymMap.Builder。将适当的Reader添加到解析器后,请调用build()以获取SynonymMap,然后将其传递到SynonymnFilter的构造函数中。然后,应将该过滤器定义为Analyzer的一部分,类似于Analyzer documentation中的示例。

类似的东西:

Analyzer analyzer = new Analyzer() {
 @Override
  protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
    Tokenizer source = new FooTokenizer(reader);
    TokenStream filter = new FooFilter(source);
    //etc...

    WordnetSynonymParser parser = new WordnetSynonymParser(true, false, analyzer);
    parser.add(wordnetReader);
    filter = new SynonymFilter(filter, parser.build(), true);

    return new TokenStreamComponents(source, filter);
  }
};