FC2ブログ

<?php
// 検索ワード
$Get_Keyword = ereg_replace("[  ]+", " ", trim($_GET['sentence']));
$Get_Keyword_enc = urlencode($Get_Keyword);
$Get_Keyword_enc_utf = urlencode(mb_convert_encoding($Get_Keyword, "UTF-8", "EUC-JP"));

// リクエストパラメータ
$Yahoo = "http://jlp.yahooapis.jp/MAService/V1/parse";
$appid = "?appid="."";
$sentence = "&sentence=".$Get_Keyword_enc_utf;
$results = "&results="."ma,uniq";
$response = "&response="."surface,reading,pos,baseform,feature";
$filter = "&filter=";
$ma_response = "&ma_response=";
$ma_filter = "&ma_filter=";
$uniq_response = "&uniq_response=";
$uniq_filter = "&uniq_filter=";
$uniq_by_baseform = "&uniq_by_baseform";

// XML
$url = $Yahoo.$appid.$sentence.$results.$response.$filter.$ma_response.$ma_filter.$uniq_response.$uniq_filter.$uniq_by_baseform;
$xmldata = simplexml_load_file($url) or die("XMLパースエラー");

// 形態素解析
$ma_total_count = $xmldata->ma_result->total_count;
$ma_filtered_count = $xmldata->ma_result->filtered_count;

print $ma_total_count."<br />";
print $ma_filtered_count."<br />";

foreach($xmldata->ma_result->word_list->word as $value){
$ma_surface = mb_convert_encoding($value->surface, "EUC-JP", "UTF-8");
$ma_reading = mb_convert_encoding($value->reading, "EUC-JP", "UTF-8");
$ma_pos = mb_convert_encoding($value->pos, "EUC-JP", "UTF-8");
$ma_baseform = mb_convert_encoding($value->baseform, "EUC-JP", "UTF-8");
$ma_feature = mb_convert_encoding($value->feature, "EUC-JP", "UTF-8");

print $ma_surface."<br />";
print $ma_reading."<br />";
print $ma_pos."<br />";
print $ma_baseform."<br />";
print $ma_feature."<br />";
}

// 出現頻度情報
$uniq_total_count = $xmldata->uniq_result->total_count;
$uniq_filtered_count = $xmldata->uniq_result->filtered_count;

print $uniq_total_count."<br />";
print $uniq_filtered_count."<br />";

foreach($xmldata->uniq_result->word_list->word as $value){
$uniq_count = $value->count;
$uniq_surface = mb_convert_encoding($value->surface, "EUC-JP", "UTF-8");
$uniq_reading = mb_convert_encoding($value->reading, "EUC-JP", "UTF-8");
$uniq_pos = mb_convert_encoding($value->pos, "EUC-JP", "UTF-8");
$uniq_baseform = mb_convert_encoding($value->baseform, "EUC-JP", "UTF-8");
$uniq_feature = mb_convert_encoding($value->feature, "EUC-JP", "UTF-8");

print $uniq_count."<br />";
print $uniq_surface."<br />";
print $uniq_reading."<br />";
print $uniq_pos."<br />";
print $uniq_baseform."<br />";
print $uniq_feature."<br />";
}
?>


参考URL
Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析

appid アプリケーションID(必須)
sentence 解析対象のテキスト
results 解析結果の種類をコンマで区切って指定 ma 形態素解析 uniq 出現頻度情報
response 形態素情報をコンマで区切って指定 surface, reading, pos, baseform, feature
filter 品詞番号を "|" で区切って指定 1 形容詞 2 形容動詞 3 感動詞 4 副詞 5 連体詞 6 接続詞 7 接頭辞 8 接尾辞 9 名詞 10 動詞 11 助詞 12 助動詞 13 特殊(句読点、カッコ、記号など)
ma_response ma_result 内の word に返される形態素情報をコンマで区切って指定 無指定の場合 responseを使用
ma_filter ma_result 内に解析結果として出力する品詞番号を "|" で区切って指定定 無指定の場合 filterを使用
uniq_response uniq_result 内の word に返される形態素情報をコンマで区切って指定定 無指定の場合 responseを使用
uniq_filter uniq_result 内に解析結果として出力する品詞番号を "|" で区切って指定 無指定の場合 filterを使用
uniq_by_baseform このパラメータが true ならば、基本形の同一性により、uniq_result の結果を求めます。

total_count 形態素の総数を返します。
filtered_count フィルタにマッチした形態素数を返します。
surface 形態素の表記を返します。
reading 形態素の読みがなを返します。
pos 形態素の品詞を返します。
baseform 形態素の基本形表記を返します。活用のない形態素の場合は省略されます。
feature 形態素の全情報を文字列で返します。
count uniq_result 中の word 内に現れる、形態素の出現数を返します。
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS