# 類義語検索行うための辞書データの作り方

**URL:** https://discuss.elastic.co/t/topic/132063
**Category:** 日本語による質問・議論はこちら
**Created:** [May 16, 2018, 8:40am UTC](https://discuss.elastic.co/t/topic/132063 "2018-05-16T08:40:05Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Tarou\_Tanaka](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tarou_tanaka/32/31241_2.png) [@Tarou\_Tanaka](https://discuss.elastic.co/u/Tarou_Tanaka)
#### Post date: [May 16, 2018, 8:40am UTC](https://discuss.elastic.co/t/topic/132063/1 "2018-05-16T08:40:05Z")

</div>

現在、ElasticSearch＋Webシステムでプログラムを書いているのですが、類義語検索をどのように実装すれば良いかわかりません。

自分の調べた範囲では、synonymと辞書データを使うことで実現できそうです。  
ただ適切な辞書データの作り方がわかりません。

[WikipediaのデータからElasticsearch用類義語辞書をつくる](https://qiita.com/yukinoi/items/78d64aeb3afbaadf52b1)  
こちらのサイトをみて、辞書データを作ってみたのですが、思うようなデータではありませんでした。

たとえば「了解」という単語を検索した際に、「不文律,暗黙のルール,暗黙の了解」などは出てきますが、「解る、合点」などの類義語は得られませんでした。

どのようにすれば、類義語辞書のデータを作ることができるでしょうか？  
ないしは、根本的に類義語検索の実装方法が間違っているでしょうか？

ご回答よろしくお願いします。

---

<div class="post-metadata">

### Author: ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)
#### Post date: [May 17, 2018, 2:39pm UTC](https://discuss.elastic.co/t/topic/132063/2 "2018-05-17T14:39:25Z")

</div>

「適切な」類義語辞書は、人によって何を「適切」とするかによるので、登録するデータ、どのような検索を行い、どの単語とどの単語が類義語であるべきか？というところを定義していただく必要があります。

リンクは、Wikipediaのタイトルにある単語と、そのリダイレクトが類義語に相当するという考えのもとで行われている一例になるのかと思います。

辞書のフォーマットという意味では、[https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-graph-tokenfilter.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-graph-tokenfilter.html) こちらがそのフォーマットとなります。

類義語とは何か？どうしたいのか？をまずは考えていただくのが一番の近道になるかと思います。

---

<div class="post-metadata">

### Author: ![Tarou\_Tanaka](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tarou_tanaka/32/31241_2.png) [@Tarou\_Tanaka](https://discuss.elastic.co/u/Tarou_Tanaka)
#### Post date: [May 18, 2018, 3:40am UTC](https://discuss.elastic.co/t/topic/132063/3 "2018-05-18T03:40:16Z")

</div>

ご返信ありがとうありがとうございます。

曖昧な質問で申し訳ありませんでした。  
私の類義語の定義ですが、明確に言葉で定義するには私の知識が足りないため、例をあげて説明させていただきます。  
例えば[日本語 WordNet](http://compling.hss.ntu.edu.sg/wnja/index.ja.html)の「WordNet 検索 」内で表示されるようなデータが欲しいです。  
この「WordNet 検索 」で更に実例をあげるのであれば、「了解」という単語を検索した際には、「許諾, 降心, 領会, 諒承, 合点, 領解, 納得, 諒解, 了解, 承認, 承諾, 承知, 同意, 承允, 諾了,理解力, 同感, 領解, 思いやり, 思い遣, 同情心, 意気投合, 共鳴, 了解, 共感, 思い遣り, 思遣, 弔意, 同調, 理解, 同情, 思遣り, シンパシー, 弔慰,解す, 領得, 領会, 解る, 分る, 領解, 把捉, 把握, 掴みとる, 呑みこむ, 掴み取る, 読取る, 納得, 判る, 諒解, 読解, 会得, 分かる, 捉える, 捉らえる, 解せる」このような類義語が欲しいです。

そう言った意味では、教えていただいたElasticSearchの辞書フォーマットリファレンス内で書かれている、[WordNet synonymsedit  
 ](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-graph-tokenfilter.html#_wordnet_synonyms_2)というWordNetが適切なような気がします。  
ただこのリファレンスに書いてある、

```auto
                        "synonyms" : [
                            "s(100000001,1,'abstain',v,1,0).",
                            "s(100000001,2,'refrain',v,1,0).",
                            "s(100000001,3,'desist',v,1,0)."
                        ]

```

このパラメータの意味が理解できず、どのように指定すれば良いか分かりません。

何から何まで質問して申し訳ありません。  
ご回答いただけると助かります。

---

<div class="post-metadata">

### Author: ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)
#### Post date: [June 8, 2018, 4:51am UTC](https://discuss.elastic.co/t/topic/132063/4 "2018-06-08T04:51:58Z")

</div>

こちらはWordNetのデータのフォーマットのような記述ができますというのがリファレンスでの内容です。  
実際の日本語のWordNetのデータ構造がこれに則っていれば読み込めるとは思うのですが、  
日本語のWordNet、WordNetの実際のデータの書式と意味については、WordNetで聞いていただいた方がいいかと思います。

---

<div class="post-metadata">

### Author: ![Tarou\_Tanaka](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tarou_tanaka/32/31241_2.png) [@Tarou\_Tanaka](https://discuss.elastic.co/u/Tarou_Tanaka)
#### Post date: [June 8, 2018, 5:02am UTC](https://discuss.elastic.co/t/topic/132063/5 "2018-06-08T05:02:50Z")

</div>

そうだったのですね。一度wordnetの方を調べてみようと思います。  
ご回答ありがとうございました。

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2018, 5:03am UTC](https://discuss.elastic.co/t/topic/132063/6 "2018-07-06T05:03:03Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
