Elasticsearchの形態素解析機Sudachiでユーザー辞書(dictionary)の活用 - 株式会社CoLabMix

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

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

★Elasticsearchのkuromojiの検索で重要な辞書(dictionary)と類義語(synonym)の設定
https://colabmix.co.jp/tech-blog/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)を合わせることでより制度の高いサーチエンジンとして活用することができます。

今回はこの辺で。

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

    関連記事

    1. Elasticsearch 6 を使ったデータ検証 その7(Analy…

    2. Elasticsearch 6 を使ったデータ検証 その3(bulkで…

    3. [ Rails : アンチパターン ] Validation しすぎで…

    4. IT完全未経験からWebエンジニア転職の為に行った活動

    5. WordPressでRESTAPIを使った画像の投稿と記事の投稿

    6. curlでSSL接続しようとすると「curl: (35) SSL co…