前提
この記事は、Ubuntu 20.04LTSにMeCab(mecab-ipadic-neologd)とCaboChaをインストールし、pythonで使用できるようにするまでをまとめた記事です。
※本記事は以下の記事を大いに参考にさせて頂き、インストール場所など補足で記述しております。
- ubuntu 18.10 に mecab をインストール
- CabochaのUbuntuへのインストール(Pythonでテスト)
- curlやwgetで公開済みGoogle Driveデータをダウンロードする
MeCab(mecab-ipadic-neologd)のインストール
MeCabのインストール
まずMeCabをインストールします
$ sudo apt install mecab
$ sudo apt install libmecab-dev
$ sudo apt install mecab-ipadic-utf8
入力を求められた場合は、全てy(yes)で大丈夫です。
インストールできているか確認します。
$ mecab
特急はくたか
特急 名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
く 動詞,自立,*,*,カ変・クル,体言接続特殊2,くる,ク,ク
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ
EOS
上記のように出力されたら、インストール成功です。
辞書はipadicを使用しているので、また正しく分割されません。
mecab-ipadic-neologdのインストール
次に、固有表現に強い辞書のmecab-ipadic-neologdをインストールしていきます。
$ git clone https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ sudo bin/install-mecab-ipadic-neologd
上記を実行したときに、make is not foundのエラーが出る場合があります。
[install-mecab-ipadic-NEologd] : Start..
[install-mecab-ipadic-NEologd] : Check the existance of libraries
[install-mecab-ipadic-NEologd] : find => ok
[install-mecab-ipadic-NEologd] : sort => ok
[install-mecab-ipadic-NEologd] : head => ok
[install-mecab-ipadic-NEologd] : cut => ok
[install-mecab-ipadic-NEologd] : egrep => ok
[install-mecab-ipadic-NEologd] : mecab => ok
[install-mecab-ipadic-NEologd] : mecab-config => ok
[install-mecab-ipadic-NEologd] : make is not found.
エラーが出た場合は、build-essentialを再インストールし、もう一度mecab-ipadic-neologdをインストールします。
$ sudo apt install --reinstall build-essential
$ sudo bin/install-mecab-ipadic-neologd
上手くいくと/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
にインストールされます。
mecab-ipadic-neologdのインストール場所が、ipadicの場所と異なるため、移動させます。
$ sudo mv /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd /var/lib/mecab/dic
次にMeCabの辞書の設定がまだipadicになっているので、変更します。MeCabの設定ファイルは、/etc/mecabrc
にあります。
$ sudo vim /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 ⇐ 最初にセミコロン追加
dicdir = /var/lib/mecab/dic/mecab-ipadic-neologd ⇐ 一行追加
; userdic = /home/foo/bar/user.dic
; output-format-type = wakati
; input-buffer-size = 8192
; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n
もう一度、mecabの動作確認をすると、先ほど分割されていた単語が分割されないようになっています。
$ mecab
特急はくたか
特急はくたか
特急 名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー
はくたか 名詞,固有名詞,一般,*,*,*,はくたか,ハクタカ,ハクタカ
EOS
pythonへのバインディング
最後に、python3で使用できるようにします。
$ sudo apt install swig
$ sudo apt install python3-pip
$ sudo pip3 install mecab-python3
$ pip install mecab-python3
pythonから使用するときは、下記のように入力すれば実行できます。
import MeCab
tokenizer = MeCab.Tagger()
print(tokenizer.parse('形態素解析したい文章を入力します'))
python実行時に、下記のようなエラーがでたらmecabrcを指定された場所にコピーします。
$ sudo cp /etc/mecabrc /usr/local/etc/
Cabochaのインストール
###CRF++のインストール
Cabochaを使用するために、CRF++が必要となりますので、wgetでダウンロードし、インストールしていきます。
$ wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ" -O CRF++-0.58.tar.gz
$ tar zxvf CRF++-0.58.tar.gz
$ cd CRF++-0.58
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
cabochaのインストール
次に、cabochaをインストールしていきます。
cabochaのインストーラーはgoogle driveにあり、CUIでの取得が難しいですが、以下の方法で取得が可能です。
$ cd ~
$ FILE_ID=0B4y35FiV1wh7SDd1Q1dUQkZQaUU
$ FILE_NAME=cabocha-0.69.tar.bz2
$ curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=${FILE_ID}" > /dev/null
$ CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"
$ curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=${FILE_ID}" -o ${FILE_NAME}
ダウンロードが成功したら、インストールしてきます。
$ 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
$ sudo ldconfig
インストールが成功していれば、cabochaの実行が可能となります。
$ cabocha
これはカボチャのテストです
これは---D
カボチャの-D
テストです
EOS
pythonへのバインディング
最後にCabochaをpythonから使用できるように、バインディングをしていきます。
$ cd python
$ python setup.py install
pythonから使用するときは、下記のように入力すれば実行できます。
import CaboCha
c = CaboCha.Parser()
sentence = "これはカボチャのテストです"
print(c.parseToString(sentence))
以上で完了です!