サンプル文の収集について
前置き
ここまでの考察でやるべきだということが分かったこと。
拡張母音を含むローマ字母音の出現頻度算出は、「僕は行く」の「ハイ」など、文字面としては拡張母音が使えるが実際の入力では使わない例もある。特に文節の区切りで多いので、実際の入力に近づけるためにはサンプル文を品詞解析して品詞の区切りでは使わないようにする。
その際、品詞解析の辞書によっては拡張を使う場所でも品詞が分かたれてしまうことがあるので、出来る限り見つけ出して結合した形を新たに辞書に登録する。
また、豊浦(とヨウら)など、漢字熟語でも漢字の区切りでは拡張を使わないことが多いので、次のプロセスによって排除する。
- 辞書を検索し「表記が漢字一文字のみ」の単語を抜き出し、表記と読みを関連付けて記録
- 再度、辞書を検索し「漢字を含み、二文字以上」の単語を抜き出す
- 1.で関連付けた読みに一文字ずつ置換した結果と、単語の読みが、同じかどうかチェック
- 同じであれば、単語の読みを「各漢字の読みの前後に半角スペースを入れた読み」に変える
「豊=とよ」「浦=うら」でそれぞれ辞書にあれば、「豊浦」の読みは「とようら」から「とよ うら」に置き換えられる。 区切りは半角スペースでなくてもよいが、任意で。
品詞解析の方法
MeCabを使うのが早そう。
形態素解析にはkyteaという、より新しく解析精度のよいエンジンがあるようだが、kyteaは辞書ではなくコーパスという、あらかじめ正しく解析された文章の情報を与えることでモデルを作成し、それをターゲットの文章に当てはめて解析する?らしく、そのコーパスを用意しにくい。デフォルトで一つのモデルが同梱されているが、そのモデルは単語の分割単位が細かすぎ、今回の目的には沿わないと判断した。
辞書について。
Windows用に公開されているMeCabにはipadicという辞書が付いているが、2007年で更新が止まっている。最近はもう少し精度の良いものが出ているらしいこと。正式な後継はNAIST-jdic。また、単語の分割単位に揺れがないよう明確に規定したUnidicが有名。
幾つかのサンプル文を解析させ、ざっと見たところ、拡張母音の使い方が自分の入力の癖とあっていた(拡張を使う部分を一品詞として扱い、使わない部分を別品詞として扱っていた)のはUnidicの方だった。
Unidicは、csvが同梱されたソースファイルと、変換済みのMeCab用辞書が別々に配布されている。今回は単語登録したいので、ソースファイルが欲しい。unidic-mecab-x.x.x_src.zipの方は、今回の目的に合う読みの情報が与えられていない。2通りの読み情報があるが、発音を重視して「でしょう」を「デショー」と変換してしまうタイプと、活用が終止形に揃えられてしまうタイプのみである。普通に読みを付与してくれるものが欲しい時は、unidic-mecab_kana-accent-x.x.x_src.zipの方をダウンロードする。
流れは以下のようになる。
- ソースのcsvに、いくつか一語として扱いたい単語を登録
- 上で示した、漢字の境界における読みの分かち書きを処理
- 辞書に変換
- 作った辞書でMeCabを使い、サンプル文を品詞分かち書きした仮名文になおす
- 拡張母音のある部分のみローマ字に変換する
- 半角スペースを消し、残っている仮名を普通のローマ字に変換する
- 拡張母音を含めた母音の出現頻度が精度よく出せる