2011年12月22日木曜日

プログラムでふりがなをふる

日本語は不便なもので、漢字かな交じり文を辞書順にソートするためには、ふりがなのデータが必要です。シラバスのデータを授業名順にソートしたり、「あかさたな」で分類した索引を作る必要が出てきたのですが、あいにく元データにはふりがながありませんでした。

日本語の文章を読み上げる際にも同様の問題が発生し、Mac OS X は標準で漢字仮名交じり文をひらがなだけに変換する機能を持っています(ことえりの一部)。授業名は人名と違ってそうそうひねくれた名前はないので、この機能を使えば普通に変換してくれるでしょう。どうしてもだめなものは、ことえりに単語登録してしまえばいいのです。

この機能を手軽に利用するには、コマンドラインアプリのSayKotoeriSayKotoeri2をインストールするとよさそうです。以下はコマンドラインから SayKotoeri を使った場合の処理結果です。

% /usr/local/bin/SayKotoeri -o '情報処理概論'
じょーほーしょりがいろん
% /usr/local/bin/SayKotoeri -om '情報処理概論'
じょうほうしょりがいろん

読み上げのためのシステムなので、情報は「じょーほー」になってしまいます。m オプションを同時に指定すると、純粋にふりがなになります。

シラバスのデータは、Excel で一覧になっていて、AppleScript で Excel のデータを取り出し、SayKotoeri でふりがなを取得した後、Excel のセルに書き戻すことにしました。プログラムを書いて、一括変換していたところ、なぜか異常終了してしまいます。

イベントログを追っていたところ、次のようなことが分かりました。「Ⅵ」単体では大丈夫ですが、任意の文字の後に「Ⅵ」が来ると異常終了します。

% /usr/local/bin/SayKotoeri -om 'Ⅵ'
Ⅵ
% /usr/local/bin/SayKotoeri -om 'あⅥ'
LATextToMorphemes error
analysis = nil

「髙」(はしごだか)でも同様の現象が起こります。

% /usr/local/bin/SayKotoeri -om '髙'
髙
% /usr/local/bin/SayKotoeri -om 'あ髙'
LATextToMorphemes error
analysis = nil

「①」は、異常終了こそしませんが、どこかで見たような文字化け後の読み方になっています。

% /usr/local/bin/SayKotoeri -om '①'
かっこにち

どうやら、ことえり内部の文字コードの扱いに問題があるように思います(使用環境は 、Mac OS X 10.7.2 で、コマンドラインで使用している文字コードは UTF-8 です)。今は急いでいるので、正常に変換できない文字はなかったことにして、一旦ふりがなをふってしまいました。早く直ってほしいです。

0 件のコメント:

コメントを投稿