LoginSignup
26

More than 5 years have passed since last update.

python3からcabochaを使ってみる

Last updated at Posted at 2018-06-06

python3からcabochaを使ってみた備忘録

こんにちは。
新卒マイナス1年目エンジニアの和尚です。

前回のmecabに引き続き、今回はpython3からcabochaを使えるようにします。
yumで簡単に導入する手段が見つからなかったので、公式サイトに乗っ取ってcabochaを導入していこうと思います。

開発環境

  • centOS6
  • python 3.6.2

この記事の目標

  1. centOS6上でcabochaを使えるようにする。
  2. python3からcabochaを呼び出す。

想定読者

  • (pythonを使用して)自然言語処理初心者
  • エンジニアの卵か雛

事前準備

参考資料
cabocha公式サイト
CRF++公式サイト#download

linux(Unix)でcabochaを利用するには以下のものが必要なのでインストールします。

  • CRF++ (0.55以降)
  • MeCab (0.993以降)
  • mecab-ipadic, mecab-jumandic, unidic のいずれか

mecabとmecab-ipadicは前回の記事を参考にしてインストールしてください。

CRF++のダウンロード

  1. CRF++公式サイトから最新版をダウンロードしてファイル転送ツールを利用してcentOS上に置いてください。
  2. もしくはwgetでファイルをダウンロードしてください。
$ wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ" -O CRF++-0.58.tar.gz

CRF++のインストール

  1. ファイルを解凍します。
  2. ディレクトリを移動します。
  3. インストールします。
$ tar zxfv CRF++-0.58.tar.gz
$ cd CRF++-0.58
$ ./configure
$ make
$ sudo make install

導入完了です。

cabochaを導入する

参考資料
CentOS 7 で MeCab と CaboCha で遊ぶ

cabochaのダウンロード

  1. cabochaの最新版を公式サイトからダウンロードしてファイル転送ツールを利用してcentOS上に置いてください。
  2. もしくはwgetでダウンロードしてください。
$ wget "https://googledrive.com/host/0B4y35FiV1wh7cGRCUUJHVTNJRnM/cabocha-0.69.tar.bz2" -O cabocha-0.69.tar.bz2

※なぜか僕の場合、エラーを吐いたので1でダウンロードしました。自分のgoogle driveに移してからwgetでインストールするなど、各自できる方法でインストールしてください。

cabochaのインストール

  1. ファイルを解凍します。
  2. ディレクトリを移動する。
  3. インストールをします。
$ bzip2 -dc cabocha-0.69.tar.bz2 | tar xvf -
$ cd cabocha-0.69
$ ./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8
$ make
$ make check
$ sudo make install

動作確認

$ cabocha --version
cabocha of 0.69

cabochaをpython3から使ってみる

setup.pyからcabochaを使えるようにする。

$ cd python 
$ python setup.py build_ext
$ python setup.py install
$ sudo ldconfig

※cabocha-0.69/pythonで作業してください。

python3からcabochaを呼び出せるか確認

$ python
>>> import CaboCha

ここでエラーが出なければ成功です。

エラーが出た場合

僕はここでImportError: libcabocha.so.5が出ました。
解決方法として、以下を実行しました。

$ sudo vi /etc/ld.so.conf

/usr/local/libを行末に追加。

$ sudo ldconfig

pythonファイルからcabochaを使用してみる。

ダウンロードしたcabochaに入っていたpythonのサンプルコードを実行してみます。
今回もコードがpython2用だったので、python3で実行できるように若干調整しました。

test.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import CaboCha

# c = CaboCha.Parser("");
c = CaboCha.Parser()

sentence = "太郎はこの本を二郎を見た女性に渡した。"

print(c.parseToString(sentence))

tree =  c.parse(sentence)

print(tree.toString(CaboCha.FORMAT_TREE))
print(tree.toString(CaboCha.FORMAT_LATTICE))
  太郎は-----------D
      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS

  太郎は-----------D

      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS

* 0 6D 0/1 -2.457381
太郎    名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/0 1.509507
この    連体詞,*,*,*,*,*,この,コノ,コノ
* 2 4D 0/1 0.091699
本      名詞,一般,*,*,*,*,本,ホン,ホン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 3 4D 1/2 2.359707
二      名詞,数,*,*,*,*,二,ニ,ニ
郎      名詞,一般,*,*,*,*,郎,ロウ,ロー
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 4 5D 0/1 1.416783
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 5 6D 0/1 -2.457381
女性    名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
* 6 -1D 0/1 0.000000
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。      記号,句点,*,*,*,*,。,。,。
EOS

上記の内容が表示されれば成功です!

最後に

前回に引き続き、自然言語処理によく利用されているcabochaをpython3から利用できるようにしてみました。

お疲れさまでした。

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
26