4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

さくら共有サーバーにmecabをインストールしてpythonから呼び出してみる

Last updated at Posted at 2017-04-12

#概要
この記事では、
さくら共有サーバーにmecabをUTF-8でインストールします。
その後、pythonからmecabを呼びだし、形態素解析をやってみる。
さくらレンタルサーバは、root権限が付与されないため、
ユーザディレクトリにインストールします。

#前提条件
・手順の中のコマンドは、bashで記載してます。bashに変更する方法は、
 補足の「さくらのレンタルサーバで bash を標準にする」を確認すること!

#インストールするもの
・mecab本体(mecab-0.996)
・mecabの辞書
・Pythonのパッケージ管理システムpip
・mecab-python

#手順
##mecab本体のインストール

(1)以下のサイトからmecab本体をダウンロードします。
http://taku910.github.io/mecab/#download

(2)mecab本体を解凍する
tarコマンドで本体を解凍します
tar xvfz ./mecab-0.996.tar.gz

(3)解凍したディレクトリに移動する
cd mecab-0.996

(4)コンパイル、ビルドする
ユーザディレクトリにインストールするため以下のようなコマンドを打つ
./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only

make make install

私の環境では、以下の場所にインストールされました。
~/local/bin/mecab

(5)インストールされたか確認する
mecab -v
正常にインストールされていれば、上記のコマンドを打つと「mecab of 0.996」
というようなログが表示される。

##ipaの辞書を入れる
(1)以下のサイトからmecabの辞書、ipa辞書をダウンロードします。
http://taku910.github.io/mecab/#download

(2)ipa辞書を解凍します
tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz

(3)辞書のフォルダに移動します
cd mecab-ipadic-2.7.0-20070801

(4)ユーザディレクトリにインストールするため以下のようなコマンドを打つ
辞書の文字コードをutf-8にしています。
utf-8にしている理由は、WEBで呼び出すためです。
./configure --with-charset=utf8

ただし、ここでutf-8に設定しても、mecabを実行したあと、
出力結果の文字コードがEUCのままになっていることがあります。

その場合は、「mecab-ipadic-2.7.0-20070801」内の
「csv」と「def」の拡張子のファイルをUTF-8に変換して上書きします。

UTF-8に変換するコマンドとそれを確認するコマンド
nkf -w --overwrite *.csv nkf -w --overwrite *.def nkf --guess *.*

参考
さくら共有サーバー、UTF-8の辞書でmecabを使う方法
http://nymemo.com/sakura/258/

(5)コンパイル、ビルドする
ユーザディレクトリにインストールするため以下のようなコマンドを打つ

make make install

私の環境では、以下の場所に辞書がインストールされました。
~/local/lib/mecab/dic/ipadic

##mecabの動作確認

以下のように辞書を指定してmecabを起動します。

mecab -d ~/local/lib/mecab/dic/ipadic
ターミナルの設定は、UTF-8にしています。

成功すると以下のように表示されます。

[home@www1635 ~/local/etc]$ mecab -d ~/local/lib/mecab/dic/ipadic すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS

#pythonのライブラリをインストールする

##pipをインストールします。
pipをインストールする理由は、pipを使ってmecab-pythonをインストールするため。

easy_install --prefix=~/.local pip

##pipがインストールされたことを確認
[home@www1635 ~/local/etc]$ pip --version pip 9.0.1 from /home/homedir/.local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
##mecab-pythonのインストール

pip install mecab-python --user
--userが付いている理由は、サクラサーバではroot権限が使えないためユーザディレクトリにインストールします。

#pythonでmecabを動かす

こんなソースコードを書きます。

sample.py
# coding: UTF-8

import MeCab

#辞書の場所を指定する(なぜかフルパスで指定しないと動かない)
userdic_path="-d /home/homedir/local/lib/mecab/dic/ipadic"
t = MeCab.Tagger("-Ochasen " + userdic_path)

text = u'すもももももももものうち'
encoded_text = text.encode('utf-8')# 
meData = t.parse(encoded_text )
print meData

実行すると以下のような文が出力されます
a すもも スモモ すもも 名詞-一般 も モ も 助詞-係助詞 もも モモ もも 名詞-一般 も モ も 助詞-係助詞 もも モモ もも 名詞-一般 の ノ の 助詞-連体化 うち ウチ うち 名詞-非自立-副詞可能 EOS

以上です!
次は、MeCabの実行結果をWEBブラウザーで表示させる方法を記事にします。

#補足

さくらのレンタルサーバで bash を標準にする
http://note.sicafe.net/sakuraVPS/sakura_vimInstall.html

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?