この記事について
- MecabをMacにインストールしようとしたときに、結果の文字化けで躓いたのでその対処の備忘録です
- versionや日付表記の部分は適宜読み替えてください
Mecabを素直にインストールできるパターン
mecab公式サイトから、本体とIPA辞書データをダウンロードします
mecab本体をインストール
$ tar -xvf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install
$ mecab -v
mecab of 0.996
辞書データをインストール
$ tar -xvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ sudo make install
mecabを実行
- 文字化けしないパターン
$ echo "mecabで遊ぼうと思ったら文字化ける" | mecab
mecab 名詞,一般,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
遊ぼ 動詞,自立,*,*,五段・バ行,未然ウ接続,遊ぶ,アソボ,アソボ
う 助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
と 助詞,格助詞,引用,*,*,*,と,ト,ト
思っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,思う,オモッ,オモッ
たら 助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ
文字 名詞,一般,*,*,*,*,文字,モジ,モジ
化ける 動詞,自立,*,*,一段,基本形,化ける,バケル,バケル
- 文字化けするパターン
これに対処します
$ echo "mecabで遊ぼうと思ったら文字化ける" | mecab
mecab ̾??,??ͭ̾??,?ȿ?,*,*,*,*
? ????,????,*,*,*,*,*
?? ̾??,??ͭ̾??,?ȿ?,*,*,*,*
??? ????,????,*,*,*,*,*
?? ̾??,??ͭ̾??,??̾,̾,*,*,??,?參,?參
??と思? ????,????,*,*,*,*,*
?? ????,????ե??٥å?,*,*,*,*,??,????,????
??ら文 ????,????,*,*,*,*,*
? ̾??,????,*,*,*,*,?,?̥?,?̥?
?化ける ????,????,*,*,*,*,*
文字化けする場合の対処
こちらのページでほとんど解決できたのですが、一部だけ自分の環境とは手順が違っていました
解決策1
まず、mecab本体と辞書をインストールする際に--with-charset=utf8
をつけると文字化けが解消することがあります
- mecab本体
$ cd mecab-0.996
$ ./configure --with-charset=utf8
$ make
$ make check
$ sudo make install
- 辞書データ
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ sudo make install
自分の環境では、これでは解決しませんでした
解決策2
解決策1でだめな場合は、自分で辞書の文字コードを変換した上で、もう一度インストールします
mecab本体は、解決策1でインストール済みの想定です
$ cd mecab-ipadic-2.7.0-20070801
$ nkf -w --overwrite *.csv
$ nkf -w --overwrite *.def
mecab-ipadic-2.7.0-20070801/dicrc
を編集
$ config-charset = EUC-JP
↓
$ config-charset = UTF-8
再度、辞書をインストールしたところ、よくわからないエラーが発生しました
/usr/local/libexec/mecab/mecab-dict-index -d . -o . -f EUC-JP -t utf8
とあるので、他にもEUC-JP→UTF-8に書き換えなければいけない箇所があるのかと迷走しました
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
/usr/local/libexec/mecab/mecab-dict-index -d . -o . -f EUC-JP -t utf8
reading ./unk.def ... iconv conversion failed. skip this entry
:
iconv conversion failed. skip this entry
0
make: *** [matrix.bin] Segmentation fault: 11
結論としては、--with-charset=utf8
を付けずに、./configure
を実行すると、エラーなくインストールできました
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ make install
文字化けも解消されています
$ echo "mecabで遊ぼうと思ったら文字化ける" | mecab
mecab 名詞,一般,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
遊ぼ 動詞,自立,*,*,五段・バ行,未然ウ接続,遊ぶ,アソボ,アソボ
う 助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
と 助詞,格助詞,引用,*,*,*,と,ト,ト
思っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,思う,オモッ,オモッ
たら 助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ
文字 名詞,一般,*,*,*,*,文字,モジ,モジ
化ける 動詞,自立,*,*,一段,基本形,化ける,バケル,バケル