hubotで日本語の読みがなを解析する(gooラボのひらがな化API編)

gooラボひらがな化APIを利用して、hubotで日本語の読みがなを取得してみました。

gooラボのAPI利用登録

gooラボのAPIを使うためには、gooラボAPI利用登録ページにてGitHubアカウントでの登録が必要です。

登録するとAPIを利用するためのアプリケーションIDが取得できるので控えておきましょう。

簡単でいいですね。

とりあえず使ってみる

ひらがな化APIは以下の仕様に従ってPOSTで利用します。
(参考:ひらがな化API

リクエスト先URL

https://labs.goo.ne.jp/api/hiragana

リクエストパラメータ

パラメータ名 説明
app_id アプリケーションID (必須項目)
request_id リクエストID (省略化)
sentence 解析対象テキスト (必須項目)
output_type 出力種別 (必須項目)
hiragana か katakana を指定

コマンドラインでテスト

hubotに機能実装する前に、curlコマンドで試してみます。
アプリケーションIDには各自で取得したIDを指定してください。

# curlコマンドでAPIを呼ぶ
$ curl -H "Content-type: application/json" -X POST -d '{"app_id":"アプリケーションID", "sentence":"漢字が混ざっている文章", "output_type":"hiragana"}' 'https://labs.goo.ne.jp/api/hiragana'

# ひらがな化APIからの応答
{"request_id":"labs.goo.ne.jpt1433158539t0","output_type":"hiragana","converted":"かんじが まざっている ぶんしょう"}

うまく動きました。

hubotから使えるようにする

hubotに対して以下のコマンドで、ひらがな、カタカナでの読みを答えるようにしてみます。

user1>> hubot hiragana 漢字が混ざっている文章
hubot>> かんじが まざっている ぶんしょう

user1>> hubot katakana 檸檬
hubot>> レモン

curlコマンドでテストしたときの要領でhubot-scriptを実装します。
アプリケーションIDは環境変数GOOLAB_APP_IDから読み込むようにします。

baseUrl = "https://labs.goo.ne.jp/api/hiragana"

APP_ID = process.env.GOOLAB_APP_ID
if !APP_ID
  console.error "ERROR: You should set your GOOLAB_APP_ID env variables."

module.exports = (robot) ->
  robot.respond /(hiragana|katakana) (.*)/i, (msg) ->
    data = JSON.stringify {
        "app_id": APP_ID
        "sentence": msg.match[2]
        "output_type": msg.match[1]
    }

    robot.http(baseUrl)
      .header("Content-type", "application/json")
      .post(data) (err, res, body) ->
        try
          result = JSON.parse(body)
          msg.send result.converted
        catch err
          robot.logger.err("#{err}")

hubotのスクリプトとして実装したものをGitHubのknjcode/hubot-hiraganize-gooにおいてあります。

hubotへの導入

hubotへの導入は以下のとおりです。

npmからインストール

$ cd /path/to/hubot
$ npm install --save knjcode/hubot-hiraganize-goo

external-scripts.jsonへスクリプトを登録

$ cat external-scripts.json
["hubot-hiraganize-goo"]

動作確認

slackのhubotにスクリプトを組み込んで試してみると、

screen-shot

うまく動きました。

おわりに

検索エンジンを運営しているノウハウもあるのか、gooラボのひらがな化APIの変換精度は高いように思います。
稀に、応答が遅かったりしますが、無料で実用的なAPIを公開してくれているのはありがたいです。

ひらがな化APIのほかに、形態素解析や固有表現抽出や語句類似度算出などもあるようなので、時間があれば試してみたいと思います。

スポンサーリンク
レクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル(大)