1

クラス WordnetSynonymParser はどうすればデータベースのワードネットに同義語のマップを取得できますか? WordnetSynonimParser クラスがあることを確認しましたが、WordNet で同義語を使用してクエリを展開するという目的に適しているかどうかはわかりません。

4

1 に答える 1

0

WordnetSynonymParserですSynonymMap.BuilderReader適切なをパーサーに追加したら、 を呼び出しbuild()て a を取得しますSynonymMap。これは、 a のコンストラクターに渡されSynonymnFilterます。その後、 Analyzer のドキュメントAnalyzerの例と同様に、そのフィルタを の一部として定義する必要があります。

何かのようなもの:

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);
  }
};
于 2013-07-19T20:47:23.057 に答える