Ubuntu12.04にインストールしたMeCabのデフォルト辞書の変更方法を教えて下さい。

http://q.hatena.ne.jp/1343137403 で回答して頂き、MeCabが文字化けする問題は解消できたつもりでしたが、デフォルトの辞書?をUTF-8のものにできずに困っています。上記リンク先で頂いた回答でも辞書の変更方法をご指導頂いたのですが、変更が反映されませんでした。

$ sudo update-alternatives --config mecab-dictionary
alternative mecab-dictionary (/var/lib/mecab/dic/debian を提供) には 4 個の選択肢があります。

選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /var/lib/mecab/dic/ipadic-utf8 80 自動モード
1 /var/lib/mecab/dic/ipadic 70 手動モード
2 /var/lib/mecab/dic/ipadic-utf8 80 手動モード
3 /var/lib/mecab/dic/juman 30 手動モード
4 /var/lib/mecab/dic/juman-utf8 40 手動モード


おそらく、現在mecabのデフォルト辞書は下記の設定になっているように思います。これをUTF8のものに変更する方法をご教授下さい。

$ mecab -D
filename: /usr/local/lib/mecab/dic/ipadic/sys.dic
version: 102
charset: euc-jp
type: 0
size: 392126
left size: 1316
right size: 1316

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/07/29 09:17:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:mjy No.1

回答回数70ベストアンサー獲得回数22

ポイント100pt

まず、あなたのシステムには二つのmecabコマンドが存在しているということに注意して下さい。これが混乱の原因です。

一つは、Ubuntuの公式パッケージの物です。
synapticやapt-getなどでインストールしたはずです。
インストール先は /usr/ 以下になります。

二つ目は、あなたが自分でコンパイルしてインストールした物です。
インストール先は おそらく /usr/local/ 以下でしょう。

Ubuntuパッケージのmecabを実行するには、

/usr/bin/mecab

とし、自分でコンパイルしたmecabを実行するには、

/usr/local/bin/mecab

とします。

パスを指定せずに、単に"mecab"とした場合どこのmecabコマンドが実行されるかは、$PATH という環境変数によって決定されます。

echo $PATH

を実行するとわかりますが、あなたのシステムでは、/usr/local/bin が /usr/bin より先に指定されていると思います。

つまり、単に"mecab"と打てば、/usr/local/bin/mecab が実行されるはずです。
しかし、update-alternativesであなたが変更しているのは、Ubuntuの公式パッケージのmacab(/usr/bin/mecab)が参照している辞書です。

/usr/bin/mecab -D

とすれば、変更が反映されているのが分かるでしょう。

問題の解決方法はいくつか考えられますが、LinuxやUbuntuに慣れるまでは、複数のmecabを共存させるのではなく、どちらかを削除しましょう。
公式パッケージの物を使うことをお勧めします。

他2件のコメントを見る
id:mjy

パッケージシステムの管理外にあるソフトウェアは、インストール、アップデート、アンインストールなどに統一された方法がありません。
/usr/local/ 以下は無法地帯です。
インストールに関しては、"make install"で行えるのが大半ですが、"make uninstall" は効かないことが大半です。
(https://www.google.co.jp/search?q=make%20install%20%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

おっしゃる通り、単にファイルを削除すればよいです。

find /usr/local/ -name '*mecab*'

などで関係があるファイルを探して、削除しましょう。
とりあえず、

rm /usr/local/bin/mecab

だけでも大丈夫でしょう。

2012/07/29 07:40:47
id:fenrifja

mjyさん

解決しました!
アドバイス通りにファイルの削除を行ったところ、文字化けが消えました。

前回の質問も含めまして、丁寧に教えて頂き大変感謝しております。

誠にありがとうございました。

2012/07/29 09:17:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません