Yahoo!デベロッパーズネットワークが提供している、キーフレーズ抽出apiを試してみました。
文章を解析してキーワードを抜き出してくれるこのapi。
例えば、ブログの記事からキーワードを抽出して、アマゾンの商品を検索する、なんていう使い方もできそうです。
今日は、その使用感をレポートしますね。
まずはアプリケーションIDを取得しよう!
キーフレーズ抽出apiのホームページはコチラ。
利用するには、Yahoo!デベロッパーズネットワークでアプリケーションIDを取得する必要があります。
でも、まあ、Yahoo!のIDを持っていれば、登録はすぐ終わります。
コードのサンプル
で、実際のコードとしては、例えば次のような感じです。
show_keyphrase関数を、解析したい文章を引数にして呼び出すと、キーワードが返ってきます。
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までの上限がありますが、簡易的なキーワード抽出と考えれば十分な気もします。
このブログでの実験結果
例えば、このブログの過去の記事で試してみると、解析結果は次のようになります。
無印良品のタオルのレビューを書いたこの記事。しっかりとキーワードを拾っています。
続いて、他の記事も試してみます。
ちゃんと抽出していますね。
今後の課題
Yahoo!のキーフレーズ抽出apiは、十分な機能をもったサービスだと思います。
ただ、アマゾンとの連携を考えると、なかなか課題が多いです。キーフレーズ抽出apiの課題ではなく、利用するコチラ側の課題なんですけどね。
私としては、キーフレーズ抽出apiでキーワードを抜き出し、そのキーワードでアマゾンの商品を検索してブログに表示したいのですが、これがなかなか難しい。
先ほどのカレー記事で言えば、「ボンディー神保町本店」や「古書センター」などの言葉でアマゾンを検索しても意図した結果が得られません。せめて「カレー専門店」で検索したい。それでも完璧ではありませんが。
すべてを自動化するのは難しいですね。
もう少し、試してみようと思います。