MeCab.pm 入ったー!
本体と、辞書をユーザ領域にインスコするところまでは下記URL参照
http://d.hatena.ne.jp/abdulkarim/20070427/1177656328
Text::MeCab をCpanからインスコしようとしたが、
PREFIXをサポートしてないらしくてmakeの途中で止まる。
仕方なく、本家からバインディング用のmecab-perlをダウンロード。
http://downloads.sourceforge.net/mecab/mecab-perl-0.94.tar.gz
が、やはりPREFIXをサポートしてないらしく、makeの途中で止まる。
gccもC++もxsもmakeも良く分からんが、とりあえずMakefile弄りって無理やりmakeを通らせる。
→make test,make install ができた物の、test.plを実行すると
Can't call method "parse" without a package or object reference at ./test.pl line 14 と表示されて動かない orz
→再度Makefile弄り、make test,make install,perl -I"ユーザlib領域" ./test.pl
を30分ほどtry&errorを繰り返してたら。
$ perl -I"ユーザlib領域" ./test.pl 0.95 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,* 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,* B[0] 太郎 名詞,固有名詞,地域,一般,*,*,太郎,タロウ,タロー B[0] 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー B[0] 太 動詞,自立,*,*,五段・ラ行,体言接続特殊2,太る,フト,フト B[0] 太 名詞,固有名詞,地域,一般,*,*,太,タイ,タイ B[0] 太 名詞,固有名詞,人名,名,*,*,太,フトシ,フトシ B[0] 太 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,太い,フト,フト E[0] BOS/EOS,*,*,*,*,*,*,*,* B[2] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[2] 太 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,太い,フト,フト E[2] 太 名詞,固有名詞,人名,名,*,*,太,フトシ,フトシ E[2] 太 名詞,固有名詞,地域,一般,*,*,太,タイ,タイ E[2] 太 動詞,自立,*,*,五段・ラ行,体言接続特殊2,太る,フト,フト B[4] はこ 動詞,自立,*,*,五段・カ行イ音便,未然ウ接続,はく,ハコ,ハコ B[4] は 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ B[4] は 助詞,係助詞,*,*,*,*,は,ハ,ワ B[4] は 動詞,自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ E[4] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[4] 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー E[4] 太郎 名詞,固有名詞,地域,一般,*,*,太郎,タロウ,タロー B[6] この 連体詞,*,*,*,*,*,この,コノ,コノ B[6] こ 動詞,非自立,*,*,カ変・クル,未然形,くる,コ,コ B[6] こ 動詞,自立,*,*,カ変・クル,未然形,くる,コ,コ B[6] こ 動詞,自立,*,*,五段・ラ行,体言接続特殊2,こる,コ,コ B[6] こ 動詞,非自立,*,*,五段・カ行促音便,未然ウ接続,く,コ,コ B[6] こ 名詞,一般,*,*,*,*,こ,コ,コ B[6] こ 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,こい,コ,コ E[6] は 動詞,自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ E[6] は 助詞,係助詞,*,*,*,*,は,ハ,ワ E[6] は 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ B[8] の 助詞,終助詞,*,*,*,*,の,ノ,ノ B[8] の 助詞,連体化,*,*,*,*,の,ノ,ノ B[8] の 助詞,格助詞,一般,*,*,*,の,ノ,ノ B[8] の 名詞,非自立,一般,*,*,*,の,ノ,ノ B[8] の 動詞,自立,*,*,五段・ラ行,体言接続特殊2,のる,ノ,ノ E[8] こ 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,こい,コ,コ E[8] こ 名詞,一般,*,*,*,*,こ,コ,コ E[8] こ 動詞,非自立,*,*,五段・カ行促音便,未然ウ接続,く,コ,コ E[8] こ 動詞,自立,*,*,五段・ラ行,体言接続特殊2,こる,コ,コ E[8] こ 動詞,自立,*,*,カ変・クル,未然形,くる,コ,コ E[8] こ 動詞,非自立,*,*,カ変・クル,未然形,くる,コ,コ E[8] はこ 動詞,自立,*,*,五段・カ行イ音便,未然ウ接続,はく,ハコ,ハコ B[10] 本 名詞,接尾,助数詞,*,*,*,本,ホン,ホン B[10] 本 接頭詞,名詞接続,*,*,*,*,本,ホン,ホン B[10] 本 名詞,固有名詞,地域,一般,*,*,本,ホン,ホン B[10] 本 名詞,固有名詞,人名,姓,*,*,本,モト,モト B[10] 本 名詞,一般,*,*,*,*,本,ホン,ホン E[10] の 動詞,自立,*,*,五段・ラ行,体言接続特殊2,のる,ノ,ノ E[10] の 名詞,非自立,一般,*,*,*,の,ノ,ノ E[10] の 助詞,格助詞,一般,*,*,*,の,ノ,ノ E[10] の 助詞,連体化,*,*,*,*,の,ノ,ノ E[10] の 助詞,終助詞,*,*,*,*,の,ノ,ノ E[10] この 連体詞,*,*,*,*,*,この,コノ,コノ B[12] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ E[12] 本 名詞,一般,*,*,*,*,本,ホン,ホン E[12] 本 名詞,固有名詞,人名,姓,*,*,本,モト,モト E[12] 本 名詞,固有名詞,地域,一般,*,*,本,ホン,ホン E[12] 本 接頭詞,名詞接続,*,*,*,*,本,ホン,ホン E[12] 本 名詞,接尾,助数詞,*,*,*,本,ホン,ホン B[14] 二郎 名詞,数,*,*,*,*,* B[14] 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー B[14] 二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー B[14] 二 名詞,固有名詞,地域,一般,*,*,二,フタ,フタ B[14] 二 名詞,数,*,*,*,*,二,ニ,ニ E[14] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ B[16] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[16] 二 名詞,数,*,*,*,*,二,ニ,ニ E[16] 二 名詞,固有名詞,地域,一般,*,*,二,フタ,フタ B[18] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ E[18] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[18] 二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー E[18] 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー E[18] 二郎 名詞,数,*,*,*,*,* B[20] 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ B[20] 見 動詞,自立,*,*,一段,未然形,見る,ミ,ミ B[20] 見 名詞,固有名詞,地域,一般,*,*,見,ミル,ミル E[20] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ B[22] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[22] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[22] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ B[22] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[22] 見 名詞,固有名詞,地域,一般,*,*,見,ミル,ミル E[22] 見 動詞,自立,*,*,一段,未然形,見る,ミ,ミ E[22] 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ B[24] 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ B[24] 女 名詞,接尾,助数詞,*,*,*,女,ジョ,ジョ B[24] 女 接頭詞,名詞接続,*,*,*,*,女,ジョ,ジョ B[24] 女 名詞,一般,*,*,*,*,女,オンナ,オンナ E[24] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[24] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ E[24] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ E[24] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[26] 性 名詞,接尾,一般,*,*,*,性,セイ,セイ B[26] 性 名詞,一般,*,*,*,*,性,セイ,セイ E[26] 女 名詞,一般,*,*,*,*,女,オンナ,オンナ E[26] 女 接頭詞,名詞接続,*,*,*,*,女,ジョ,ジョ E[26] 女 名詞,接尾,助数詞,*,*,*,女,ジョ,ジョ B[28] に 動詞,自立,*,*,一段,連用形,にる,ニ,ニ B[28] に 動詞,自立,*,*,一段,未然形,にる,ニ,ニ B[28] に 助詞,副詞化,*,*,*,*,に,ニ,ニ B[28] に 助詞,特殊,*,*,*,*,に,ニ,ニ B[28] に 助詞,格助詞,一般,*,*,*,に,ニ,ニ E[28] 性 名詞,一般,*,*,*,*,性,セイ,セイ E[28] 性 名詞,接尾,一般,*,*,*,性,セイ,セイ E[28] 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ B[30] 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ B[30] 渡し 名詞,一般,*,*,*,*,渡し,ワタシ,ワタシ B[30] 渡 動詞,自立,*,*,五段・ラ行,体言接続特殊2,渡る,ワタ,ワタ B[30] 渡 名詞,固有名詞,地域,一般,*,*,渡,ド,ド B[30] 渡 名詞,固有名詞,人名,姓,*,*,渡,ワタリ,ワタリ B[30] 渡 名詞,固有名詞,人名,名,*,*,渡,ワタル,ワタル E[30] に 助詞,格助詞,一般,*,*,*,に,ニ,ニ E[30] に 助詞,特殊,*,*,*,*,に,ニ,ニ E[30] に 助詞,副詞化,*,*,*,*,に,ニ,ニ E[30] に 動詞,自立,*,*,一段,未然形,にる,ニ,ニ E[30] に 動詞,自立,*,*,一段,連用形,にる,ニ,ニ B[32] した 名詞,一般,*,*,*,*,した,シタ,シタ B[32] し 動詞,接尾,*,*,五段・サ行,連用形,す,シ,シ B[32] し 助詞,接続助詞,*,*,*,*,し,シ,シ B[32] し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ B[32] し 動詞,自立,*,*,サ変・スル,未然形,する,シ,シ B[32] し 動詞,自立,*,*,五段・ラ行,体言接続特殊2,しる,シ,シ B[32] し 助動詞,*,*,*,文語・キ,体言接続,き,シ,シ E[32] 渡 名詞,固有名詞,人名,名,*,*,渡,ワタル,ワタル E[32] 渡 名詞,固有名詞,人名,姓,*,*,渡,ワタリ,ワタリ E[32] 渡 名詞,固有名詞,地域,一般,*,*,渡,ド,ド E[32] 渡 動詞,自立,*,*,五段・ラ行,体言接続特殊2,渡る,ワタ,ワタ B[34] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[34] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[34] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ B[34] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[34] し 助動詞,*,*,*,文語・キ,体言接続,き,シ,シ E[34] し 動詞,自立,*,*,五段・ラ行,体言接続特殊2,しる,シ,シ E[34] し 動詞,自立,*,*,サ変・スル,未然形,する,シ,シ E[34] し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ E[34] し 助詞,接続助詞,*,*,*,*,し,シ,シ E[34] し 動詞,接尾,*,*,五段・サ行,連用形,す,シ,シ E[34] 渡し 名詞,一般,*,*,*,*,渡し,ワタシ,ワタシ E[34] 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ B[36] 。 名詞,サ変接続,*,*,*,*,* B[36] 。 記号,句点,*,*,*,*,。,。,。 E[36] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[36] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ E[36] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ E[36] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ E[36] した 名詞,一般,*,*,*,*,した,シタ,シタ B[38] BOS/EOS,*,*,*,*,*,*,*,* E[38] BOS/EOS,*,*,*,*,*,*,*,* E[38] 。 記号,句点,*,*,*,*,。,。,。 E[38] 。 名詞,サ変接続,*,*,*,*,* filename: /home/ユーザ名/local/lib/mecab/dic/ipadic/sys.dic charset: euc-jp size: 378914 type: 0 lsize: 1316 rsize: 1316 version: 102
おぉ、何かうごいたっぽい。
というか、これで大丈夫だよな?入ってるんだよな?
イマイチ不安だったので適当にsampleファイル作る。
#!/usr/bin/perl use MeCab; my $m = new MeCab::Tagger (""); my $n = $m->parseToNode ("すもももももももものうち"); while ($n = $n->{next}) { printf("%s\t%s\t%d\n", $n->{surface}, $n->{feature}, $n->{cost} ); }
実行結果
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ 7082 も 助詞,係助詞,*,*,*,*,も,モ,モ 7389 もも 名詞,一般,*,*,*,*,もも,モモ,モモ 14283 も 助詞,係助詞,*,*,*,*,も,モ,モ 14590 もも 名詞,一般,*,*,*,*,もも,モモ,モモ 21484 の 助詞,連体化,*,*,*,*,の,ノ,ノ 21909 うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ 22010 BOS/EOS,*,*,*,*,*,*,*,* 19271
ちゃんと入ったっぽい。よかった。
弄ったMakefileと本来生成されるMakefileのdiffはそのうちUPする。
(というより、見たい人なんて居るのか?)
`echo "形態素解析したい文字列" | "/path/to/mecab"`;
なモジュールを途中まで作っていたのは秘密。