JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

和文モールス受信技能向上のための日本語形態素解析 ~その1~

和文モールスの受信技能向上には欠かせない、

カナ文字だけの文章ですが。

 

ルビを打ってくれるウェブサービスを経由させることで、まあ作れることは作れるのですが、

ひと手間かかるし、少し面倒ですよね。

f:id:JH1LHV:20151209190110j:plain

やっぱり、

ニュースサイトから文章をコピーしてペタッと貼り付けるだけで、

カナ文字だけの文章に自動で変換してくれたら・・・

もっと気楽に和文の練習ができると思うんだけど。

 

ということで、前々からのわたしの中の懸案事項のひとつ。

「漢字にふりがなを自動で振っちゃうプロジェクト」を始動することにしました。

 

いちばん肝心な日本語文章の分析(形態素解析)ですが、

これは Yahoo! が提供する WebAPI を使って簡単に実装することに。

 

developer.yahoo.co.jp

 

Yahoo!の「日本語形態素解析API」って?

日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供するもの。

 

WebAPI を使うために必要なこと

アプリケーション ID が必要です。

Yahoo! ID連携:アプリケーションIDを登録する - Yahoo!デベロッパーネットワーク

(Yahoo!のアカウントがあればすぐに取得できます。)

 

WebAPIを使ってみる

将来的には CW MANIA に実装する予定ですが、

今回は動作確認のため Python を使って試してみました。

 

プログラム的には、

  1. 日本語形態素解析に必要な URL を作成する
  2. 戻り値の XML をパース(日本語分析)する
  3. 必要なデータ(今回は読みがな)を取り出す

と、WebAPI を使えばほんの数行のコードを書くだけで試すことができます。

 

f:id:JH1LHV:20151209200027j:plain

  

 Windows 7 or 10、 Python 2.7

#coding: utf-8

import xml.dom.minidom
import urllib
import codecs
import sys

sys.stdin = codecs.getreader("shift_jis")(sys.stdin)

appid = "XXXXXXXXXXXXXXXXXXXXXXXXX”
yahoourl = "http://jlp.yahooapis.jp/MAService/V1/parse"

def main():
    moji = raw_input()
    sentence = moji.encode('utf-8')
    url = yahoourl + "?appid=" + appid + "&sentence=" + sentence
    src = urllib.urlopen(url).read()
    dom = xml.dom.minidom.parseString(src)
    print "----------------------------"
    nstr =""
    for url in dom.getElementsByTagName("reading"):
        nstr = nstr + url.firstChild.data
    print nstr 

if __name__ == '__main__':
    main()    

  

  • 必須なリクエストパラメータは appid と sentence の二つです。
  • appid  の XXX に取得したアプリケーション ID を設定します
  • sys.stdin = codecs・・・の行は文字入力処理時に UnicodeDecodeError が出ないようにするための ”おまじない” です。(OS、開発環境に依存)
  • 形態素の読みがなだけが必要なので、reading フィールドだけを取り出します。

 

(利用制限)

  • 24 時間以内で1つのアプリケーション ID につき 50000件 のリクエストが上限です。
  • また、1リクエストの最大サイズは 100KB に制限されています。

 

実行してみる

f:id:JH1LHV:20151209200939j:plain

Python コードを実行後の文字列入力待ちの状態に、

Google のニュースサイトからニュース記事をコピーして貼り付け、Enter します。

 

f:id:JH1LHV:20151209200947j:plain

ご覧のとおり、漢字交じりの文章がふりがなだけの文章に正確に変換してくれました。

 

Yahoo! の「日本語形態素解析」は、独自で作った特別な辞書を使っているとかで、他の同種のサービスの辞書に比べて固有名詞の抽出精度がかなり高いと評判です。

 

今後の CW MANIA への実装ですが、

単純なふりがな変換だけではなく、

ニュースサイトが提供する WebAPI で最新ニュース取ってきて、

「和文モールスで流す・・・」

なんて、面白そうなこともできそうです。Hi