KHコーダを使っていると、形態素解析がうまくできない単語をどうにかしたくなることがあります。 そんな時の対策の一つとして、形態素解析辞書に単語を追加するという方法があります。 ググればなんてことのない作業なのですが、一応、調べて、やってみた、ということで、 手順を間違えなければかなり簡単なので、ここでちょっとChasenでのケースをご紹介しておきます。
先日、大学生の授業に関するツィートを集めて分析してみたことがありました。 そのときの6万件とちょっとのツィートで「オンライン」という単語を前処理してから 見てみると、以下のようになりました。
ここでは、抽出語で「オンライン」という単語を検索してみていますが、 この文脈だと「オンライン授業」という単語が出てきてほしいところ、 「オンライン」と、あとは謎の未知語しかでてきてませんので、おそらく 「オンライン」と「授業」は分割されてしまっています。そこで、 「オンライン授業」という単語を辞書に登録してみます。
まず、「khcoder」のフォルダの中の \dep\chasen\dic というフォルダに行ってみましょう。 そうすると、.dic という拡張子をつけたファイルがずらっと表示されます。
どれでもいいらしいのですが、とりあえず今回は一般的な名詞を追加したいので
Noun.dic をテキストエディタなどで開いてみましょう。
後々の整理のためには、文字列順に並べた方がいいかもしれないのですが、 とりあえずお試しということで、一番最後に以下の行を追加してみています。
(品詞 (名詞 一般)) ((見出し語 (オンライン授業 3929)) (読み オンラインジュギョウ))
品詞情報と、見出し語、読みを、一定のフォーマットで追記すればいいようです。 「3929」という数値がちょっと謎ですが、これは単語の現れにくさを表す値で、 数が大きいほど現れにくいということを示しているようです。とりあえずここでは 3929としてみていますが、もっと小さくしてもよいかもしれません。
辞書ファイルへの単語の追加が終わったら、次は辞書の生成です。 一つ上のフォルダにあがると、 Makefile.bat というファイルがあります。
これをダブルクリックすると、黒いダイアログが開いてしばらく文字が 表示され、それが終わると勝手にダイアログが閉じます。これで、辞書は完成です。
あとは、KHCoderに戻って、もう一度前処理をやり直してみます…と、以下のような感じになります。
なんと、半分近くは「オンライン授業」でしたね。こういう風になると、分析結果もちょっと変わってきそうですね。
という感じで、実は割と簡単にできますので、よかったら試してみてください。