のんびり読書日記

日々の記録をつらつらと

Yahooのキーフレーズ抽出APIを試す

Yahoo!デベロッパーネットワークでキーフレーズ抽出APIが公開されていたので、ちょろっと試してみました。

ただコマンドラインから文章受け取って、APIにリクエスト送るだけのスクリプト

#!/usr/bin/perl
#
# Yahooのキーフレーズ抽出APIを試す
#

use strict;
use warnings;
use Encode qw(encode);
use URI;
use URI::QueryParam;
use LWP::Simple;
use XML::Simple;

use constant {
    API_URL => 'http://jlp.yahooapis.jp/KeyphraseService/V1/extract',
};

my $sentence = shift @ARGV;
if (!$sentence) {
    print "Usage: $0 sentence\n";
    exit(1);
}

my $url = URI->new(API_URL);
my %param = (
    appid    => '...',
    sentence => $sentence,
    output   => 'xml',
);
$url->query_form_hash(%param);
my $xml = LWP::Simple::get($url) or die 'cannot get output';

my $parser = XML::Simple->new;
my $dom = $parser->XMLin($xml);
die 'no Keyphrase' if !$dom->{Result};
my @results = ref $dom->{Result} eq 'ARRAY' ?
    @{ $dom->{Result} } : ( $dom->{Result} );
foreach my $result (@results) {
    printf "%s\t%s\n", encode('utf-8', $result->{Keyphrase}), $result->{Score};
}

実際にリクエストを投げてみる。

% ./keyphrase.pl 今日はいい天気です
いい天気        100
今日    48
% ./keyphrase.pl 昨日は東京ミッドタウンに行ってきました
東京ミッドタウン        100
昨日    31
% ./keyphrase.pl 来週の日曜日は楽しい運動会です
楽しい運動会    100
日曜日  74
来週    59

チョロッと試して限りだと、

  • 名詞列を連結して一つのキーワードにしている
  • 名詞の前に形容詞がある場合はくっつける
  • 1番ポイントの高いキーワードを100ポイントにして、それ以外のキーワードは1番のワードのポイントとの比率で補正

といった感じ?ポイントはTFIDFのようなもので付けてるのかな。

前にTFIDFでwikipediaの特徴量を抽出なんてことをやったけど、このAPIを使えばIDF用にあらかじめワードをカウントしておく必要もないので、かなり便利になりそう。

でも形容詞をくっつけてしまうのはちょっと微妙な気がする。上の例だと「楽しい運動会」で一つのキーワードとして抽出されているけど、「明日は運動会です」のように形容詞が前にない文では「運動会」のみで抽出されるため、2つの文章が似ていることをキーワードのベクトルでは判断できない。形容詞は付けないか、オプションで付ける/付けないを切り替えられるようになればいいのに。

逆転検事

逆転検事(通常版)

逆転検事(通常版)

逆転裁判シリーズは本当に大好き。4でがらっと主人公が変わったときはちょっと…と思ったけど、今回は1から出ている御剣が主人公で、事件の調査と事件関係者への取調べがメインのゲームになってる。元の逆転裁判のテイストは残しつつ、事件調査の新しい要素も加わって、まだ途中まで進んでないけどなかなか面白い。

ただ裁判シーンもあってもよかったんじゃないかなーとは思う。事件現場だけで話が終わってしまうとメリハリがなくて、緊張感が生まれにくい気がする。

やりすぎコージー18

またまたやりすぎコージー。本当に好き。今回は2部構成で、1つ目は千原ジュニアのへたれっぷりの暴露と、後半は千原兄弟の取り巻きの話。今回もなかなか面白い。

柳原慧『レイトン教授とさまよえる城』

レイトン教授とさまよえる城 (GAGAGA)

レイトン教授とさまよえる城 (GAGAGA)

レイトンの小説が本屋で積まれてたので、さっそく購入して読了。字が大きめなので内容はあまり多くはないけど、雰囲気はゲームのままだし、ストーリーもなかなかよくできていて面白い。ナゾナゾも8問ほど出てくる。難易度は低いのでサクッと解ける。

物語はルークの視点で進んで行く。でもこのルーク、ちょっと性格が黒すぎる。すぐに他人のアラを探して悪口をいうんだなぁ。ルークはこんなことをいつも考えてたのかとビックリ。

あと、ナゾナゾ以外にも挿し絵を入れてほしかったなぁ。レイトンはあの独特のキャラクターの絵が好きなんだけど、今回は表紙以外はキャラクターの絵がないのでちょっと残念。せっかくなのでこのストーリーで、iphoneミニゲームとかで出してくれないかなぁ。

やりすぎコージー

2部構成で、まずは森三中の村上の結婚なりそめと初夜の話。初夜の部分は紙芝居で説明してたんだけど、それがめちゃめちゃ面白い。

2つ目は芸能界の「ゲイ能人」が自身の体験と、好きな男性芸能人について語っている。こっちもかなり面白い。やっぱりやりすぎコージーは下ネタが最高。

番組中に行われた小さめのトークを集めたトーク集になってる。楽しみにしてたんだけど、大抵はテレビですでに見たことがあるのばっかりだったので、自分的にはちょっと物足りない。初めて見る人ならなかなか楽しめるかも。でもとりあえず見るなら、他の巻の特集ものの方がいいかとは思う。

飯塚訓『墜落遺体 御巣鷹山の日航機123便』

墜落遺体 御巣鷹山の日航機123便 (講談社+α文庫)

墜落遺体 御巣鷹山の日航機123便 (講談社+α文庫)

ずーっと前に買ってそのまま放置してたんだけど、クライマーズハイを読んで、御巣鷹山の事件についてもっと詳しく知りたくなったので読んでみた。

著者はこの事故の遺体確認の責任者で、全遺体の身元が確認されるまでの様子が細かく書かれている。とにかく悲惨。バラバラになって焼け焦げた遺体や、真夏のため腐ってどんどん出てくる蛆、遺族の悲しみなど…。読んでて本当につらい。

人の死について改めて考えさせられる。前に読んだ岳で出てきたフレーズで、「あるところまで山を登り続けると、人は絶対悪いことができなくなる」を思い出したけど、こういう極限状態を体験すると人生観がかなり変わるんだろうね。

森友治『ダカフェ日記』

ダカフェ日記

ダカフェ日記

この前読んだ『続ダカフェ日記』がすごくよかったので、順番が逆だけどダカフェ日記も買ってみた。やっぱりいい写真が多いなー。続の時と比べて子供たちがまだ小さくて、成長の様子が伺えて面白い。

写真そのものは続の方がうまい気もするけど、見てて楽しい写真ばかり。こういう写真が撮れるようになりたいなぁ。日々の楽しい瞬間を残していけると、毎日の生活もすごく楽しくなりそうな気がする。