前回RSSを引っ張ってきて、DB化するところまで行いました。
今回はその各記事のタイトルからキーフレーズを抽出してキーフレーズリストのテーブルを作っていきます。記事タイトルの文章からキーフレーズやキーワードを抽出するために、(手動で「てにをは」を消していくのがめんどくさかったので,)Yahoo!デベロッパーネットワークのキーフレーズ抽出APIを使っていきます。
予めYahoo!デベロッパーネットワークに登録を行って、アプリケーションIDを取得してください。分析する文章はあまり長いとうまく行きませんでした。
APIは、http://jlp.yahooapis.jp/KeyphraseService/V1/extract?appid=アプリケーションID&sentence=分析する文章?output=json に値を投げて、file_get_contentsで返り値を得るようにしました。下のソースでは$keyにキーワードが、$valueに重みが入ります。
[crayon]
$text = '以前アンテナサイトを作っているという話題を書きましたが、そのアンテナサイトに今更ながら何周か周回遅れでタグクラウドを設置したいと思います。';
$appid = 'アプリケーションID';
$url_pass = 'http://jlp.yahooapis.jp/KeyphraseService/V1/extract';
$url = $url_pass;
$url .= '?appid=' . $appid;
$url .= '&sentence=' . urlencode($text);
$url .= '&output=json';
$result = file_get_contents($url);
$result_array = json_decode($result,true);
foreach ($result_array as $key => $value){
print $key.'=>'.$value;
}
[/crayon]
このようにYahooキーフレーズ抽出をつかってタイトルを分析して行きます。これを前回行ったDB化されたタイトルを使っていきます。今回は過去1000記事のタイトルを分析するようにしました。アプリケーションID($appID)やURL($url_pass)はすでに読みこんであるとします。 $numRowsはDBにある全記事数です。またデータベースにも接続しておいてください
[crayon]
for ( $i = 0; $i <= 1000; $i++ ) {
//指定のIDの記事を取得
$art_id = $numRows - $i;
$result = mysql_query("SELECT item_title FROM ブログの記事リスト WHERE id =".$art_id);
if (!$result) {
die('SELECTクエリーが失敗しました。'.mysql_error());
}
while ($row = mysql_fetch_assoc($result)) {
$url = $url_pass;
$url .= '?appid=' . $appid;
$url .= '&sentence=' . urlencode($row['item_title']);
$url .= '&output=json';
$result = file_get_contents($url);
$result_array = json_decode($result,true);
foreach ($result_array as $key => $value){
print $key.'=>'.$value;
print('<br><br>');
$value =1;//ここをコメントアウトすればキーフレーズ解析の重み付けが生きる
$key = mysql_real_escape_string($key);
$result2 = mysql_query("INSERT INTO キーフレーズリストのテーブル名 (キーフレーズフィールド,キーフレーズ出現回数) VALUES ('".$key."',".$value.") ON DUPLICATE KEY UPDATE count = count + ".$value."");
if (!$result2) {
die('SELECTクエリーが失敗しました。'.mysql_error());
}
}
}
}
[/crayon]
キーフレーズ抽出APIの重み付けを加算していくように作成しましたが、あまりいい感じにならなかったので、上のソースでは単純に単語の登場回数を足したものを数えています。
今回は文章からキーフレーズとその登場回数を抽出してDBにリスト化していきました。
次回 => アンテナサイトに自作のタグクラウドを設置する Part 4 キーフレーズと登場回数からタグクラウドを作っていきます。
今回はその各記事のタイトルからキーフレーズを抽出してキーフレーズリストのテーブルを作っていきます。記事タイトルの文章からキーフレーズやキーワードを抽出するために、(手動で「てにをは」を消していくのがめんどくさかったので,)Yahoo!デベロッパーネットワークのキーフレーズ抽出APIを使っていきます。
予めYahoo!デベロッパーネットワークに登録を行って、アプリケーションIDを取得してください。分析する文章はあまり長いとうまく行きませんでした。
APIは、http://jlp.yahooapis.jp/KeyphraseService/V1/extract?appid=アプリケーションID&sentence=分析する文章?output=json に値を投げて、file_get_contentsで返り値を得るようにしました。下のソースでは$keyにキーワードが、$valueに重みが入ります。
[crayon]
$text = '以前アンテナサイトを作っているという話題を書きましたが、そのアンテナサイトに今更ながら何周か周回遅れでタグクラウドを設置したいと思います。';
$appid = 'アプリケーションID';
$url_pass = 'http://jlp.yahooapis.jp/KeyphraseService/V1/extract';
$url = $url_pass;
$url .= '?appid=' . $appid;
$url .= '&sentence=' . urlencode($text);
$url .= '&output=json';
$result = file_get_contents($url);
$result_array = json_decode($result,true);
foreach ($result_array as $key => $value){
print $key.'=>'.$value;
}
[/crayon]
このようにYahooキーフレーズ抽出をつかってタイトルを分析して行きます。これを前回行ったDB化されたタイトルを使っていきます。今回は過去1000記事のタイトルを分析するようにしました。アプリケーションID($appID)やURL($url_pass)はすでに読みこんであるとします。 $numRowsはDBにある全記事数です。またデータベースにも接続しておいてください
[crayon]
for ( $i = 0; $i <= 1000; $i++ ) {
//指定のIDの記事を取得
$art_id = $numRows - $i;
$result = mysql_query("SELECT item_title FROM ブログの記事リスト WHERE id =".$art_id);
if (!$result) {
die('SELECTクエリーが失敗しました。'.mysql_error());
}
while ($row = mysql_fetch_assoc($result)) {
$url = $url_pass;
$url .= '?appid=' . $appid;
$url .= '&sentence=' . urlencode($row['item_title']);
$url .= '&output=json';
$result = file_get_contents($url);
$result_array = json_decode($result,true);
foreach ($result_array as $key => $value){
print $key.'=>'.$value;
print('<br><br>');
$value =1;//ここをコメントアウトすればキーフレーズ解析の重み付けが生きる
$key = mysql_real_escape_string($key);
$result2 = mysql_query("INSERT INTO キーフレーズリストのテーブル名 (キーフレーズフィールド,キーフレーズ出現回数) VALUES ('".$key."',".$value.") ON DUPLICATE KEY UPDATE count = count + ".$value."");
if (!$result2) {
die('SELECTクエリーが失敗しました。'.mysql_error());
}
}
}
}
[/crayon]
キーフレーズ抽出APIの重み付けを加算していくように作成しましたが、あまりいい感じにならなかったので、上のソースでは単純に単語の登場回数を足したものを数えています。
今回は文章からキーフレーズとその登場回数を抽出してDBにリスト化していきました。
次回 => アンテナサイトに自作のタグクラウドを設置する Part 4 キーフレーズと登場回数からタグクラウドを作っていきます。
0コメント