15
7

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-30

この記事について

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

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
  3. You can use dark theme
What you can do with signing up
15
7