概要
Pure Go な形態素解析器 kagome で,形態素解析過程で利用しているラティスを graphviz の dot format で出力できるようにしてみました.辞書同梱なので,バイナリ1つででちょこちょこ遊べます.解析器をリファクタリングする際に内部状態を表示するのに作ってみました.kagome はリファクタリングして v0.2.0 になりました.速度向上,テスト重点なので機能的には特に変化なしですが,全面的に書き換わっているのでもしよければ遊んでみてください.
ラティスの表示には graphviz が必要です.
インストール
go get github.com/ikawaha/kagome/...
ソース
使い方
入力のエンコードはは utf8 である必要があります.引数にテキストを与えてやると,graphviz の dot fromat でグラフを出力するので,それを dot コマンドに喰わせて画像に変換します.
$ lattice -v すもももももももものうち | dot -Tpng -o a.png
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
色がついているパスが Viterbi アルゴリズムで選択された最善パスです.
短い文でも結構複雑なグラフになりますね.グラフ化することで形態素解析器のバグもいくつかとれました