Yahoo!の日本語形態素解析API

Yahoo!の日本語形態素解析APIを使ってみる。
利用にはあらかじめアプリケーションIDの登録が必要。利用の条件は、

  • 日本語形態素解析Web APIは、24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限
  • また、1リクエストの最大サイズを100KBに制限しています。

等々。詳しくは、このページあたり参照。
で、アプリケーションIDを取得した後、早速PHPで使ってみる。

<?php
/**
 * Yahoo!形態素解析APIサンプル
 */
require_once 'HTTP/Request.php';

$yahooappid = "foobar..."; // ここにYahooから取得したアプリケーションIDを記載。

// --- 形態素解析対象の文章と文字コード変更
$sentence = "PHPは、HTML埋め込み型のサーバサイド・スクリプト言語として分類される。この言語処理系自体は、C言語で記述されている。";

// --- API呼び出し
$url = 'http://jlp.yahooapis.jp/MAService/V1/parse';  // APIのコール先

$request = new HTTP_Request($url);
$request->addQueryString('appid', $yahooappid);
$request->addQueryString('sentence', $sentence);
$request->addQueryString('results', 'uniq');
$request->addQueryString('filter', '9');    // 名詞でフィルタ
if (PEAR::isError($request->sendRequest())) {
    die('request failed');
}

$resp = $request->getResponseBody();

$wordscun = array();
$xml = new SimpleXMLElement($resp);
foreach ($xml->uniq_result->word_list->word as $wd) {
	printf("%s (count:%d)\n", $wd->surface, $wd->count);
}
?>

こんな形で良いのではないだろうか。
出力結果は次の様になる。

/Users/hideack/pj/feeddown2/ex% php yahooapi.php
言語 (count:3)
HTML (count:1)
PHP (count:1)
サーバ (count:1)
スクリプト (count:1)
処理 (count:1)
分類 (count:1)
埋め込み (count:1)
自体 (count:1)
記述 (count:1)

サンプル中の文書が解析されて名詞のみが抽出されている。
処理対象文書が少ない場合、あるいは、レンタルサーバ等々の事情でchasen等々が導入できない場合は便利なのではないだろうか。