MeCabとpythonで日本語処理の準備をしてみた

LINEで送る
Pocket

がじです。
いろいろ思うところがあって、日本語処理をしたくなったので、環境を整えてみることにしました。

日本語処理するなら一から自分でやるのは無理なので既存の解析エンジンの力を借りることにします。
日本語の解析エンジンとして有名なのはYahooのエンジン(登録必要)とMeCabということで、今回はMeCabを使用させていただきます。

MeCabのサイトはこちら
MeCabは有名な日本語形態素解析エンジンですね。
形態素解析というのは文章を文法的に意味のある最小の言語要素に分解解析することです。

難しいことはおいてインストールしてみます。

前準備としてgccでC++がビルドできるようにしておきます。

$ sudo yum install gcc-c++ gcc

ではMeCab本体を取得してMake、インストールしてみましょう。

$ sudo wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar zxvf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install

これでMeCabがインストールされましたが、まだ辞書のインストールがあります。ここでは用意されているIPA辞書をUTF-8でインストールすることにします。

$ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure –with-charset=utf8
$ make
$ sudo make install

これでShellからMecabが使えるようになったはずなので確認してみます。

$ mecab
本日は晴天なり。
本日 名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
晴天 名詞,一般,*,*,*,*,晴天,セイテン,セイテン
なり 助動詞,*,*,*,文語・ナリ,基本形,なり,ナリ,ナリ
。 記号,句点,*,*,*,*,。,。,。
EOS

できてますね。

で、日本語処理で何の言語を使うかということですが、今回はpythonを使ってみました。なぜpythonかといわれると困るのですが、最近始めたからという理由だったりします。
(^_^;)

MeCabのpython呼び出しライブラリが用意されているのでインストールします。

$ sudo yum install python-devel
$ tar zxvf mecab-python-0.996.tar.gz
$ cd mecab-python-0.996
$ python setup.py build
$ su
# python setup.py install

インストールしたら環境変数の確認をします。

$ cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
$ sudo ldconfig

/etc/ld.so.confの中に”/usr/local/lib”が含まれていない場合は自分で追加してから
$ sudo ldconfigを実行します。

で上記Mecab-pythonのフォルダ内にテスト用スクリプトがあるので実行してみましょう。

$ python test.py
0.996
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS

BOS/EOS,*,*,*,*,*,*,*,*
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
BOS/EOS,*,*,*,*,*,*,*,*
EOS
EOS
filename: /usr/local/lib/mecab/dic/ipadic/sys.dic
charset: utf8
size: 392126
type: 0
lsize: 1316
rsize: 1316
version: 102

これでMeCabとpythonで日本語処理できる環境ができました。

この後どうしよう・・・いや、考えていることはあるんですが、たどり着くのが大変そうだなと。

LINEで送る
Pocket