よしだのブログ

サブタイトルはありません。

kuromoji のサイトに行くと、トークナイズの処理を分析することができる。

前回の記事の続きです。Solrでうまくヒットしない理由を調べていくと、kuromoji の中に入っている mecab-ipadic という辞書に行き着きました。辞書の中に設定されている、単語コストと連結コストの値がうまく設定されていないということが調べたところ分かりました。と、ここまでが前回のあらすじ。そこで、調査をするのはいいけど、簡単な方法は無いかと探していたところ、ビジュアライズする方法があった!というところを本記事では紹介したいと思います。

Solr + kuromoji で単語の切れ方がおかしかったのでガッツリ調べてみた、理由と調べ方その方法を公開します! - よしだのブログ

前回の記事のラストにあるスクリーンショットの正体ですが、kuromoji のサイトに行くと使うことができます。調べたい文字列を入れると、以下のようにトークナイズの処理を分析することができます。一番上を通っている、緑の直線が最終的に採用された解析結果で、最も合計のコストが小さいということになります。それ以外の線やノードは、候補に上がったけど、合計コストが大きかったので、採用されなかったものになります。

それで、辞書が原因でヒットしなかったケースというのは、大体がこの下の候補に入っているわけです。候補を見ていくと、それぞれ線には連結コスト、ノードには単語コストが入っています。

f:id:yoshi0309:20140912231108p:plain

http://atilika.org/kuromoji/

  • 上記サイトで、フォームに文章を入力して、モードを Viterbi を選択し、Tokenize を押下する。

自分で kuromoji の辞書をカスタマイズしてビジュアライズしたい

上記のサイトでは、オンラインで分析することができるのだけれども、自分で辞書を直したりした場合や、ユーザー辞書を追加した場合にはもちろん確認することができません。が、このアプリ、github で公開されており、ローカルで利用することができます。サイトは以下。*1

https://github.com/atilika/kuromoji-server

使い方は、上記に書いてあるとおり git clone したあと mvn jetty:run すれば jetty のwebアプリがローカルに起動します。UI は全く同じでした。

なお、kuromoji-server のビルドには、Graphviz (http://www.graphviz.org/) というツールが必要です。Windows 7 ですが、このサイトに行って、msi をインストール後に bin に PATH を通せば OK でした。

kuromoji-server の注意点ですが、肝心の kuromoji.jar は mvn の dependency に入っており、ビルド時にダウンロードされるようになっています。バージョンを Solr に合わせて変更する場合は、pom.xml を修正してください。また、辞書を弄る場合も、このダウンロードされた kuromoji.jar の辞書をいじればよいと思います。

lucene-gosen でも見たい?

自分で改造しましょうw 幸い?なことに kuromoji-server はとってもシンプルな公正なので、比較的簡単にできると思います。しかも、lucene-gosen には、Viterbiクラスがあり候補が取れるようになっています。。。

Viterbi (lucene-gosen-1.2.1 API)

さんこう。

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

  • 作者: 大谷純,阿部慎一朗,大須賀稔,北野太郎,鈴木教嗣,平賀一昭,株式会社リクルートテクノロジーズ,株式会社ロンウイット
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/11/29
  • メディア: 大型本
  • この商品を含むブログ (6件) を見る

*1:Thanks a a lot ! Christian!