農場主の日常

なんちゃってエンジニアの日常をつらづらと

Yahooのテキスト解析APIを使ったキーワード抽出

 AmazonとGoogle関係のAPIを更新したり調査したところで、次の修正を行ってみる。
 当ブログは、2006年に開始したのだけれど、当初の一般家庭のネット環境はADSL中心で転送速度が遅かった。そのため、画像などの大きなファイルは極力使用しないよう構成してきた。
 現在は光が主流になり、スマホの高度化もあってwifiでの通信も行われるようになった。
 そうなると、テキスト中心の文化からアイコンや画像を多用した目を引くサイトが主流となってきている。

 Yahooなんかを見るとわかるとおり、関連記事の表示には必ず小さなサムネイルがついている。うちのサイトは当初Yahooの関連記事表示を参考にしていたのだけれど、今となっては全然違うようになってしまった。
 そこでまずは、関連記事表示を充実させるべく、記事のキーワード抽出を何とかすることにする。
 

これまでのキーワード抽出


 記事のキーワードはメタタグに追加して、検索エンジンに拾ってもらえるようにするためのものであった。プラグインとしてNP_Headerを使用している。
 このプラグインでは、キーワード抽出を自動化するために「bulkfeeds」のサイトのサービスを使用していたようだ。
 しかし、このサービスが2010年ぐらいにはすでに使えなくなっていて、このサイトでも手入力にて設定していた。
 いちいち手入力するのも大変なので、これの自動化を考えたい。

Yahooのキーワード抽出API


 Yahoo japanのデベロッパーズネットワークでは、テキスト分析用のAPIが公開されていて、分析したい文章を投げると、キーワードを抽出してくれるものが公開されている。今回はそれを使ってみる。
テキスト解析:キーフレーズ抽出 - Yahoo!デベロッパーネットワーク

キーワード抽出APIを試す


 これを使用するためには、YahooのIDが必要。
 YahooのIDは持っているのでログインしてみたら、過去に発行されたAPIキーが2つほど登録されていた。そういえば昔、試したことがあるかもしれない。
 その2つは無視して、新たにサイトとアプリケーションを登録して、キーを発行する。
 キーを発行したら、キーフレーズ抽出APIのページにあるサンプルをダウンロードし、アプリケーションのキー部分を自分のキーに変更してアップロード。すると、キーワード抽出を試すphpのフォームが現れる。

 キーワードを入力して解析してみると、どうも長い文章ではエラーが発生する。発生するエラーは以下
「Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity」

APIの利用制限とエラー対応


 APIには以下の利用制限があるので
キーフレーズ抽出Web APIは、24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限となっています。また、1リクエストの最大サイズを100KBに制限しています。詳しくは「利用制限」をご参照ください。

 URLエンコードしたテキストのサイズを100KBに制限するようにしてみたけれど、6KBくらいでエラーが発生する。

 この理由を調査した。使用したサンプルコードがGETなので、URLの長さ制限に引っかかったらしい。サンプルをPOSTに書き換えてテストすると問題なく。
 これをベースに、NP_Headerへの組み込みを行ってみよう。


関連記事[デベロッパーネットワーク entity メタタグ


コメント


コメントはありません。



コメントの追加


トラックバック

このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。

↑ PAGE TOP