こんにちは、デジタル事業本部の藤田です。
突然ですが漢字よみがなクイズです。
下記それぞれの漢字によみがなを振ってください。
目次
●索引テキストを抽出しても「よみがな」がない
カタログを作成する際、DTP 作業において目次や索引を作成することが多々あります。以前 AppleScript で InDesign から目次・索引を作成する記事を紹介しましたが、索引となるテキストを抽出してもよみがながなければあいうえお順に並べ替えることはできません。というわけで、漢字テキストからよみがなを取得するツールやサービスを探して検証してみました。
●Jedit の機能を使う方法
アートマン21さんが開発・提供されている Jedit X/Jedit Ω には「漢字をひらがなに変換する」というコマンドがあります。
メニュー「ツール>漢字をひらがなに変換する」を実行すると、漢字をひらがなに変換します。カタカナはそのままにして変換しません。
参考:Jedit X ヘルプより
Jedit のひらがな変換は、ver3.0のころは言語解析マネージャを利用していたようですが、Jedit X は Cocoa を呼び出していると思われます。
●Excel VBA を使う方法
Excel VBA では SetPhonetic メソッドで漢字にふりがなを作成することができます。ふりがなの取得は MS-IME からなので Windows 版 Excel のみの機能です。ふりがなを設定したいテキストのセルを選択してから VBE(Visual Basic Editor)を起動し、イミディエイトウィンドウを表示して、次のように入力します。
Selection.SetPhonetic
[enter]キーを押すとふりがなが設定されます。ですが、そのままではふりがなは表示されないので [ホーム] タブの [フォント] の [ルビ] ボタン をクリックし、ふりがなの表示/非表示を選択します。
すると、セルの文字列にふりがなが表示されます。
さらに、文字列からふりがなをセルへ抽出するには PHONETIC 関数を使います。
PHONETIC 関数でふりがなをセルへ抽出することができました。
●形態素解析 API を使う方法
形態素解析はテキストを解析するものですが、よみがなの取得にも使えます。今回は Yahoo! が提供する日本語形態素解析のサービスを使ってみます。
Yahoo! 形態素解析は…
日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供します。
※参考:テキスト解析:日本語形態素解析 - Yahoo!デベロッパーネットワークより
Yahoo! JAPAN の Web サービスを利用するには、アプリケーション ID が必要です。アプリケーション ID は Yahoo! JAPAN ID をお持ちの方なら誰でも登録できるので、形態素解析 API を使用するために取得します。
参考:Yahoo!デベロッパーネットワーク>ヘルプ>アプリケーションIDを登録する
アプリケーション ID を登録したら、さっそく形態素解析 API を使ってみます。ブラウザのアドレスバーに直接リクエスト URL をペーストし、パラメータ「sentence」には解析したいテキスト、「appid」にはアプリケーション ID を指定します。その他のパラメータはとりあえず省略してかまいません。
[enter] を押すと、結果が XML で戻ってきます!
解析対象のテキストが文章である場合は、品詞ごとに分割されます。
さて、プログラムから API を使う方法はいろいろありますが、Yahoo! 形態素解析 API を AppleScript で利用するとこんな感じになります。
※curl コマンドでリクエストを送信
※XML は System Events で処理を行い、<reading>タグの内容を返す
この方法を発展させて、Excel で選択したセルのテキストのよみがなを隣のセルに展開するようにしてみました。
なお、形態素解析 API は Yahoo! 以外にもさまざまな会社よりサービスが提供されています。
●漢字→よみがなの精度は?
さて、漢字からよみがなを取得できる方法をいくつか試してみましたが、精度はどうなんでしょうか? 漢字検定の問題集をお借りして検証してみました。上記3つの方法で漢字のよみがなを Excel に展開しています。
「正解ではないセル」は赤く塗りつぶすように条件付き書式を設定しました。概ね合っているものですが、やはりよみがなを取得できない場合はあるものです。
「正解ではないセル」についていくつかピックアップしてみます。たとえば…
9級:角
5級:盛る
5級:孝行
4級:五月雨
3級:掛かり
5級:一冊、3級:零度、3級:一斤
1級:砧声、準1級:戎馬
●補足
上記のよみがな精度検証における「正解ではないセル」は一部の範囲であり、全体的には概ね正解でした。ただ、やはり形態素解析 API はクラウドだけあって今後自動学習が進んでいくものだと思われます。なお、今回の記事は漢字よみがなの精度検証について調査したものであり、個々のツールの優越をつけるものではないことをおことわりしておきます。