Google Apps ScriptでYahooキーフレーズ抽出APIを使う【GAS】

Yahoo Developerは、まだREST APIと呼ばれる前の時代から、マッシュアップという言葉とともに色々なWebAPIを提供してきました。その中で「キーフレーズ抽出API」というものがあるのですが、日本語形態素解析APIのように、1文の中で特徴的な単語を取り出してくれる非常に便利なAPIです。

既にV1が2022年1月末日に廃止されているため、現在はV2のみ利用可能なので、このAPIをGoogle Apps Scriptから叩いてみようと思います。

今回使用するスプレッドシート

事前準備

アプリケーションIDを取得する

アプリケーションID(一般には、Client IDのこと)を取得する必要があります。以下の手順で取得しましょう。もちろん、事前にYahoo IDを取得してログインしておく必要があります。

  1. こちらのサイトにアクセスする
  2. 登録は適当でOK。ID連携の利用は利用する、属性取得APIは利用しない、アプリの種類はサーバーサイド利用、あとは個人で住所やアプリ名、ウェブサイトのURLを入れる
  3. 最後に一番下の更新ボタンを押せば、Client IDおよびSecretが取得出来ます(但し、Secretは使用しません)
  4. このClient IDがアプリケーションIDに該当します。

図:アプリのIDが必要になります

リクエスト制限

YahooのAPIはリクエスト上限がかなり緩めです。基本的には「1アプリIDごとに1日50000リクエストまで」。また、非商用利用に限られるということになっています。

この2つの制限を守って利用することになります。

コードとレスポンス

ソースコード

Pythonのサンプルコードだけが掲示されているという、非常に不親切なAPIであり、尚且、User-Agentをヘッダに含めるというオカシナ形態をしているのですが、実はパラメーター方式でAPPIDを渡しても使えるので、Google Apps Scriptでも叩けます。

  • endpointのURLにパラメータ方式でappid=取得したClient IDをもってURLとして構築すれば叩く事が可能です
  • リクエストボディで可変の部分は、paramsのqの部分のみ。ここに、キーフレーズを抽出する文章を入れます。
  • payloadはJSON.stringifyで括ってから渡します。
  • 後は、いつもどおりUrlfetchAppでリクエストを投げるだけ。POSTで送信します。

レスポンスデータ

  • idは自分でリクエスト時にセットしたものがそのまま返ってきます。
  • 元文章から重要度をscoreで分類し、取り出したフレーズがtextとして複数に分割されて返ってきます。
  • 日本語の文章からこれらフレーズを取り出せる事によって、それを元に検索して返すといった事が可能になるため、AlexaやGoogleアシスタントと組み合わせると面白いかもしれません。

図:無事に取得する事ができました。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。