search
LoginSignup
6

More than 3 years have passed since last update.

posted at

updated at

Mecabインストールで文字化けた場合の対処法

この記事について

  • MecabをMacにインストールしようとしたときに、結果の文字化けで躓いたのでその対処の備忘録です
  • versionや日付表記の部分は適宜読み替えてください

Mecabを素直にインストールできるパターン

mecab公式サイトから、本体とIPA辞書データをダウンロードします

mecab.png

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   名詞,一般,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
遊ぼ  動詞,自立,*,*,五段・バ行,未然ウ接続,遊ぶ,アソボ,アソボ
う 助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
と 助詞,格助詞,引用,*,*,*,と,ト,ト
思っ  動詞,自立,*,*,五段・ワ行促音便,連用タ接続,思う,オモッ,オモッ
たら  助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ
文字  名詞,一般,*,*,*,*,文字,モジ,モジ
化ける   動詞,自立,*,*,一段,基本形,化ける,バケル,バケル

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6