Edited at

Raspberry Piでpythonからmecabを使う初期設定

mecab導入にいろいろてこずった結局、OSを初期化して以下の手順でうまくいった。


環境

項目
内容

デバイス
Raspberry Pi 3 ModelB

OS
2018-11-13-raspbian-stretch


実行

ラズパイの端末から以下を順に実行。

ラズパイにディスプレイつなげても、sshで接続して操作してもどちらでも良い。


apt-getをアップデート


【実行内容】

sudo apt-get upgrade



【出力】

パッケージリストを読み込んでいます... 完了

依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。


apt-getをアップグレード


【実行内容】

sudo apt-get upgrade



【出力】

パッケージリストを読み込んでいます... 完了

依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。


mecab本体や辞書などをインストール


【実行内容】

sudo apt-get install mecab libmecab-dev mecab-ipadic-utf8 python-mecab



【出力1】

この操作後に追加で 138 MB のディスク容量が消費されます。

続行しますか? [Y/n]

と聞かれるのでYと入力してエンター


【出力2】

得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libmecab2 armhf 0.996-3.1 [218 kB]

取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libmecab-dev armhf 0.996-3.1 [271 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf mecab-utils armhf 0.996-3.1 [7,478 B]
・・・・・・省略・・・・・・・・・
done!


mecab-python3をインストール


【実行内容】

sudo pip3 install mecab-python3



【出力(エラー)】

  Downloading https://files.pythonhosted.org/packages/ac/48/295efe525df40cbc2173748eb869290e81a57e835bc41f6d3834fc5dad5f/mecab-python3-0.996.1.tar.gz

Building wheels for collected packages: mecab-python3
・・・・省略・・・・
error: command 'swig' 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/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-72x8lhhq/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 /tmp/pip-8dwpaus1-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
/usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
warnings.warn(msg)
running install
running build
running build_py
running build_ext
building '_MeCab' extension
swigging MeCab.i to MeCab_wrap.cpp
swig -python -shadow -c++ -I/usr/include -o MeCab_wrap.cpp MeCab.i
unable to execute 'swig': No such file or directory
error: command 'swig' failed with exit status 1

----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-72x8lhhq/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 /tmp/pip-8dwpaus1-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-72x8lhhq/mecab-python3/


error: command 'swig' failed with exit status 1と言われているので、swigをインストールする。


【実行内容】

sudo apt-get install swig



【出力】

省略(特にエラーが無ければOK)


再度mecab-python3のインストールを実行


【実行内容】

sudo pip3 install mecab-python3



【出力】

Collecting mecab-python3

Downloading https://files.pythonhosted.org/packages/ac/48/295efe525df40cbc2173748eb869290e81a57e835bc41f6d3834fc5dad5f/mecab-python3-0.996.1.tar.gz
Building wheels for collected packages: mecab-python3
Running setup.py bdist_wheel for mecab-python3 ... done
Stored in directory: /root/.cache/pip/wheels/73/71/4f/63a79925b5e9bb38932043917cc60140beb8022ac14a952b1e
Successfully built mecab-python3
Installing collected packages: mecab-python3
Successfully installed mecab-python3-0.996.1

成功したっぽい!


python3から実行してみる


【実行内容】

# pythonを起動

python3


【実行内容】

import MeCab

mecab = MeCab.Tagger ("-Ochasen")
print(mecab.parse("すもももふともももももももも"))


【出力】

すもも   スモモ   すもも   名詞-一般

も モ も 助詞-係助詞
ふと フト ふと 副詞-一般
もも モモ もも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
の ノ の 助詞-連体化
うち ウチ うち 名詞-非自立-副詞可能

ちゃんと動いてる!!