【python3】Mecabをpythonで使えるようにするまで【Mac編】
macでもmecabをインストールしてみました。
これはこれでまた手こずりましたね。
ってことでmacでの手順も書こうと思います。
- mecabのインストール
- mecab-python3のインストール
- git clone でmecab-ipadic-neologdをインストールする
- 再度mecab-ipadic-noelogd をインストール
- mecab-python3 install
- 使ってみる
- まとめ
mecabのインストール
macはhomebrewでmecabをインストールできる。
$ brew install mecab $ mecab |
mecabと入力するとmecabが起動するので適当に文章を打ってみて解析されるか確認する。
ちなみにmacのターミナル上だと文字化けはしなかった。
mecab-python3のインストール
mecabをpython3で使うためにはmecab-python3をインストールする必要がある。
>$ pip install mecab-python3
が、ここでもwindowsのときと同様のsetup.pyのエラーが発生。
ちょっと長いけど全文
Collecting mecab-python3 Using cached https://files.pythonhosted.org/packages/25/e9/bbf5fc790a2bedd96fbaf47a84afa060bfb0b3e0217e5f64b32bd4bbad69/mecab-python3-0.7.tar.gz Building wheels for collected packages: mecab-python3 Running setup.py bdist_wheel for mecab-python3 ... error Complete output from command /usr/local/Cellar/python/3.6.4/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-install-hr26lidg/mecab-python3/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-wheel-nks130t_ --python-tag cp36: running bdist_wheel running build running build_py creating build creating build/lib.macosx-10.12-x86_64-3.6 copying MeCab.py -> build/lib.macosx-10.12-x86_64-3.6 running build_ext building '_MeCab' extension creating build/temp.macosx-10.12-x86_64-3.6 clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/mecab/0.996/include -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python3/3.6.4/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c MeCab_wrap.cxx -o build/temp.macosx-10.12-x86_64-3.6/MeCab_wrap.o xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun error: command 'clang' failed with exit status 1 ---------------------------------------- Failed building wheel for mecab-python3 Running setup.py clean for mecab-python3 Failed to build mecab-python3 Installing collected packages: mecab-python3 Running setup.py install for mecab-python3 ... error Complete output from command /usr/local/Cellar/python/3.6.4/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-install-hr26lidg/mecab-python3/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-record-mat08_bb/install-record.txt --single-version-externally-managed --compile: running install running build running build_py creating build creating build/lib.macosx-10.12-x86_64-3.6 copying MeCab.py -> build/lib.macosx-10.12-x86_64-3.6 running build_ext building '_MeCab' extension creating build/temp.macosx-10.12-x86_64-3.6 clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/mecab/0.996/include -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python3/3.6.4/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c MeCab_wrap.cxx -o build/temp.macosx-10.12-x86_64-3.6/MeCab_wrap.o xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun error: command 'clang' failed with exit status 1 ---------------------------------------- Command "/usr/local/Cellar/python/3.6.4/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-install-hr26lidg/mecab-python3/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-record-mat08_bb/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/cp/w773f5l10hj8yfgkffyjwzb40000gn/T/pip-install-hr26lidg/mecab-python3/
よくわからないけどとにかくmecab-python3がインストールできない。
error: command 'clang' failed with exit status 1で検索しても答えは見つからず。
mecab-ipadic-neologdをインストールするといいという記事をどこかでみたので試してみる。
git clone でmecab-ipadic-neologdをインストールする
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcrunがない?
どうやらCommandLineToolsに付随する機能らしく、そもそもCommandLineToolsもないのでインストールする。
※CommandLineToolsとはコマンドで操作するツールのことらしい。 ターミナルとどう違うのか疑問だ。
CommandLineToolsのインストール
$ xcode-select --install xcode-select: note: install requested for command line developer tools
ターミナル上ではなくデスクトップ画面でインストールが開始される。
コマンドを見てわかるようにxcodeの何からしい。
xcodeをインストールしてあれば一緒に入っているという記事も見かけたがそうではないようだ。
ということはもしかしたらmecab-python3がインストールできなかったのもxcrunがなかったからかも?
再度mecab-ipadic-noelogd をインストール
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git Cloning into 'mecab-ipadic-neologd'... remote: Enumerating objects: 75, done. remote: Counting objects: 100% (75/75), done. remote: Compressing objects: 100% (74/74), done. remote: Total 75 (delta 5), reused 55 (delta 0), pack-reused 0 Unpacking objects: 100% (75/75), done. Checking out files: 100% (65/65), done.
成功したようなので続けてインストールする。
$ ./install-mecab-ipadic-neologd
インストールの途中でDo you want to install neologd? [yes:no]が出てくるのでyesとうつ必要がある。
Usage: $ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
-dオプション?引数?でneologdのパスを指定できるようだ。
mecab-python3 install
これで準備完了。
mecab-python3をインストールする。
$ pip install mecab-python3 Collecting mecab-python3 Using cached https://files.pythonhosted.org/packages/25/e9/bbf5fc790a2bedd96fbaf47a84afa060bfb0b3e0217e5f64b32bd4bbad69/mecab-python3-0.7.tar.gz Building wheels for collected packages: mecab-python3 Running setup.py bdist_wheel for mecab-python3 ... done Stored in directory: /Users/shoot/Library/Caches/pip/wheels/4c/07/3a/5f22ccc9f381f3bc01fa023202061cd1e0e9af855292f005dd Successfully built mecab-python3 Installing collected packages: mecab-python3 Successfully installed mecab-python3-0.7
使ってみる
import MeCab s = '吾輩は猫である 名前はまだない。9日に' t = MeCab.Tagger('-Owakati -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd ') result = t.parse(s) print(result)
吾輩は猫である ワガハイハネコデアル 吾輩は猫である 名詞-固有名詞-一般 名前 ナマエ 名前 名詞-一般 は ハ は 助詞-係助詞 まだ マダ まだ 副詞-助詞類接続 ない ナイ ない 形容詞-自立 形容詞・アウオ段 基本形 。 。 。 記号-句点 9日 ココノカ 9日 名詞-固有名詞-一般 に ニ に 助詞-格助詞-一般 EOS
まとめ
xcrunのところはつまづきましたがwindowsよりは簡単に設定できたかなって感じです。
さて、これで文章の自動生成でもやってみようかなって思っているわけですが、
janomeのほうが使い勝手がよい可能性もあります。
janomeってのはmecabをもとに作られたpythonようライブラリなんでpipで簡単にインストールできます。
まあ締めの部分なんで長くは書きませんがもしかしたらここまでやっておいてjanomeに変えるかもしれません(笑)
またmecabかjanomeで何か作ったら記事にしようかなと思います。