Yahoo!の日本語形態素解析API
Yahoo!の日本語形態素解析APIを使ってみる。
利用にはあらかじめアプリケーションIDの登録が必要。利用の条件は、
等々。詳しくは、このページあたり参照。
で、アプリケーション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等々が導入できない場合は便利なのではないだろうか。