Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析 APIをwindows ActivePerlで使ってみました。忘れないようにコードを書いておきます。
windows環境でActivePerlを使ってYahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析APIを試してみました。おーまたちょっと進歩、アイデアを形にすることに近づけるかなぁーと。忘れないようにコード書いておきます。
linuxとwindowsでは、コードの書き方もちょっと異なってくるのでそこら辺が理解できなかったのですが、最近ようやく慣れてきた(パターンがわかってきた)ような気がします。
コード
#!/usr/bin/perl
use strict;
use Encode;
use LWP::Simple;
use XML::Simple;
use URI::Escape;
my $base_url = 'http://api.jlp.yahoo.co.jp/MAService/V1/parse?';
my $app_id = 'your appid';
my $sentence ='日本語形態素解析Web APIは、24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限となっています。また、1リクエストの最大サイズを100KBに制限 しています。詳しくは「利用制限」をご参照ください。';
$sentence = decode('shiftjis', $sentence);
$sentence = encode('utf8', $sentence);
$sentence = uri_escape($sentence);
my $req_url = $base_url . "appid=$app_id" . "&results=ma&response=surface,reading,pos,baseform,feature&sentence=" . $sentence;
my $res = LWP::Simple::get($req_url) or die "cannot get content from $req_url";
my $parser = XML::Simple->new(forcearray => 1);
my $doc = XMLin($res);
for my $w ( @{ $doc->{ma_result}->{word_list}->{word} } ) {
print encode('shiftjis', (sprintf "%s\t%s,%s\n", $w->{surface}, $w->{feature}, $w->{reading}) );
}
以下の記事を参考にさせてコード書きました。ありがとうございます。
出力
日本語 名詞,名詞,*,日本語,にほんご,日本語,にほんご
形態素 名詞,名詞,*,形態素,けいたいそ,形態素,けいたいそ
解析 名詞,名サ他,*,解析,かいせき,解析,かいせき
Web 名詞,名詞,*,Web,Web,Web,Web
HASH(0x2307b08) 特殊,空白,*, , , ,HASH(0x2307b14)
API 名詞,名詞,*,API,API,API,API
は 助詞,係助詞,*,は,は,は,は
、 特殊,読点,*,、,、,、,、
24 名詞,数詞,*,24,24,24,24
時間 接尾辞,助数,*,時間,じかん,時間,じかん
以内 接尾辞,接尾,*,以内,いない,以内,いない
で 助詞,格助詞,*,で,で,で,で
1 名詞,数詞,*,1,1,1,1
つ 接尾辞,助数,*,つ,つ,つ,つ
の 助詞,助詞連体化,*,の,の,の,の
アプリケーション 名詞,名詞,*,アプリケーション,あぷりけーしょん,アプリケー
ション,あぷりけーしょん
ID 名詞,名詞,*,ID,ID,ID,ID
に 助詞,格助詞,*,に,に,に,に
つき 動詞,カ五,連用形,つき,つき,つく,つき
50000 名詞,数詞,*,50000,50000,50000,50000
件 接尾辞,助数,*,件,けん,件,けん
の 助詞,助詞連体化,*,の,の,の,の
リクエスト 名詞,名サ自,*,リクエスト,りくえすと,リクエスト,りくえすと
が 助詞,格助詞,*,が,が,が,が
上限 名詞,名詞,*,上限,じょうげん,上限,じょうげん
と 助詞,格助詞,*,と,と,と,と
なっ 動詞,ラ五,連用タ接続,なっ,なっ,なる,なっ
て 助詞,接続助詞,*,て,て,て,て
い 助動詞,助動詞一段,連用形,い,い,いる,い
ます 助動詞,助動詞ます,基本形,ます,ます,ます,ます
。 特殊,句点,*,。,。,。,。
また 副詞,副詞,*,また,また,また,また
、 特殊,読点,*,、,、,、,、
1 名詞,数詞,*,1,1,1,1
リクエスト 名詞,名サ自,*,リクエスト,りくえすと,リクエスト,りくえすと
の 助詞,助詞連体化,*,の,の,の,の
最大 名詞,名詞,*,最大,さいだい,最大,さいだい
サイズ 名詞,名詞,*,サイズ,さいず,サイズ,さいず
を 助詞,格助詞,*,を,を,を,を
100 名詞,数詞,*,100,100,100,100
KB 名詞,名詞,*,KB,KB,KB,KB
に 助詞,格助詞,*,に,に,に,に
制限 名詞,名サ他,*,制限,せいげん,制限,せいげん
HASH(0x231f290) 特殊,空白,*, , , ,HASH(0x231f29c)
し 動詞,サ変する,連用形,し,し,する,し
て 助詞,接続助詞,*,て,て,て,て
い 助動詞,助動詞一段,連用形,い,い,いる,い
ます 助動詞,助動詞ます,基本形,ます,ます,ます,ます
。 特殊,句点,*,。,。,。,。
詳しく 名詞,名詞,*,詳しく,くわしく,詳しく,くわしく
は 助詞,係助詞,*,は,は,は,は
「 特殊,括弧開,*,「,「,「,「
利用 名詞,名サ他,*,利用,りよう,利用,りよう
制限 名詞,名サ他,*,制限,せいげん,制限,せいげん
」 特殊,括弧閉,*,」,」,」,」
を 助詞,格助詞,*,を,を,を,を
ご参照 名詞,名サ他,*,ご参照,ごさんしょう,ご参照,ごさんしょう
ください 助動詞,助動詞特殊,命令i,ください,ください,くださる,ください
。 特殊,句点,*,。,。,。,。
もう少しいろんな形で出力ができるように触ってみて、ask go!go! (askgo) on Twitterで役立てれるようにしたいと考えています。
- モバツイッターの"イマココ L:地域名"にも対応できるようにする
- 他にも返信用ボット作成で地域名入力しなくても近辺の情報が取り出せるように。
- 検索地域と今現在の地域とのローケションを調べてロケーション案内へのリンク生成などにもチャレンジしてみたいなと。
- 重複ポストをしないように取得したログから頻出キーワードと問い合わせ数なども調べてみたいとも(ただ、全く活用されていないw。できないのが現状)
他にはgreasemonkeyで名詞、動詞抜き出すものもあるようなので、そちらもいずれ試してみようかなと考えています。twitterなどストリームから抜き出した自社へのフィードバックを自社タイムライン(Movabletype Motionなどへ)に流すという前提で、名詞のみフォントサイズを変更することで視覚的にタイムラインを表現するといったことなどに。
windows に ActivePerl CPAN 導入
先月送料税込30,000円でlenovo ideapadが販売されていたので迷わず購入価格.com - Lenovo IdeaPad S10e 4068AGJ 価格比較。いつもperlを勉強するときにはUbuntu(linux)環境で行っているのですが、最近lenovo を持って外出することもあり、出先でperlを使っていろいろとAPIを試したいなぁーということで、windowsにもActivePerlを入れてコード書くようにしました。
windowsでPerl導入も簡単になったような気がします。以前plaggerをインストールするときはかなり苦戦したような記憶があったのですが、ActivePerlインストールするだけでCPANインストールもオート一発でできるのも驚きました。面倒な設定が無いので文字エンコードとコマンドラインの入力などを覚えるだけでlinuxとあまり変わらないような気がしました。
あとは、CRONw - CRON for Windows をインストールするだけでボットサーバができますね。twitter_botや情報収集ボットなんかも使用電力が低いネットブックなんかを使って常時稼動すれば低コストですね。




コメントする