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を指定してください。
1 2 3 4 5 6 |
# 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に対して以下のコマンドで、ひらがな、カタカナでの読みを答えるようにしてみます。
1 2 3 4 5 6 |
user1>> hubot hiragana 漢字が混ざっている文章 hubot>> かんじが まざっている ぶんしょう user1>> hubot katakana 檸檬 hubot>> レモン |
curlコマンドでテストしたときの要領でhubot-scriptを実装します。
アプリケーションIDは環境変数GOOLAB_APP_IDから読み込むようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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からインストール
1 2 3 |
$ cd /path/to/hubot $ npm install --save knjcode/hubot-hiraganize-goo |
external-scripts.json
へスクリプトを登録
1 2 3 |
$ cat external-scripts.json ["hubot-hiraganize-goo"] |
動作確認
slackのhubotにスクリプトを組み込んで試してみると、
うまく動きました。
おわりに
検索エンジンを運営しているノウハウもあるのか、gooラボのひらがな化APIの変換精度は高いように思います。
稀に、応答が遅かったりしますが、無料で実用的なAPIを公開してくれているのはありがたいです。
ひらがな化APIのほかに、形態素解析や固有表現抽出や語句類似度算出などもあるようなので、時間があれば試してみたいと思います。