M1 macではスペックが足りないように思われたので意気揚々とM3 proを購入。旧PCから新PCへの移行は大体スムーズに行ったが、ただ一つ、MeCabだけメチャクチャ手間取ったので備忘録。
MeCabについては以下をお読みください。
何が起こったか
とりあえずMeCabをmacにインストールし、Rで形態素解析を行った。すると以下のような結果が示された。
> RMeCabC("庭には")
1
̾\xbb\xec
"\xe5\xba"
2
̾\xbb\xec
"\xad\xe3"
3
\xb5\xad\xb9\xe6
"\x81\xab\xe3\x81"
4
̾\xbb\xec
"\xaf"
問題の所在
まず、そもそもこの問題がRMeCabの問題かMeCabの問題なのかを明らかにする必要がある。すでに、MeCab自体はインストールしていたので、ターミナルを開いて以下のように入力した。
$ mecab
Drive in The Rain そう One more futureキミを探して 駆けるよユニバース Drive
しかし、ここでも先ほどと同じように本来「名詞」などと出力されるところが文字化けを起こしていた。そのため、RMeCabサイドではなく、MeCabサイドの問題であることが分かった。
解決
色々調べた結果、この問題はMacあるあるの「エンコーディング」の問題だろうということになった。Macのエンコーディング問題については以下が詳しい。
そして、以下のサイトに辿り着いた。
しかし、ここからがまた大きく手間取った。試行錯誤の末気づいたが、MeCabの中のコードを色々加工したためにエラーがどんどん大きくなっていったらしい。ということで、おとなしく既にインストールしたMeCabとその辞書(mecab-ipadc)をアンインストールすることにした。以下のコードは、ダウンロードフォルダにmecab-0.996やmecab-ipadic-(以下略)を落としていた場合の対応である。
$ cd ~/Downloads
$ cd ~ mecab-ipadic-2.7.0-2007080
$ sudo make clean
$ cd ~/Downloads
$ cd ~ mecab-0.996
$ sudo make uninstall
$ sudo make clean
言われてみれば当たり前だが、このアンインストールが極めて重要である。これによって、新しくきちんとまっとうなmecabやmecab-ipadicをインストールできるのだから。
あとは、上の記事に従って、きちんとインストールするだけである。
$ cd ~/Downloads
$ curl -fsSL "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -o mecab-0.996.tar.gz
$ tar xf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure --with-charset=utf8
$ make
$ sudo make install
$ cd ~/Downloads
$ curl -fsSL "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -o mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zvxf mecab-ipadic-2.7.0-20070801.tar.gz
$ tar xf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf-8
$ make
$ sudo make install
ここで重要なのは、./configure --with-charset=utf-8である。これによって、mecabやmecab-ipadicのファイルがutf-8形式に変換され、macでも問題なく読み込めるようになる。
そして、再びterminalでmecabコマンドを開き先ほどと同じ文章を入力したら問題なく形態素解析を行うことできた。最後にRMeCabでも同様に行った結果、きちんと文字化けせず形態素解析を行うことができた。めでたしめでたし