#概要
MeCabのデフォルト辞書をmecab-ipadic-NEologd
に変更するために、自分の環境(macOS)でやったことのメモです。
多くの方がすでに書いてくださっているように、デフォルト辞書はmecabrc
というファイルを編集すると変更できるのですが、自分の環境だとmecabrc
が複数あってどれを編集すればよいか迷ったので、どのファイルを編集すべきかの調べ方も含めて、実際にうまくできた方法について書いています。
#環境
- OS
- macOS Catalina 10.15.4
- MeCab
- mecab 0.996 (brewでインストール)
- mecab-ipadic-NEologd
インストールは下記サイトの手順にほぼ倣いました。
https://qiita.com/taroc/items/b9afd914432da08dafc8
#mecabのデフォルト辞書の更新
##現在使っているmecabのバイナリソースの確認
brewでインストールしたmecabをちゃんと使っているか一応確認しました。
% which mecab
/usr/local/bin/mecab
% ls -l /usr/local/bin/mecab
lrwxr-xr-x 1 xxxx yyyy XX M dd hh:mm /usr/local/bin/mecab -> ../Cellar/mecab/0.996/bin/mecab
/usr/local/Cellar
の中を参照しているので、ちゃんとbrewでインストールしたものが使われているようです。
##現在のデフォルト辞書の確認
ターミナルでmecab -D
とタイプし、現在のデフォルト辞書を確認しました。
filename:
の部分から/usr/local/lib/mecab/dic/ipadic/sys.dic
が使われていることがわかります。
% mecab -D
filename: /usr/local/lib/mecab/dic/ipadic/sys.dic
version: 102
charset: utf8
type: 0
size: 392126
left size: 1316
right size: 1316
一応、この状態で「インスタ映え」が正しく解析されないことも確認しておきました。
間違いとまでは言えないですが、「インスタ」と「映え」が別々の単語として認識されてしまっています。
% echo 'インスタ映え' | mecab
インスタ 名詞,一般,*,*,*,*,*
映え 名詞,一般,*,*,*,*,映え,ハエ,ハエ
EOS
##mecabrcを探す
デフォルト辞書の参照先はmecabrc
というファイルに記述されています。
そこでfind
により検索しました。
下記のようにいくつか候補が出てきました。
% sudo find / -name mecabrc
/usr/local/etc/mecabrc
/usr/local/Cellar/mecab/0.996/.bottle/etc/mecabrc
/System/Volumes/Data/usr/local/etc/mecabrc
/System/Volumes/Data/usr/local/Cellar/mecab/0.996/.bottle/etc/mecabrc
一瞬「どれだ?」と思ったのですが、軽く調べるとbrewでインストールした場合は/usr/local/etc/
に設定ファイルが置かれていると、書いているところが多かったです。
参考
https://ichibariki.hatenablog.com/entry/2017/01/09/150542
https://qiita.com/takaheraw@github/items/286cdb27887bd00e2245
一応、ちゃんとした根拠がないか調べてたら、mecab-config --sysconfdir
でわかるという情報を見つけました。
参考
https://rooter.jp/data-format/mecab_install/
僕の環境でも実行してみたところ、やはり/usr/local/etc
が格納先になっているようでした。
% /usr/local/Cellar/mecab/0.996/bin/mecab-config --sysconfdir
/usr/local/etc
ついでにですが、辞書ファイルの参照先も下記コマンドで調べることができました。
% /usr/local/Cellar/mecab/0.996/bin/mecab-config --dicdir
/usr/local/lib/mecab/dic
##mecabrcの編集
/usr/local/etc/mecabrc
をエディタで開き、dicdir =
となっている部分を書き換えます。
% nano /usr/local/etc/mecabrc
#書き換え前
dicdir = /usr/local/lib/mecab/dic/ipadic
#書き換え後
;dicdir = /usr/local/lib/mecab/dic/ipadic
dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd
編集後、mecab -D
でデフォルト辞書が変更されていることを確認します。
チェックのため、「インスタ映え」を形態素解析してみました。固有名詞として一単語で認識できていました。
% echo 'インスタ映え' | mecab
インスタ映え 名詞,固有名詞,一般,*,*,*,インスタ映え,インスタハエ,インスタハエ
EOS
なおpythonからMeCabをつかうときのデフォルト辞書については、上記だけでは変更されませんでした。pythonに関しては、MECABRC
という環境変数に参照すべきmecabrc
のパスを代入することでデフォルト辞書を変えることが出来ました。詳細は別記事にまとめました。
#おわりに
mecabのデフォルト辞書をmecab-ipadic-neologdに変更する方法に関して、自分の環境で行ったことをメモしました。
編集すべきmecabrc
をfind
で検索したら候補が複数出てきて、一瞬困りました。
ネットの情報を信じて/usr/local/etc/mecabrc
を決め打ちで編集してみるのでも良かったのですが、brew
でインストールしたバイナリの設定ファイル置き場が本当に/usr/local/etc
なのか少しだけ不安に感じてしまいました。そこで、折角の機会なので、自分の環境のmecabがどこの設定ファイルを読んでいるのか、mecab-config
で一応調べてみました。結果、多少ですが、納得性の高い情報が得られたので良かったです。
本記事は以上です。
ここまでお読みいただきありがとうございました。