昨日は CaboCha を Mac にインストールしたが、文節の切れ目がなんかおかしかった。いろいろトライした結果、Python3 と curl xz、crf++ 、MeCab、CaboCha を再インストールして解決した。結局どれが悪かったのかは分からず(再インストールしなくても済む方法もあるのかも知れない)。
追記(191124):形態素解析用の辞書による。 ipadic を使用すると公式サンプルと同じ結果になり、unidic を使用すると僕の結果になる。
今日やったこと
CaboChaのインストール方法をいろいろ試した
curl xz、crf++、MeCab、MeCab用の辞書はインストール済み。昨日は Homebrew を使ってインストールした。
参考:MeCabとCaboChaをMacに導入してPythonから使ってみる - Qiita @musaprg
brew install cabocha
1回目のトライ make してインストール
Homebrew を使わないでインストールしてみようということで、ソース一式をダウンロードして make した。
公式GitHub:CaboCha/南瓜: Yet Another Japanese Dependency Structure Analyzer - GitHub
参考:[Python] CaboCha(MeCab)をMacにインストールして動かしてみた - MAYTRY
結果:アカン、昨日とおんなじや。
2回目のトライ PATH を追加
crf++, mecab, cabochaをローカルにインストールするときの注意点 - technote @keiskS を参考に、 .bash_profile に PATH を4行追加、それから1回目同様にソースを make してインストール。
結果:アカン、昨日とおんなじや。
3回目のトライ cabocharc を削除
日本語係り受け解析器cabochaのインストールエラー - stackoverflow 一番下に usr/local/etc/cabocharcを削除してインストールしたと書いてある。cabocharc を削除して、ソースを make してインストール。
結果:アカン、昨日とおんなじや。
そこでなんか気づいた
Terminal の表示内容を 素人の言語処理100本ノック:40 - Qiita @segavvy と見比べる。大体合っているように見えるけど……。
「Python バインディングのインストール」の部分使われている Python のバージョンが、僕の実行結果では 2.7 になっていて、その下に warning がいっぱい出ている。
Mac のデフォルトで入っていたやつが Python2 だったので、Python3 を入れてエイリアス設定して機嫌よく使ってたが、エイリアスが有効なのはTerminal から実行するときだけなのだろうか? なんかマズイっぽい?
これは CaboCha が文節を区切ってくれない件とはまた別かも、とは思いつつ、気持ち悪いので Python のバージョンをどうにかすることにした。
どこからでも Python3 が使えるようにする
Homebrew から、Python のバージョンを管理してくれるやつを召喚する。
$ brew install pyenv
.bash_profile に export PATH="$HOME/.pyenv/shims:$PATH" を追加する。それから最新の Python をインストールする。
$ pyenv install 3.7.4 $ pyenv global 3.7.4 $ python --version Python 3.7.4
ちなみに、 $ brew list と入力すると、これまでに Homebrew で召喚したやつの一覧が見れる。
怒涛の再インストール
curl xz と crf++
$ brew reinstall git curl xz $ brew reinstall crf++
MeCab、CaboCha
$ brew uninstall mecab とかで、Homebrew でインストールしたやつをアンインストールする。アンインストールしてもファイルは消えないので、探し出して rm で消した。/usr/local/bin/、/usr/local/include/、/usr/local/share/ の中とかにも config とかあって、インストール中に Error で出てくるので、全部 rm しちゃった。
$ brew install mecab $ brew link --overwrite mecab $ brew link --overwrite --dry-run mecab $ brew install mecab-ipadic $ brew link --overwrite mecab-ipadic $ brew link --overwrite --dry-run mecab-ipadic $ brew install cabocha
参考:MeCabとCaboChaをMacに導入してPythonから使ってみる - Qiita @musaprg
CaboCha のバインディングは上のサイトでは2種類紹介されているが、両方入れた。
$ pip list で、これまでに入れた Python ライブラリの一覧が見られる。アー? matplotlib とかがなくなってしまった(Python3 を入れ直したせい)また使うときに召喚しよう。
CaboCha の動作確認
ちゃんと文節が区切れるようになった。
$ cabocha 太郎は花子が読んでいる本を次郎に渡した 太郎は---------D 花子が-D | 読んでいる-D | 本を---D 次郎に-D 渡した EOS
$ cabocha 警官は自転車で逃げる泥棒を追いかけた。 警官は-------D 自転車で-D | 逃げる-D | 泥棒を-D 追いかけた。 EOS 警官は、自転車で逃げる泥棒を追いかけた。 警官は、-------D 自転車で-D | 逃げる-D | 泥棒を-D 追いかけた。 EOS 警官は自転車で、逃げる泥棒を追いかけた。 警官は-D 自転車で、-----D 逃げる-D | 泥棒を-D 追いかけた。 EOS
なるほど。
今日はめかぶとかぼちゃ食べるしかないでしょう? pic.twitter.com/hXIcwSavYN
— ピージェイ 𐀠𐀋𐀂 (@xiPJ) October 13, 2019
これで自然言語処理100本ノックに取りかかれる。