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


(Tarou Tanaka) #1

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

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

WikipediaのデータからElasticsearch用類義語辞書をつくる
こちらのサイトをみて、辞書データを作ってみたのですが、思うようなデータではありませんでした。

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

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

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


(Jun Ohtani) #2

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

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

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

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


(Tarou Tanaka) #3

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

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

そう言った意味では、教えていただいたElasticSearchの辞書フォーマットリファレンス内で書かれている、WordNet synonymsedit
というWordNetが適切なような気がします。
ただこのリファレンスに書いてある、

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

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

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


(Jun Ohtani) #4

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


(Tarou Tanaka) #5

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


(system) #6

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