Help us understand the problem. What is going on with this article?

ubuntu16.04LTSにMecabとCaboChaをインストールしてpython3系から使えるようにする

More than 1 year has passed since last update.

はじめに

cabochaという係り受け解析を行えるライブラリを見つけたのでとりあえず遊んでみようと軽い気持ちで触り始めたらインストールにすら苦戦…
とりあえず自分の環境ではこうすれば出来ましたっていうのを書いておこうと思います。

環境

  • windows 10
  • VirtualBox 5.1
  • Ubuntu16.04 LTS
  • python 3.5.2

※windowsマシン上のVMにUbuntuを入れています

本題

MeCabと辞書データのダウンロード

ターミナルで以下のコマンドを実行する

$ sudo apt-get -y install mecab libmecab-dev mecab-ipadic-utf8 mecab-jumandic-utf8

MeCabのpythonへのバインディング

※2017/11/06 追記

pip3 install mecab-python3

念のためこれをしておいたほうが良いそうです

CRF++ のダウンロード

こことかから最新版をダウンロード(.tar.gz)。現在はver. 0.58でした。
適当なディレクトリにおいて解凍。移動。

$ tar zxvf CRF++-0.58.tar.gz
$ cd CRF++-0.58

バグがあるので修正

$ vim node.cpp
#include <time.h>  (追記)

保存して閉じてインストール

$ ./configure
$ sudo make
$ sudo make install

CaboChaのダウンロード

こことかからダウンロード。したのだが最新版(cabocha-0.69.tar.bz2)はどうやっても失敗。仕方なくcabocha-0.60.tar.gzをダウンロード。
適当なディレクトリにおいて解凍。移動。

$ tar xzvf cabocha-0.60.tar.gz
$ cd cabocha-0.60

バグがあるので修正

$ sudo vim /etc/ld.so.conf
include /usr/local/bin      (追記)

実行

sudo /sbin/ldconfig

もう一つ修正

$ vim src/utils.cpp
utils.cpp
void Unlink(const char *filename) {
#if defined(_WIN32) && !defined(__CYGWIN__)
  ::DeleteFileA(filename);
#else
  //::unlink(filename);  削除
  ::remove(filename);   //追記
#endif
}

保存して閉じてインストール

$ ./configure --with-mecab-config=`which mecab-config` --with-charset=utf8
$ sudo make clean
$ sudo make
$ sudo make install
$ sudo /sbin/ldconfig

cabochaを実行してみる

$ cabocha
$ (好きな文章)

python3系へバインディング

$ sudo apt-get install swig python3-dev
$ cd cabocha-0.60
$ swig -python -shadow -c++ swig/CaboCha.i
$ mv swig/CaboCha.py python/
$ mv swig/CaboCha_wrap.cxx python/

python3系に対応するため書き換え

$ cd python
$ vim setup.py
setup.py
def cmd2(str):
    #return string.split (cmd1(str)) 削除
    return cmd1(str).split()   #追記

保存して閉じて実行

$ sudo python3 setup.py build_ext
$ sudo python3 setup.py install
$ sudo /sbin/ldconfig

※pyenvを使っている場合はインストール場所がおかしくなる場合があるので注意

$ python3
$ import CaboCha

エラーが出なければOK。これでインストールは終了です。適当に遊んでみて下さい。

おわりに

お疲れ様でした。
軽く触ってみた感じなかなか精度が良くインストールに少しばかり手間取りましたがそれに見合うメリットはありそうです。
いろいろと遊んでみた結果については別途記事にできればと考えています。
それでは良き自然言語処理ライフを!

参考

http://taku910.github.io/mecab/
https://taku910.github.io/cabocha/
http://qiita.com/nezuq/items/f481f07fc0576b38e81d
http://azwoo.hatenablog.com/entry/2015/10/01/234434
https://www.trifields.jp/install-cabocha-in-ubuntu-1038

Sylba2050
Qiitaはメモ帳 コメント欄は見ていません 編集リクエストは確認します 何かあったらtwitterへどうぞ Twitter: https://twitter.com/mstn_
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした