Chasen/辞書の更新
Chasen(茶筅)を使っていると、辞書に登録されていない単語がうまく
解析されないケースに出くわすことがままあります。少しぐらいの間違いは
精度の誤差の範囲内に片付けることができますが、例えばマイナーな固有名詞は
辞書に登録されていないことが多く、解析において致命的となりかねません。
私の使用方法にあっては、特に固有名詞の解析結果が非常に意味を持つことが
多いので、この状況は非常にまずかったのです。
SEOに使う場合でも、やはりサイトのキーとなる単語が辞書に載っていない
というのは問題だと思います。
で、辞書に単語を追加する方法を簡単に紹介します。
Chasenをインストールしたフォルダに「dic」フォルダがあり、
そこに既存の辞書が全部入っています。ここに自分専用の
辞書を作ることにします。
ユーザ辞書ということで名前を「user.cha」とつけたテキストファイルを
つけてみます。文字コードはWindows版ではShiftJISでOKです。
次にそのテキストファイルの内容ですが、同じフォルダ内にある
拡張子が「.cha」のファイルを参考に編集してもらえばいいと思います。
試しに一つ固有名詞を追加してみましょう。
(品詞 (名詞 固有名詞 一般)) ((見出し語 (アイテムビューワー 1)) (読み アイテムビューワー) )
一行につき単語の「品詞」「見出し語」「読み」を指定するといった具合です。
上記は「アイテムビューワー」という固有名詞を追加しているところです。
「品詞」は「名詞 固有名詞 一般」、「読み」は「アイテムビューワー」と
なっています。
見出し語の横に1という数字がついていますが、これは解析時の指標となる
数字でして、単語の認識の優先順位を示しています。値が少ない単語ほど
一つの単語として認識されやすいということです。
「アイテム」の優先度が仮に0だったとしたら、上記の設定をしても、
文章中の「アイテムビューワー」という単語は「アイテム」と「ビューワー」
の二語に分けて解析されてしまうことでしょう。
品詞の定義は「grammar.cha」に定義されています。
次に作ったファイルを辞書としてコンパイルします。
コンパイルにはChasenをインストールしたフォルダの中の「makeda.exe」を使います。
DOSプロンプトを開いて、カレントディレクトリを「dic」フォルダに移動します。
..\makeda.exe user user.cha
上記のコマンドを実行すると、user.da、user.dat、user.lexというファイルが
できます。これがコンパイルされた辞書ファイルです。
次にこのコンパイルした辞書をChasenで使用するように指定します。
「dic」フォルダの中の「chasenrc」というファイルをテキストエディタで
開くと14行目ぐらいに以下の記述があると思います。
(DADIC chadic)
「chadic」はおそらくデフォルトの辞書ですね。
ここに追加すべき辞書ファイルを追加で指定してあげます。
(DADIC chadic user)
上記のように変更したら、DOSプロンプトを開き、「dic」フォルダを
カレントディレクトリに指定し、以下のコマンドを打ちます。
..\makemat.exe
これで辞書リソースの更新が完了します。
「アイテムビューワー」という単語が無事解析されるようになるはずです。