WordNet与ElasticSearch集成 - 如何添加新的同义词

rav*_*n99 7 synonym wordnet elasticsearch

我使用ElasticSearch版本1.2.3

我已将WordNet 3.0集成为ElasticSearch Synonyms Analyzer的同义词数据库.(完整的WordNet安装:configure,make,make install)

我已将以下代码添加到ElasticSearch索引设置中(索引名称为local_es)

curl -XPUT 'localhost:9200/local_es/_settings' -d '{
"settings" : {
"analysis" : {
  "analyzer" : {
    "synonym" : {
    "tokenizer" : "lowercase",
    "filter" : ["synonym"]
    }
   },
   "filter" : {
   "synonym" : {
   "type" : "synonym",
   "format": "wordnet",
   "synonyms_path": "analysis/wn_s.pl"
   }
  }
 }
}
}'
Run Code Online (Sandbox Code Playgroud)

我还用以下代码更新了映射:

enter code here
curl -XPUT 'localhost:9200/local_es/shadowpage/_mapping' -d '{
"shadowpage" : {
"shadowPageName" : {
  "enabled" : true,
  "analyzer" : "synonym"
},
"properties" : {                
"name" : { "type" : "string", "index" : "analyzed", "analyzer" : "synonym" }
}
}
}'
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.

如您所见,ElasticSearch从analyze/wn_s.pl的文件路径获取其数据

wn_s.pl文件是一个包含所有数据库同义词的WordNet prolog文件.

如何向数据库添加新的同义词?我是否将其直接添加到WordNet数据库?还是在wn_s.pl文件中?

小智 1

如果您要主动修改同义词数据库,您可能应该将 wordnet 数据库中的同义词集转换为这种格式的基本逗号分隔文件

    "british,english",
    "queen,monarch"
Run Code Online (Sandbox Code Playgroud)

然后使用并编辑该文件作为您的同义词资源。