2
2

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.

xreaでpythonからMeCabを使うまで

Posted at

xreaは、無料枠でもSSHが使える破格のレンタルサーバーです。

そんなxreaですが、形態素解析ツールのMeCabが初めから使えます。

TL;DR

  • 辞書は/usr/lib64/mecab/dic/ipadic/を指定する
  • 対話モードでテストするときはサーバーのlocaleを適当に設定する

MeCabを使ってみる

サーバーをレンタルして入ったら、そのままmecabを使うことができます。

[username@sxxxx ~]$ mecab
xreaでMeCabを使いたい
xrea    ̾,ͭ̾,ȿ,*,*,*,*
でM     ,,*,*,*,*,*
eCab    ̾,ͭ̾,ȿ,*,*,*,*
を      ,,*,*,*,*,*
        ̾,,*,*,*,*,,ӥ,ӥ
いたい  ,,*,*,*,*,*
EOS

このように文字コードの問題でまともに動作しません。
xreaがデフォルトで利用している辞書は、EUC-JPでビルドされているため、utf8のものを使うようにします。
/usr/lib64/mecab/dic/ipadic/にutf8でビルドされたIPA辞書があるため、それを使います。

[username@sxxxx ~]$ mecab -d /usr/lib64/mecab/dic/ipadic/
xreaでMeCabを使いたい
xrea    名詞,一般,*,*,*,*,*
で      助詞,格助詞,一般,*,*,*,で,デ,デ
MeCab   名詞,一般,*,*,*,*,*
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
使い    動詞,自立,*,*,五段・ワ行促音便,連用形,使う,ツカイ,ツカイ
たい    助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS

よさげです。

pythonからMeCabを使う

ここでは、python3.6でMeCabを利用することを目標とします。
とはいっても、基本的にはmecab-python3をインストールするだけです。

[username@sxxxx ~]$ python3.6 -m pip install mecab-python3 --user

最後に対話モードで動作をテストしましょう。
ここで1つ注意点があります。そのまま日本語の文字列を形態素解析しようとすると'ascii' codec can't decode ~のようなエラーが表示されるはずです。これは、pythonがサーバーの環境変数を読んで、ASCIIコードで日本語をデコードしようとするからです
そのため、環境変数を適当に設定します。

[username@sxxxx ~]$ export LANG=ja_JP.utf8

以上で、mecab-python3の動作をチェックすることができます。

>>> import MeCab
>>> mecab = MeCab.Tagger ('-d /usr/lib64/mecab/dic/ipadic/')
>>> print(mecab.parse('xreaでMeCabを使いたい'))
xrea    名詞,一般,*,*,*,*,*
      助詞,格助詞,一般,*,*,*,,,
MeCab   名詞,一般,*,*,*,*,*
      助詞,格助詞,一般,*,*,*,,,
使い    動詞,自立,*,*,五段ワ行促音便,連用形,使う,ツカイ,ツカイ
たい    助動詞,*,*,*,特殊タイ,基本形,たい,タイ,タイ
EOS

参考

Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題について

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?