Yahoo APIを利用して形態素解析 – 文字列 文節解析 構造解析 PHP 開発 サンプル

 Yahoo APIの形態素解析(文書の構成を解析する)をPHPから使ってみる。

サンプル > 実行してみる

$Y_APPID = ""; //yahoo api 開発ID
$sentence = "テスト文書について、形態素解析をかけることでキーワードを抽出してみる。";
$POST_REQUEST = "appid={$Y_APPID}&results=ma&sentence=".urlencode($sentence);

$defaults = array(
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_URL => "http://jlp.yahooapis.jp/MAService/V1/parse",
    CURLOPT_FRESH_CONNECT => 1,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_FORBID_REUSE => 1,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_POSTFIELDS => $POST_REQUEST
);
$ch = curl_init();
curl_setopt_array($ch, $defaults);
$res = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($res);
$WordsArray = array();
$WordsHashToWord = array();
foreach ($xml->ma_result->word_list->word as $cur){
    if($cur->pos == "名詞"){
        @$WordsArray[md5($cur->surface)]++;
        @$WordsHashToWord[md5($cur->surface)] = $cur->surface;
    }
}
arsort($WordsArray);
$i = 1;
echo("<ol>");
foreach($WordsArray as $w=>$n){
    echo("<li>{$WordsHashToWord[$w]}[{$n}]</li>");
    if($i++ >= 10) break;
}
echo("</ol>");

 公式サンプルはGETだけど、長さ制限があるので、CURLを利用してPOSTしている。
 最初に入力された文書をYahooに解析してもらって、品詞を登場頻度の多い順に表示する。
 例えば、先日のSimpleHTML DOM Parserで拾ったHTMLのBODYを形態素解析して品詞の多い順に解析すれば、ページのキーワード傾向を調べることが出来る。

 先日から色々紹介しているPHPサンプルだが、共用レンタルサーバだとモジュール不足で使えないことも多いので、VPSの利用をお勧めしたい。

(14)


カテゴリー: PHP   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です