ブログ記事のキーワードを抽出してアマゾンアソシエイトと連携。Yahoo!キーフレーズ抽出のレポ。

2016/10/16


アマゾン

Yahoo!デベロッパーズネットワークが提供している、キーフレーズ抽出apiを試してみました。
文章を解析してキーワードを抜き出してくれるこのapi。
例えば、ブログの記事からキーワードを抽出して、アマゾンの商品を検索する、なんていう使い方もできそうです。
今日は、その使用感をレポートしますね。

スポンサーリンク

まずはアプリケーションIDを取得しよう!

キーフレーズ抽出apiのホームページはコチラ
利用するには、Yahoo!デベロッパーズネットワークでアプリケーションIDを取得する必要があります。
でも、まあ、Yahoo!のIDを持っていれば、登録はすぐ終わります。

コードのサンプル

で、実際のコードとしては、例えば次のような感じです。
show_keyphrase関数を、解析したい文章を引数にして呼び出すと、キーワードが返ってきます。

<?php
function escapestring($str) {
    return htmlspecialchars($str, ENT_QUOTES);
}
function show_keyphrase($sentence){
  $appid = '<あなたのアプリケーションID>';
  $sentence = substr($sentencer,0,1024);
  $output = "xml";
  $request  = "http://jlp.yahooapis.jp/KeyphraseService/V1/extract?";
  $request .= "appid=".$appid."&sentence=".urlencode($sentence)."&output=".$output; 
  $responsexml = simplexml_load_file($request);
  $result_num = count($responsexml->Result);
  $result_str = "";
  if($result_num > 0){
    $result = $responsexml->Result[0];
    $result_str = escapestring($result->Keyphrase);
  }
  return $result_str;
}
?>

試してみると、完璧とは言えないまでも、精度はかなりいいです。
解析できる文章に100KBまでの上限がありますが、簡易的なキーワード抽出と考えれば十分な気もします。

このブログでの実験結果

例えば、このブログの過去の記事で試してみると、解析結果は次のようになります。

<解析した記事>
無印良品の斬新なタオル。ボロボロになるまで使い倒せます。でも、乾きにくいのはイマイチかな。

<解析結果>

  1. 無印良品
  2. タオル
  3. 雑巾
  4. フェイスタオル
  5. 東急ストア

無印良品のタオルのレビューを書いたこの記事。しっかりとキーワードを拾っています。

続いて、他の記事も試してみます。

<解析した記事>
神保町のカレー専門店「ボンディー」。フルーティーな欧風カレーは、一食の価値あり。

<解析結果>

  1. ボンディー神保町本店
  2. 古書センター
  3. カレー専門店
  4. 営団地下鉄
  5. ビーフカレー

ちゃんと抽出していますね。

今後の課題

Yahoo!のキーフレーズ抽出apiは、十分な機能をもったサービスだと思います。
ただ、アマゾンとの連携を考えると、なかなか課題が多いです。キーフレーズ抽出apiの課題ではなく、利用するコチラ側の課題なんですけどね。

私としては、キーフレーズ抽出apiでキーワードを抜き出し、そのキーワードでアマゾンの商品を検索してブログに表示したいのですが、これがなかなか難しい。
先ほどのカレー記事で言えば、「ボンディー神保町本店」や「古書センター」などの言葉でアマゾンを検索しても意図した結果が得られません。せめて「カレー専門店」で検索したい。それでも完璧ではありませんが。

すべてを自動化するのは難しいですね。
もう少し、試してみようと思います。

画像引用元:イルミネーションの二人 by aes256

スポンサーリンク