Lingua::JA::Summarizeを使ってキーワード抽出
キーワード抽出を行なうにはLingua::JA::Summarizeが有効。
適当なテキストデータからキーワードを抽出してタグをつけてみた。
なぜかテストでこけるのでforece installを使用。特に問題なさそう。
1.インストールする
cpan install Class::Accessor::Fast cpan install Class::ErrorHandler cpan force install Lingua::JA::Summarize
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"; }