Elasticsearchの形態素解析機Sudachiでユーザー辞書(dictionary)の活用

前回、Elasticsearchのkuomojiでの辞書(dictionary)と類義語(synonym)の設定を行なったので、Sucachiでの辞書の登録をして見ます。

★Elasticsearchのkuromojiの検索で重要な辞書(dictionary)と類義語(synonym)の設定
https://developer-collaboration.com/2019/01/30/elasticsearch-kuro-dictionary-synonym/

類義語(synonym)の登録はkuromojiと全く違いがありません。

searchモードだと失敗するのでnormalで実施しましょうぐらいが気をつける点です。

ただ、辞書(dictionarry)の方は作成方法などがkuromojiとは随分と異なり、データファイルを作成する必要があります。

 

Sudachiでのユーザー辞書の作成

公式のドキュメントは以下となります。
https://github.com/WorksApplications/Sudachi/blob/develop/docs/user_dict.md

まず、辞書ファイルの定義方法がかなり異なります。

フォーマットはCSVで以下のような形となります。

 

まず項目が非常に大きくなります。

 

今回、以下のような辞書ファイルを作成します。

左連接ID、右連接IDなどはgitのドキュメントを参照で。

コストは名詞類の登録の推奨の”5000 ~ 9000″で一番解析結果結果の出やすくなる5000を設定しています。

 

こちらをデータファイルに変換します。

コマンドの形式は以下です。

 

実際に変換したコマンドは以下で。

 

jarファイルを使うのでパスなどは環境に合わせて変更になるでしょう。

 

そしてSucachiの設定ファイルである「/etc/elasticsearch/sudachi/sudachi.json」は以下のようになっています。

userDictの部分が追加されています。

配列にしないとエラーになります。

 

それでは解析を行います。

まず、indexの作成などを行うためにsettingファイルの準備をします。

 

indexの作成を行います。

 

次に単語の解析を実施します。

 

無事、辞書で登録された形で登録されました。

 

尚、辞書を登録する前の結果は以下で分解された形となっていました。

 

Sudachiでのユーザー辞書の作成は以上となります。

辞書(dictionary)と類義語(synonym)を合わせることでより制度の高いサーチエンジンとして活用することができます。

今回はこの辺で。