みやびの技術メモ

技術的な面でちょこっと手間取ったところを置いておきたいなぁ・・・。いろいろと間違いがあると思うので注意。

mecabを導入してみる(ubuntu14.04)

日本語の形態素解析ソフトであるmecabを導入します。

 

導入の流れ

1 mecab本体のインストール

2 mecabが使う辞書のインストール

3 動作確認

 

1 mecab本体のインストール

MeCab: Yet Another Part-of-Speech and Morphological Analyzer

mecab本家様はこちらのURLですので、ダウンロードの欄からSourceをダウンロードします。

ダウンロードが終わったら、下記のコマンドを端末でひとつずつ打っていきます。

$ cd hogehoge #ダウンロードしたファイルがある場所に移動する

$ tar zxfv mecab-X.X.tar.gz #ダウンロードしたフォルダを展開

$ cd mecab-X.X #展開したフォルダ内に移動

$ ./configure #configureを実行 makefileができてインストールの準備をします

$ make #コンパイル

$ make check #make出来ているか確認

$ sudo make install #インストール

/*makeコマンドらへんを調べて見たのですが、make check+sudo make install の代わりにsudo checkinstall的なコマンドでも出来そうですね(未確認)

初心者なのでまだまだ勉強不足が…。*/

 

これで本体の導入が出来ました。次に、辞書をインストールします。

2 mecabのHP(上のURL)からIPA辞書をダウンロード

(複数の辞書の種類がありそれぞれ特徴があるのですが、今回は推奨とされているものを選びました)

$ cd hoge

$ tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz

$ cd mecab-ipadic-2.7.0-XXXX

$ ./configure --with-charset=utf8 #utf8しか使わないので、設定して実行します

$ make

$ sudo make install

これで必要なものはインストールできたのですが、このままではmecabを呼び出してもエラーが出ました。

$mecab

`require': libmecab.so.1: cannot open shared object file:...
とかlibmecab.so.2に変わったエラーとかが出てくる可能性があります。
これは何やら参照するディレクトリの設定が悪いらしいので、変更します。

$ sudo nano /etc/ld.so.conf #nanoで/etc/ld.so.confを変更する
一番下の行に、
/usr/local/lib
を追加して保存します。
(>>で追記でもいいと思うけど>にした日にゃ死にたくなるので注意)
$ sudo ldconfig
これで上手く行ったと思います。


3動作確認

$ mecab #mecabを起動する
猫ってかわいいよね
猫    名詞,一般,*,*,*,*,猫,ネコ,ネコ
って    助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
かわいい    形容詞,自立,*,*,形容詞・イ段,基本形,かわいい,カワイイ,カワイイ
よ    助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
ね    助詞,終助詞,*,*,*,*,ね,ネ,ネ
EOS

こんな感じで、文章を入力すると、分解して返してくれます。
やったね。あとはrubyとつないだりすればtwitterで人口無能みたいなことが出来そうです。

rubyへのつなぎ方はまたそのうち書きます。


補足1 辞書の追加


こんな時もあります。
にゃんこもふりたい
に    助詞,格助詞,一般,*,*,*,に,ニ,ニ
ゃんこもふりたい    名詞,一般,*,*,*,*,*
EOS
にゃんこにならない…。
こんな時は辞書を追加します。
辞書にはシステム辞書とユーザー定義辞書と2つの種類があるのですが、
今回はシステム辞書を更新したいと思います。
まずは追加したい語のcsvファイルを作ります。
名詞は活用しないからいいけど、動詞は活用するすべてを記述するのでつらみ。

newwords.csv
/*こんな感じのcsvファイル

他のファイルと合わせてEUCJPで書かないとだめ

もしUTF8とかで書いてしまったら、端末のnkfコマンドで変換する

表層形,左文脈ID,右文脈ID,コスト(出てきやすさ。適当に決めた),品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音』

文脈IDは省略可能とか言いつつ省略するとエラー。*を入れても自動でスキップされるので、今のところ手動で入れるしかないかも
頑張って似ている単語を探して、その文脈IDを入れる
*/
にゃんこ,1285,1285,2000,名詞,一般,*,*,*,*,にゃんこ,ニャンコ,ニャンコ
もふる,772,772,7000,動詞,自立,*,*,五段・ラ行,基本形,もふる,モフル,モフル
もふら,780,780,7000,動詞,自立,*,*,五段・ラ行,未然形,もふる,モフラ,モフラ
もふん,782,782,7000,動詞,自立,*,*,五段・ラ行,未然特殊,もふる,モフン,モフン
もふろ,778,778,7000,動詞,自立,*,*,五段・ラ行,未然ウ接続,もふる,モフロ,モフロ
もふり,788,788,7000,動詞,自立,*,*,五段・ラ行,連用形,もふる,モフリ,モフリ
もふっ,786,786,7000,動詞,自立,*,*,五段・ラ行,連用タ接続,もふる,モフッ,モフッ
もふれ,768,768,7000,動詞,自立,*,*,五段・ラ行,仮定形,もふる,モフレ,モフレ
もふれ,784,784,7000,動詞,自立,*,*,五段・ラ行,命令e,もふる,モフレ,モフレ
もふりゃ,770,770,7000,動詞,自立,*,*,五段・ラ行,仮定縮約1,もふる,モフリャ,モフ $
もふん,774,774,7000,動詞,自立,*,*,五段・ラ行,体言接続特殊,もふる,モフン,モフン
もふ,776,776,7000,動詞,自立,*,*,五段・ラ行,体言接続特殊2,もふる,モフ,モフ

このファイルを辞書のフォルダの中にぶち込んで、補足2の辞書の入れなおしをすれば完了。もう一度形態素解析をしてみます。

にゃんこもふりたい
にゃんこ    名詞,一般,*,*,*,*,にゃんこ,ニャンコ,ニャンコ
もふり    動詞,自立,*,*,五段・ラ行,連用形,もふる,モフリ,モフリ
たい    助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS
どやっ。

てな感じで追加していきます。そのうち自動でIDを振るプログラムでも書きますかねぇ。

探せばありそう。


補足2 辞書の入れなおし


文字コードの指定を忘れているとプログラムで参照した時に文字化けします。
デフォルトがEUC-JPだったみたいで、utf-8に打ち直します。
utf-8に入れなおす手順です。
$ cd hoge
$ cd mecab-ipadic-2.7.0-XXXX
$ make clean
以下辞書インストールの$./configure ...からやる