Text::MeCab

| コメント(0) | トラックバック(0)



こちらの



http://d.hatena.ne.jp/t-tkzw/20060710/p1



ベンチで。黒死館殺人事件をDL、EUC-JPに変換してから実行。libmecab 0.92、20060707のipadicで。



daisuke@beefcake Text-MeCab$ time perl wakati-text-mecab.pl < kokushikan.euc.txt > /dev/null

real 0m6.011s
user 0m3.127s
sys 0m1.108s
daisuke@beefcake Text-MeCab$


ふむ。まだちと遅い気もするが、マシンが違うのでちょっと比較のしようがないかも。ただ、まだ色々壊れたまま。


基本的な問題は、俺がText::MeCabのオブジェクト本体をDESTROYしたあとでもnodeは使いたい、と思ったのが問題だったようだ。そりゃdeep_node_copyしてたら遅くなるわな。ということで、デフォルトの動作をmecab-perlと一緒にしてみた。つまり



# mecab-perl
$mecab = MeCab::Tagger->new;
my $node = $mecab->parseToNode(...);
undef $mecab;

$node->next; # err


になるけど、dclone()メソッドを使うとあら不思議、Text::MeCab::Nodeではなく、Text::MeCab::Node::Clonedを返すという仕様にする予定。



my $mecab = Text::MeCab->new;
my $node = $mecab->parse(...);

my $clone = $node->dclone();
undef $mecab;

$node->next; # err
$clone->next; # ok!


というところまでコミットしておいた。ただし、まだまだ壊れてます。



http://dev.razil.jp/svnweb/index.cgi/Text::MeCab/browse/trunk/



Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ