elasticsearchにKuromojiを導入したので、学習メモ
環境
- vagrant(centOS6.5)
Kuromojiとは
Javaで書かれているオープンソースの日本語形態素解析エンジンです。
メールサーバーを構築したことがある人は、Mecabをイメージするとよいと思います。
solrを利用したことがある人は、solrのkuromojiと全く同じなので学習の必要はありません。
インストール
こちらの記事に手順を記載しています。chefで導入しています。
サンプルの作成
まずは簡単なサンプルを作成していきましょう。ここではindex名『kuromoji_sample』でデータを作成します。
indexってなにそれ?の場合は、この記事で基礎から学習してください。
user_dictionaryを作成
まずはユーザ辞書を作成します。
ファイル名『userdict_ja.txt』を作成します。
ファイルの保存先は『/usr/local/etc/elasticsearch』になります。
公式サイトの説明だと{home}/config配下と記載されていますが、間違いです。(少なくともcentosの場合は)
// elasticsearch homeへ移動 cd /usr/local/etc/elasticsearch sudo touch userdict_ja.txt chmod 777 elasticsearch:elasticsearch userdict_ja.txt
userdict_ja.txtを作成します。文字コードはutf-8です。
富士,富士,フジ,カスタム名詞 高尾,高尾,タカオ,カスタム名詞
elasticsearchを再起動します。
sudo service elasticsearch restart
インデックスの作成
次はインデックスを作成します。
『kuromoji_user_dict』というユーザ辞書指定をしたtokenizerと、それを使う『my_analyzer』というanalyzerを登録したindexを作成します。
curl -XPUT 'http://localhost:9200/kuromoji_sample/' -d' { "settings": { "index":{ "analysis":{ "tokenizer" : { "kuromoji_user_dict" : { "type" : "kuromoji_tokenizer", "mode" : "extended", "discard_punctuation" : "false", "user_dictionary" : "userdict_ja.txt" } }, "analyzer" : { "my_analyzer" : { "type" : "custom", "tokenizer" : "kuromoji_user_dict" } } } } } } ' {"acknowledged":true}
上記のindexが登録されたことを確認します。
http://localhost:9200/_aliases?pretty { "kuromoji_sample" : { "aliases" : { } } }
きちんと登録されていますね。
解析
最後に、解析ができるかをチェックします。
curl -XGET 'http://localhost:9200/kuromoji_sample/_analyze?analyzer=my_analyzer&pretty' -d '富士山' { "tokens" : [ { "token" : "富士", "start_offset" : 0, "end_offset" : 2, "type" : "word", "position" : 1 }, { "token" : "山", "start_offset" : 2, "end_offset" : 3, "type" : "word", "position" : 2 } ] }
成功です。
以上。
参考サイト
- Japanese (kuromoji) Analysis for Elasticsearch
- Elasticsearch の Kuromoji でユーザー辞書を使うメモ
- Elasticsearch の Kuromoji でユーザー辞書を使う
- kuromojiでユーザー辞書を使用する
elasticsearch オススメ書籍
elasticsearchを使うなら側においておきたい一冊です。
うまくまとまっていて、辞書代わりにも利用できます。今のところ日本語の本を使うならこの本一択ですね。
0 件のコメント:
コメントを投稿