2008年10月23日木曜日

MeCabで遊ぼうと思ったんだけどね.

追記(2008/10/28):
結局エントリーにした



いつものように頭の悪い文章です.すみません.


MacにMeCabがフツーに入っていると聞いたので遊んでみたいなぁと思ったらそのままのエントリーにヒット.
Mac OS X Leopard に「標準で」インストールされている MeCabを使ってみる
http://chasen.org/~taku/blog/archives/2008/07/mac_os_x_leropa.html
感謝.

こいつはすんなりできました.
で,あれこれ作ってみたいなぁって思ったのですが試すならスクリプト言語が良いなぁ…という発想でperlで使う方法ない?
と調べ始めたんです.みつけたのがText::MeCab(http://search.cpan.org/dist/Text-MeCab/).

ところがこの子.perl Makefile.PLとかやろうとすると
Path to mecab config?
って聞いてくるんです…
なにそれ?ということで調べるとどうも通常インストールするとmecab-configっていうのが入るらしいんですねぇ.でそのパスを教えてねっことらしい.

Leopardにはっているのかな?ということで調べた(find /usr -name "mecab-config" -print).…ないみたい.
そこで考えた.mecab-config作ったら?って.
#! /usr/bin/env perl
print "1.0" if ($ARGV[0] =~ /--version/);
print "-L/usr/lib -lmecab -lstdc++" if ($ARGV[0] =~ /--libs/);
print "-I/usr/include -Wmissing-prototypes" if ($ARGV[0] =~ /--cflags/);
print "/usr/include" if ($ARGV[0] =~ /--inc-dir/);

で,なんとかだませたみたいなんだ.色々言われるけど結局

Writing Makefile for Text::MeCab
>

makeも通った(ように見える).
では使ってみようということでサンプルらしきものを参考に.
test.pl
#!/opt/local/bin/perl
use lib "./Text-MeCab-0.20007/blib/lib";
use Text::MeCab;
my $m = Text::MeCab->new();
my $str = "微かなオレンジの香りが残っていた.";
my $n = $m->parse($str);
while ($n = $n->next) {
printf("%s\t%s\t%d\n",$n->surface, $n->feature, $n->cost);
}

> ./test.pl 
Can't find 'boot_Text__MeCab' symbol in /usr/lib/libMeCab.dylib
at /opt/local/lib/perl5/5.8.8/darwin-2level/DynaLoader.pm line 26
BEGIN failed--compilation aborted at Text-MeCab-0.20007/blib/lib/Text/MeCab.pm line 26.
Compilation failed in require at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.
>
…orz.
ということでやっぱりだめなものはだめ.みたいな感じ.まったくもってばかばかしい方針なのでここで退散.

…素直にportのmecabを入れろということですかね.
> port list |grep mecab
p5-mecab @0.96 perl/p5-mecab
py-mecab @0.96 python/py-mecab
py25-mecab @0.96 python/py25-mecab
rb-mecab @0.96 ruby/rb-mecab
mecab @0.96 textproc/mecab
mecab-ipadic-eucjp @2.7.0-20070610 textproc/mecab-ipadic-eucjp
mecab-ipadic-sjis @2.7.0-20070610 textproc/mecab-ipadic-sjis
mecab-ipadic-utf8 @2.7.0-20070610 textproc/mecab-ipadic-utf8
mecab-jumandic-eucjp @5.1-20070304 textproc/mecab-jumandic-eucjp
mecab-jumandic-sjis @5.1-20070304 textproc/mecab-jumandic-sjis
mecab-jumandic-utf8 @5.1-20070304 textproc/mecab-jumandic-utf8
>


私のやり方がダメって話だからね.念のため.

追記
いま書きながらもう一度みていたらmakeで以下の行がでていた.
lib/Text/MeCab/Dict.pm:166: Unknown command paragraph "=encoding UTF-8"
まぁ本文のだめっぷりとは直接は関係ないだろうけど,あれこれだめっぽいやぁね.

0 件のコメント: