Perl: 2014年12月アーカイブ

LinkedIn フレンドさんが「NTT研究所の日本語解析技術API公開、「語句類似度算出」「ひらがな化」など4種」という記事をチェックされてたので、早速昼休みに Perl でちょいプロを作って使ってみた。

俺はサラリーマン時代、後輩のO皮君と二人で広島県(県警含む)の複数の Web サーバを串刺し検索できるキーワード検索システムを Perl で一から作った経験があるので(もう 20年近く前だけど(笑))、「形態素解析」という言葉には敏感に反応するのだ(笑)

application/x-www-form-urlencoded形式での POST を受け付けるそうなので、以下のようなスクリプトを作成。

アプリケーションIDは事前に goo ラボで取得しておくこと。
リクエストID は任意の適当な文字列を。
PERL_NET_HTTPS_SSL_SOCKET_CLASS とかの環境変数の設定はうちのサーバの事情なので気になさらぬよう(笑)気になる人は、「IO::Socket::SSLモジュールが中間者攻撃のワーニングを出し始めた」参照のこと。

#!/usr/bin/perl

use strict;
use LWP::UserAgent;
use HTTP::Request::Common;

$ENV{'PERL_NET_HTTPS_SSL_SOCKET_CLASS'} = "Net::SSL";
$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;

my $url = 'https://labs.goo.ne.jp/api/morph';
my %postdata = (
'app_id' => 'c4e54ef1667***************************************495c84125',
'request_id' => 'hogehoge001',
'sentence' => '私の名前はりんごちゃんだよ。男好きだよ。',
'info_filter' => 'form|pos|read'
);
my $request = POST($url, \%postdata);

my $ua = LWP::UserAgent -> new;
my $res = $ua -> request($request) -> as_string;

print $res;

これを実行すると、

HTTP/1.1 200 OK
Date: Fri, 05 Dec 2014 03:34:34 GMT
Server: thin 1.5.1 codename Straight Razor
Content-Length: 462
Content-Type: application/json
Client-Date: Fri, 05 Dec 2014 03:34:34 GMT
Client-Peer: XXX.XXX.XXX.XXX:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
Client-SSL-Cert-Subject: /C=JP/ST=Tokyo/L=Minato-ku/O=NTT Resonant Inc./OU=goo Service Platform 1/CN=labs.goo.ne.jp
Client-SSL-Cipher: RC4-SHA
Client-SSL-Warning: Peer certificate not verified
P3P: policyref="/w3c/p3p.xml",CP="CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONo OUR SAMo OTRo IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC"
X-Cnection: close
X-Content-Type-Options: nosniff

{"request_id":"hogehoge001","info_filter":"form|pos|read","word_list":[[["私","名詞","ワタシ"],["の","格助詞","ノ"],["名前","名詞","ナマエ"],["は","連用助詞","ハ"],["りんご","名詞","リンゴ"],["ちゃん","名詞接尾辞","チャン"],["だ","判定詞","ダ"],["よ","終助詞","ヨ"],["。","句点","$"]],[["男好き","名詞","オトコズキ"],["だ","判定詞","ダ"],["よ","終助詞","ヨ"],["。","句点","$"]]]}

という結果が JSON 形式で返ってくる。

うひょう、面白え~

これはちょっと遊べるかも。いや、遊んでる暇がまったくないんですが(^^;

このアーカイブについて

このページには、2014年12月以降に書かれたブログ記事のうちPerlカテゴリに属しているものが含まれています。

前のアーカイブはPerl: 2014年10月です。

次のアーカイブはPerl: 2015年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら