とりあえず 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の起動
ここまでできたらコマンドを起動します。
5. 解析の実施
解析を実施します。
$mecab
清霜は俺の嫁
清霜 名詞,固有名詞,人名,名,*,*,きよしも,キヨシモ,オレノヨメ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ,,
俺 名詞,代名詞,一般,*,*,*,俺,オレ,オレ,,
の 助詞,連体化,*,*,*,*,の,ノ,ノ,,
嫁 名詞,一般,*,*,*,*,嫁,ヨメ,ヨメ,,
EOS
無事「清霜」を1単語として認識してくれました。
以上です。
これを行えばpythonからimport MeCabした場合でも「清霜」をmath2tikの読めと認識します。