« Python 日本語入力アプリ「PyR2KKJ」の見直し | トップページ | 久しぶりに豆まきをした »

2014年2月 2日 (日)

Python 日本語入力アプリ「PyR2KKJ」の見直し (その2)

2014-02-02(日)曇り、雨、晴れ

 今日もコーヒーショップでリストの見直しを行ったので、昨日の続きを少しだけ書いてみます。あ、その前に一つ、最近のコーヒーショップ(昔風の喫茶店ではなくて)は、考え事などをするには不向きですね。ちょっと、うるさいです。(特にうるさいのが、おば、、あ、げふんげふん。他人の家の遺産の行き先や、相続の話なんてどうでも良いような気がするのですが、、) 昔風の喫茶店の方が良いと思いますが、最近なくなりましたねえ。

 さて、この日本語入力アプリは、英数字のローマ字入力から、かな漢字にするには2段階の変換を行います。

 第一段がローマ字から、かなへの変換です。変換テーブルにはこのようなテーブルを使います。
---------------------------------------------------------------------
KB_dic ={
        u"a":["あ","あ"], u"ba":["は","ば"], u"bi":["ひ","び"],
        u"bu":["ふ","ぶ"], u"be":["へ","べ"], u"bo":["ほ","ぼ"],
        u"bya":["ひや","びゃ"], u"byu":["ひゆ","びゅ"], u"byo":["ひよ","びょ"],
----------------------------------------------------------------------
入力の先頭から1文字ずつ増やしながら、最短一致で検出します。たとえば「asu」の場合、a→あ、s→なし、su→す という具合です。ただし、こんなに単純ではなく、次が記号だったり改行だったりなどを検出して、色々な制御をしています。
 baが「ば」と「は」のように、それぞれ2種類になっているのは、辞書による違いを吸収するためです。例えば、「学校」は、SKK辞書では「がっこう」、pbd辞書では「かつこう」で引かないといけないからです(濁点、半濁点、ちいさいゃゅょっなどがない辞書)。

 第2段階では、かなで辞書を引いてかな漢字文にします。このような辞書を使います。
--------------------------------------------------------------------
あい 愛/合/哀/相/姶/挨
あいかわ 相変/相川
あいさつ 挨拶
--------------------------------------------------------------------
句読点や記号、改行、スペース、最後までなどをひとかたまりとして取りだしたあと、後ろから1文字ずつ削りながら、辞書内のキーワードと比較して、最長一致で検出します。たとえば、「あいは」 なら、あいは→なし、あい→愛/合/哀/相/姶/挨 という具合です。これも、くぎりが句読点や記号、改行、スペース等によって、色々と制御しています。

テーブル引きや辞書引きは簡単ですが、次の文字の判定や、区切り文字による制御の変更などの条件分けが、結構面倒でした。思い出すのが大変な場合もあります。

 何日かやって、ようやく頭のなかが戻り始めました。とはいえ、こちらの方が良いかなと思って変更してみると使いにくかったりします。作成当時は、かなり考えて作ったんだなあ、、と、自分で感心しています。当時は根気があったんだなあ、、。そんなことを思いながら帰ってきた日でした。

|

« Python 日本語入力アプリ「PyR2KKJ」の見直し | トップページ | 久しぶりに豆まきをした »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/59058032

この記事へのトラックバック一覧です: Python 日本語入力アプリ「PyR2KKJ」の見直し (その2):

« Python 日本語入力アプリ「PyR2KKJ」の見直し | トップページ | 久しぶりに豆まきをした »