0

perlでMeCabを使う

久しぶりにMeCabをいれることになったけど超絶簡単になっててびっくりした。
yumでインストールできます。

yum mecab mecab-devel ipadic
ipadicは辞書です。辞書がないとmecabは機能しません。
一昔前までeucだのsjisだとutf8だの言ってたけど、yumで入れるとutf8の辞書ができ上がっています。

perlで弄る為にcpanモジュールもインストール。
cpanのシェルでインストールするとコケるので、無理やりインストール。
force install Text::MeCab

途中で辞書のエンコーディングは何か聞かれるのでデフォルトのutf-8を選択

これでperlからmecabを使う準備が整いました。

#!/usr/bin/perl
 
use strict;
use warnings;
use utf8;
use Text::MeCab;
 
my $m = Text::MeCab->new();
my $text = "このブログは俺のメモです。";
  
for (my $node = $m->parse($text); $node; $node = $node->next) {
print $node->surface, "\t", $node->feature, "\t", $node->cost, "\n";
}

実行するとこんな感じです。

この 連体詞,*,*,*,*,*,この,コノ,コノ -664
ブログ 名詞,一般,*,*,*,*,* 7643
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 7663
俺 名詞,代名詞,一般,*,*,*,俺,オレ,オレ 11792
の 助詞,連体化,*,*,*,*,の,ノ,ノ 12160
メモ 名詞,サ変接続,*,*,*,*,メモ,メモ,メモ 14654
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 17196
。 記号,句点,*,*,*,*,。,。,。 13806
BOS/EOS,*,*,*,*,*,*,*,* 12270

残念ながらこのままでは「俺のメモ」が分解されてしまいます。
一つの単語として認識させるにはユーザー辞書に登録する必要があります。
登録の仕方はこの記事を参考にしてください。

大阪のWEB屋です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です