mathematikの すうがく ブログ

機械学習とかRとかPythonを中心に書いていく予定です

とりあえず Linux Mint上のMeCabでテキストマイングできるようにする方法

とりあえず Linux Mint上のMeCabでテキストマイングできるようにする方法


メモがてら、Linux Mint上での環境設定の方法を記載します。
ただしこのドキュメントはあくまでも「とりあえず動くようにする」ためのドキュメントです。
例えばMeCabの辞書を生成するためのcsvファイルのフォーマットの意味などについては解説しませんし、現状私も出来ません。
ただ一点「とりあえず単語を単語として認識してもらう」ことに主眼をおいたものです。

機会があればcsvファイルの設定値などについて書きたいと思います。


前提条件
mathのLinux環境は以下のとおりです。

$uname -v -s -r -i
Linux 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64
$mecab --version
mecab of 0.996

 



ユーザー辞書とは


以下のようなテキストを形態素解析しても正しく表示されません。

$mecab
清霜は俺の嫁
清    名詞,固有名詞,地域,国,*,*,清,シン,シン,,
霜    名詞,一般,*,*,*,*,霜,ジモ,ジモ,,
は    助詞,係助詞,*,*,*,*,は,ハ,ワ,,
俺    名詞,代名詞,一般,*,*,*,俺,オレ,オレ,,
の    助詞,連体化,*,*,*,*,の,ノ,ノ,,
嫁    名詞,一般,*,*,*,*,嫁,ヨメ,ヨメ,,
EOS

 
「清霜」を正しく単語として認識されていません。これは由々しき事態です。
よって辞書を更新します。
一般にシステムの辞書とユーザー辞書があるそうです。システムの辞書を壊すと面倒だけでなく、解析そのものもできなくなるので今回はユーザー辞書を更新する方法を取りました。

以下に公式のマニュアルがあります。
参考サイト:単語の追加方法
http://taku910.github.io/mecab/dic.html

本マニュアルのとおりには行かなかったので補足しておきます。
基本的は以下のとおりです。
1. 辞書ファイルの環境の構築
2. 辞書のコンパイル
3. ユーザ辞書の登録
4. mecabの起動
5. 解析の実施



1. 辞書ファイルの環境の構築


作業ディレクトリは ~/Documents/text_mining/mydict/kancolle としました。
必須ファイルは csvファイルです。
内容は以下のようにしました。

$cat mydict_source.csv
清霜,1,1,500,名詞,固有名詞,人名,名,*,*,きよしも,キヨシモ,オレノヨメ


2. 辞書のコンパイル


参考サイトでは「/usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic -u foo.dic -f euc-jp -t euc-jp foo.csv」となっていますが、私の環境では以下のコマンドで実行しました。

/usr/lib/mecab/mecab-dict-index -d/var/lib/mecab/dic/debian -u kancolle.dic  -f utf-8  -t utf-8   mydict_source.csv

なお、複数dicディレクトリが在るかもしれませんが、MeCabの設定ファイル「/etc/mecabrc」は「/var/lib/mecab/dic/debian」を参照していたので、同様に本コマンドもvar以下のファイルを参照しました。

3. ユーザ辞書の登録

次は2のファイルをMeCabから参照するようにします。参考サイトを参考にします。
設定ファイルは/etc/mecabrcです。まずはこれをホームにコピーします。
別解として/etc/のmecabrcを変更してもいいですが、今回はユーザディレクトリに辞書ファイルをおいているので、こちらの方法を取りました。
cp /etc/mecabrc ~/.mecabrc
次に~/.mecabrcに先ほどの辞書ファイル「kancoole.dic」をuserdicとして追加します。この時パスは「~/」の表記ではなく「絶対パス」でないと駄目です。
以下のような一文を追加します。

userdic = /home/math2tik/Documents/text_mining/mydict/kancolle/kancolle.dic

diffでは以下のようになります。

$diff -U1  /etc/mecabrc  ~/.mecabrc
--- /etc/mecabrc    2013-12-30 08:15:30.000000000 +0900
+++ /home/math2tik/.mecabrc    2015-07-30 03:02:19.911727462 +0900
@@ -8,2 +8,3 @@
 ; userdic = /home/foo/bar/user.dic
+userdic = /home/math2tik/Documents/text_mining/mydict/kancolle/kancolle.dic


4. mecabの起動

ここまでできたらコマンドを起動します。

mecab


5. 解析の実施

解析を実施します。

$mecab
清霜は俺の嫁
清霜    名詞,固有名詞,人名,名,*,*,きよしも,キヨシモ,オレノヨメ
は    助詞,係助詞,*,*,*,*,は,ハ,ワ,,
俺    名詞,代名詞,一般,*,*,*,俺,オレ,オレ,,
の    助詞,連体化,*,*,*,*,の,ノ,ノ,,
嫁    名詞,一般,*,*,*,*,嫁,ヨメ,ヨメ,,
EOS



無事「清霜」を1単語として認識してくれました。

以上です。
これを行えばpythonからimport MeCabした場合でも「清霜」をmath2tikの読めと認識します。