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

最佳答案

WordnetSynonymParserSynonymMap.Builder。将适当的Reader添加到解析器后,调用build()以获取SynonymMap,该CC将传递到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);
  }
};

10-08 11:45