IM飲み会資料をアップロードしました&3-gram(以上)のスパースさについて
昨年12/29に京都大学で行われたIM飲み会(という名前のワークショップ)で発表した資料をアップロードしました。
http://www.slideshare.net/takeda25/kanakanji-conversion-using-ngram-10817343
口頭説明用のプレゼンなので、単体で見るとわかりにくいところがあるかもしれませんが、もし見ていただけた上でわからないところがありましたら、@takeda25 までお願いします。
さて、IM飲み会の本当の飲み会部分で、@uchumikさんに「3-gramを使うといっぱいあって大変なんじゃないの(印象)」的なことを聞かれたような気がするのですが、「3-gramはスパースなので大丈夫」的な返事をしたような気がします。これは説明不足でした。現に、3-gram はいっぱいあります。@gologo13さんが言語モデル配布ページで公開されているBCCWJの3-gramは1400万ぐらいです。とても少ないとは言えません。
ただ、かな漢字変換というタスクについて考えた場合、この3-gramの中で、かな部分が今変換しようとしているかな列に含まれるというものはとても少なくなります。
ちょっと表現がわかりにくいので具体例を挙げます。
「きょうはいいてんきですね」という文字列を変換しようとしているとします。このとき、3-gramデータの中で、かな部分がこの中に含まれるものを列挙すると次のようになります。
ですね はいい は言い きです 機です 期です ですネ いい点 いてん 今日はい い天気で いい天気 天気です 気です は云い いいて 木です 機で吸 器です いい手 ん気で 言いて 卿は言 憂いて 鏡はい は快い 基です 鬼です 着です ゝいて ん期で 謂いて 転記です はいゝ うはい 宇は言 利です きょうはい 機で済 軌です 今日はイ いゝ点 いい転機 教は要 きょうは言 今日は言
たったの47個です。
どうしてこんなに少ないのかというと、日本人が口頭でコミュニケーションを取るとき、耳ではかな列に近いものを聞いているのにちゃんと曖昧性解消ができているわけで、それだけ実際のかな列に対して可能な意味(表記)というものは相当限られているわけです。「きょうはいいてんきですね」を変換するとき、4-gram モデルにして 3-gram ノードを残すことにしても、3-gramノードは 47個しかできないわけで、3-gramモデルとほとんど違いがないノード数になります。しかし、それらの数少ないノードが曖昧性解消には重要なので、例えば3-gramでは「ほんをかいたい」→「本を書いたい」になるのに対して、4-gramでは「ほんをかいたい」→「本を買いたい」と変換できるというような差ができます。