[Perl] 形態素解析JUMANをPerlから使ってみる
<<
作成日時 : 2006/04/04 00:31
>>
トラックバック 0 / コメント 1
東京大学 大学院情報理工学系研究科 電子情報学専攻 黒橋研究室の
日本語形態素解析システム JUMAN をインストールして試してみたメモ。
形態素解析自体じゃなくて、分かち書き・読み仮名取得が目的です。
http://www.kc.t.u-tokyo.ac.jp/nl-resource/juman.html
http://www.kc.t.u-tokyo.ac.jp/nl-resource/juman/juman-5.1.tar.gz
※インストール先パスは/usr/local/juman-5.1、環境はMac OS X 10.4です。
まずjuman本体をインストールするtar zxvf juman-5.1.tar.gz
cd juman-5.1
./configure --prefix=/usr/local/juman-5.1
make
sudo make install
cd ..
とりあえず、コマンドラインで動作確認する(EUC-JP)/usr/local/juman-5.1/bin/juman
Perlバインディング(Juman.pm)をインストールするcd juman-5.1/perl
PATH=/usr/local/juman-5.1/bin:$PATH perl Makefile.PL
make
make test # テストに失敗しても無視
sudo make install
Perlからの分かち書き(読み仮名+品詞情報)取得のサンプルスクリプト#!/usr/bin/perl
use strict;
use Juman;
my $JUMAN_PATH = '/usr/local/juman-5.1/bin/juman';
my $str = "この文を形態素解析して下さい。";
my $juman = Juman->new( -Command => $JUMAN_PATH );
my $result = $juman->analysis( $str );
foreach my $node ( $result->mrph() ) {
my $midasi = $node->midasi();
$midasi =~ s/^\\//;
my $hinsi = $node->hinsi();
my $hinsi_id = $node->hinsi_id();
my $yomi = $node->yomi() if ( 1 < $hinsi_id && $hinsi_id < 15 );
print $midasi, "\t", $yomi, "\t", $hinsi, "\n";
}
実行結果(見出し/読み/品詞)| この | この | 指示詞 | | 文 | ぶん | 名詞 | | を | を | 助詞 | | 形態 | けいたい | 名詞 | | 素 | そ | 名詞 | | 解析 | かいせき | 名詞 | | して | して | 動詞 | | 下さい | ください | 接尾辞 | | 。 | | 特殊 |
JUMANサーバ機能を使っていないので、Jumanモジュールから内部的に
子プロセスでjumanコマンドが呼び出されているようです。
同時アクセス数が多い場合など、負荷が大きい場合は、
サーバ機能を使った方がいいのかな。
なお、mrph() で返ってくるノードは、Juman::Morpheme モジュールの
オブジェクトになっています。以下のメソッドが提供されているようです。| midasi() | 形態素の見出し | | yomi() | 形態素の読み | | genkei() | 形態素の原形 | | hinsi() | 形態素の品詞 | | hinsi_id() | 形態素の品詞番号 | | bunrui() | 形態素の細分類 | | bunrui_id() | 形態素の細分類番号 | | katuyou1() | 形態素の活用型 | | katuyou1_id() | 形態素の活用型番号 | | katuyou2() | 形態素の活用形 | | katuyou2_id() | 形態素の活用形番号 | | imis() | 形態素の意味情報 | | doukei() | 形態素の同形異義語のリスト | | id() | コンストラクタを呼び出したときに指定した ID | | spec() | 形態素オブジェクトを文字列に変換 |
|