メモリの少ないさくらVPS(ubuntu18.04)にmecab-ipadic-neologdをインストールしてpythonから使う
概要
ubuntu18.04LTSをインストールしたさくらVPSにmecab-ipadic-neologdをインストールしてpythonから呼べるようにしました。
mecab-ipadic-neologdはメモリ不足のために、サーバ上でインストールできなかったので、ローカルで作った辞書をscpしました。
環境
さくらのVPSの2Gプラン
OSは以下の通り
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
(以下略)
$ python -V
Python 3.6.8
mecabのインストール
リモートサーバ上で下記コマンドを実行します。
sudo apt install mecab
sudo apt install libmecab-dev
sudo apt install mecab-ipadic-utf8
動作確認します。
$ echo 神ってる | mecab
神 名詞,一般,*,*,*,*,神,カミ,カミ
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
る 助動詞,*,*,*,文語・ル,基本形,る,ル,ル
EOS
参考:ubuntu 18.10 に mecab をインストール
mecab-ipadic-neologdのコピー
今回はローカルのMacPCでmecab-ipadic-neologdを導入済みだったのでそこから辞書をscpします。
ローカルのmacでmecab-ipadic-neologdの辞書の場所を確認します。
$ sudo find / -name mecabrc
/usr/local/etc/mecabrc
/usr/local/Cellar/mecab/0.996/.bottle/etc/mecabrc
$ cat /etc/usr/local/mecabrc
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
;dicdir = /usr/local/lib/mecab/dic/ipadic
dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd
(以下略)
辞書をローカルからリモートにscpします。
$ scp -r /usr/local/lib/mecab/dic/mecab-ipadic-neologd [email protected]:~/
リモートサーバ上でmecabの動作確認をします。
$ echo 神ってる | mecab -d ~/mecab-ipadic-neologd
神ってる 名詞,固有名詞,一般,*,*,*,神ってる,カミッテル,カミッテル
EOS
初期辞書では正しく認識されなかった「神ってる」が一単語で認識できているので、mecab-ipadic-neologdが使えていることがわかります。
参考:さくらVPSの安いプランとかでmecab-ipadic-NEologdを使う
デフォルト辞書をmecab-ipadic-neologdに設定
リモートサーバのmecabのデフォルト辞書をmecab-ipadic-neologdに設定します。
Macの場合とほぼ同じで、mecabrcを編集すればよいです。
リモートサーバ上のmecabrcを探して、中身を確認します。
$ sudo find / -name mecabrc
/etc/mecabrc
$ cat /etc/mecabrc
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir = /var/lib/mecab/dic/debian
(以下略)
mecabの辞書はデフォルトで/var/lib/mecab/dicに格納されるようなので、mecab-ipadic-neologdもそこに移動し、mecabrcを対応するように変えます。
$ sudo mv ~/mecab-ipadic-neologd /var/lib/mecab/dic/
$ sudo nano /etc/mecabrc
(変更前)
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir = /var/lib/mecab/dic/debian
(以下略)
(変更後)
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
;dicdir = /var/lib/mecab/dic/debian
dicdir = /var/lib/mecab/dic/mecab-ipadic-neologd
(以下略)
正しく変更できていれば、辞書をしてせずとも「神ってる」を一語で認識できるようになります。
$ echo 神ってる | mecab -d ~/mecab-ipadic-neologd
神ってる 名詞,固有名詞,一般,*,*,*,神ってる,カミッテル,カミッテル
EOS
mecab-python3のインスト−ル
mecabをpython3から呼べるようにします。
sudo apt install swig
sudo apt install python3-pip
sudo pip3 install mecab-python3
pythonから呼べるか確認します。
$ python
Python 3.6.8 (default, May 23 2019, 19:27:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MeCab
>>> MeCab.Tagger().parse('神ってる')
Failed initializing MeCab. Please see the README for possible solutions:
https://github.com/SamuraiT/mecab-python3#common-issues
If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:
https://github.com/SamuraiT/mecab-python3/issues
issueを英語で書く必要はありません。
------------------- ERROR DETAILS ------------------------
arguments:
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
----------------------------------------------------------
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/shimaya/.pyenv/versions/3.6.8/lib/python3.6/site-packages/MeCab/__init__.py", line 124, in __init__
super(Tagger, self).__init__(args)
RuntimeError
エラーが出ます。/usr/local/etc/mecabrc
が存在しないと言われています。mecabrcは/etc/mecabrcにあるはずなので、存在しない場所を読みに行ってしまっているようです。
pythonが読みにいくmecabrcはMECABRC
という環境変数を明示的に用意することで指定することができます。
$ nano ~/.bash_profile
(以下を追記)
export MECABRC=/etc/mecabrc
$ source ~/.bash_profile
再度試すと、「神ってる」を一語で形態素解析できました。
$ python
Python 3.6.8 (default, May 23 2019, 19:27:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MeCab
>>> MeCab.Tagger().parse('神ってる')
'神ってる\t名詞,固有名詞,一般,*,*,*,神ってる,カミッテル,カミッテル\nEOS\n'
参考:ubuntu 18.10 に mecab をインストール
参考:Pythonから呼び出すMeCabのデフォルト辞書を変更する
Author And Source
この問題について(メモリの少ないさくらVPS(ubuntu18.04)にmecab-ipadic-neologdをインストールしてpythonから使う), 我々は、より多くの情報をここで見つけました https://qiita.com/shimajiroxyz/items/f801bf194c23e3d7bea7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .