Lingua::JA::Summarizeを使ってキーワード抽出

キーワード抽出を行なうにはLingua::JA::Summarizeが有効。
適当なテキストデータからキーワードを抽出してタグをつけてみた。
なぜかテストでこけるのでforece installを使用。特に問題なさそう。

1.インストールする

cpan install Class::Accessor::Fast
cpan install Class::ErrorHandler
cpan force install Lingua::JA::Summarize

(参考)http://d.hatena.ne.jp/dkfj/20080812/1218511776

2.サンプルを組む例)

vi summarize_test.pl

#!/usr/bin/perl
# Functional style
use Lingua::JA::Summarize qw(:all);
# OO style$s = Lingua::JA::Summarize->new({
      charset => 'utf8',
       mecab_charset => 'utf8',
     })    ;
$s->analyze_file('/root/testnews.txt');
@keywords = $s->keywords({ minwords => 3, maxwords => 5 });
print join(' ', @keywords) . "\n";

3.サンプルテキストを用意

vi testnews.txt

中国の李建国・全国人民代表大会(全人代)常務副委員長が、15日に予定していた訪日を延期した。尖閣諸島沖で中国漁船が海上保安庁の巡視船に>衝突した事件が背景にあると見られ、仙谷由人官房長官は14日午前の記者会見で「もしそうであるとすれば甚だ遺憾」と述べた。

4.実行する./summarize_test.pl

結果)委員長 仙谷由人官房長官 全人代 横路孝弘衆院議長ら 午

5.PHPから読み込むために例のPerlを関数化する

vi summarize_test.pl

#!/usr/bin/perl
# Functional styleuse Lingua::JA::Summarize qw(:all);
$s = Lingua::JA::Summarize->new({
      charset => 'utf8',
       mecab_charset => 'utf8',
     })    ;
sub return_keyword{
 my $txt = $_[0];
 $s->analyze_file($txt);
 @keywords = $s->keywords({ minwords => 3, maxwords => 5 });
 print join(' ', @keywords) . "\n";
}