漢字仮名まじり文から点字への変換処理を開発中

先日から、mecabを使って日本語の形態素解析を行い、点字出力のための変換を行う処理を作っているという話をしました。そこで、すべての文章をカタカナだけで表記し、文節ごとに分かち書きする処理を自動化し用としているわけです。UNICODEでは点字にもコードが振られているようですが、今回はあくまでもカナ表記とし、各カナ文字を点字ピンディスプレイに出力するためのビットパターンに置換する方法を考えています。

mecabのWindows Mobileへの移植作業とは別に、mecabで解析したデータからカナ書き分かち書きをするための実験を、昨日、半日あまりかけて行いました。最初は、単純に助詞、副詞、連体詞のあとで分かつところからスタートし、用言の連体形や連用形のあとに助動詞がこなければ分かつなど、ルールを追加していきました。

早い段階で気付いたのは、その単語だけを見ていたのではダメということで、少なくとも直前の単語の品詞や活用形までいっしょに考えないとうまく処理できないということです。いや、実際には、気付いたというより、はじめからそんな気はしていたのですが、その単語だけみてどうにかなる方法がないものか、試行錯誤していたというほうが正確かもしれません。

そんなこんなで、半日程度にしては、結構いい線まで動かすことができるようになりました。テストデータには歌詞を使用していますが、「翼をください」とか「残酷な天使のテーゼ」とかはそれなりの結果が出ています(選曲はたまたまです)。うまくいかなかった代表格は、「仰げば尊し」や「軍艦行進曲」です。コテコテの文語体はどうやら無理そうです。ただ、露骨に「バグっています」という結果になるので、それだけは回避する必要がありそうです。

文語体以外はどうかというと、未知語の処理をどうすべきか悩んでいます。とりあえず未知語が仮名書きであれば読みだけはわかるので、どうにかそれっぽい動作にすることができます。「民主の売国カンカン直人」には、"イラカン"とか"シンガンス"とかの未知語が現れますが、何とか処理できたようです。

文語体以上にやっかいなのが、(mecabが)まったく読めない字が現れた場合です。例えば、「般若心経」を入力するととんでもないことになります。羯諦羯諦波羅羯諦波羅僧羯諦菩提薩婆訶 とか、読めるはずがありません。小学生の子供であれば、まだ習っていない漢字のところは、「なんとかかんとか」とでもいうのでしょうが、さすがにそうもいきません。ですので、ここの仕様はもう少し検討が必要そうです。

この記事のトラックバックURL:

http://www.kijineko.co.jp/trackback/822
このエントリーを含むはてなブックマーク