さくらインターネットにText::MeCabがインストールできないのでmecab.pmを使ってみる

Text::MeCabを使った場合は以下のようになります。

use strict;
use Text::MeCab;
my $m = Text::MeCab->new();
my $s = "将来の話をしようじゃないか.";
my $n = $m->parse($s);
my $t="";
while ($t = $n->next) {
    printf("%s\t%s\n",
           $n->surface,          # 表層
           $n->feature          # 現在の品詞
           );
    $n = $t;
}

mecab.pmの場合は以下のようになります。

#!/usr/bin/perl
use strict;
use warnings;
use MeCab;
my $m = new MeCab::Tagger ("");
my $n = $m->parseToNode ("将来の話をしようじゃないか.");
while ($n = $n->{next}) {
    print "$n->{surface} $n->{feature} $n->{cost}\n";
}

若干print文の書き方が違うのですが、
ほとんど変えるところはないようですね。

newの仕方が違うかな・・・?

mecab.pmの方ではTaggerというのを使っていますが、引数には辞書を明示的に指定できるみたいです。

m = MeCab::Tagger.new("-u #{辞書ファイルのパス}")

あとは
parse

parseToNode
と変わっていますね。

ちなみに結果はこのようにとれます。

将来 名詞,副詞可能,*,*,*,*,将来,ショウライ,ショーライ,, 3644
の 助詞,連体化,*,*,*,*,の,ノ,ノ,, 4286
話 名詞,サ変接続,*,*,*,*,話,ハナシ,ハナシ,, 7266
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,, 6790
しよ 動詞,自立,*,*,サ変・スル,未然ウ接続,する,シヨ,シヨ,, 9169
う 助動詞,*,*,*,不変化型,基本形,う,ウ,ウ,, 7777
じゃ 助詞,副助詞,*,*,*,*,じゃ,ジャ,ジャ,, 10731
ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ,, 11857
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ,, 11413
. 記号,句点,*,*,*,*,.,.,.,, 8953
 BOS/EOS,*,*,*,*,*,*,*,* 8351