Ubuntu 20.04 で CaboCha を使える様にした時の手順を記録しておきます。
まだインストールしていなければ build-essential をインストールします。
$ sudo apt install build-essential
1. MeCab のインストール
$ sudo apt install mecab $ sudo apt install libmecab-dev $ sudo apt install mecab-ipadic
この時点でコマンド「mecab」を実行して何か文章を入力すると MeCab が形態素解析をしてくれます。
$ mecab 今日はいい天気ですね。 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー は 助詞,係助詞,*,*,*,*,は,ハ,ワ いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ 天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。
2. mecab-ipadic-neologd のインストール
新語に対応した NEologd 辞書(mecab-ipadic-neologd)をインストールします。
$ cd /var/lib/mecab/dic $ sudo git clone https://github.com/neologd/mecab-ipadic-neologd.git $ cd mecab-ipadic-neologd $ sudo bin/install-mecab-ipadic-neologd
「/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd」にインストールされたので、MeCab 実行時に「-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd」を渡してあげると mecab-ipadic-neologd を辞書として使うことができます。
$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd 霜降り明星が好きです。 霜降り明星 名詞,固有名詞,人名,一般,*,*,霜降り明星,シモフリミョウジョウ,シモフリミョウジョー が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 好き 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 。 記号,句点,*,*,*,*,。,。,。 EOS
上では「霜降り明星」が一つの名詞として認識されていますが、デフォルトの辞書だと下記の様に「霜降り」と「明星」が別々の言葉として認識されています。
$ mecab 霜降り明星が好きです。 霜降り 名詞,一般,*,*,*,*,霜降り,シモフリ,シモフリ 明星 名詞,一般,*,*,*,*,明星,ミョウジョウ,ミョージョー が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 好き 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 。 記号,句点,*,*,*,*,。,。,。 EOS
3. CRF++ のインストール
CRF++-0.58.tar.gz
$ cd $ 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 $ sudo ldconfig $ rm CRF++-0.58.tar.gz
4. CaboCha のインストール
cabocha-0.68.tar.bz2 をダウンロードします。Google Drive に配置されているので少し複雑です。
$ 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}
cabocha-0.68.tar.bz2 を解凍、インストールしていきます。
$ 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
先程の MeCab を同じ様に、コマンド「cabocha」を実行して何か文章を入力すると CaboCha が係り受けを出してくれます。
$ cabocha 今日はいい天気ですね。 今日は---D いい-D 天気ですね。 EOS
5. Pythonへのバインディング
Python の仮想環境を立ち上げた状態で下記を実行します。
$ cd python $ python setup.py install $ pip install mecab-python3
下記の通り Python で CaboCha が使える様になりました。
>>> import CaboCha >>> sentence = '霜降り明星(しもふりみょうじょう)は、2018年『M-1グランプリ』14代目王者。' >>> c = CaboCha.Parser('-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd') >>> print(c.parseToString(sentence)) 霜降り明星-----D (しも-D | ふり-D みょうじょう)は、-----D 2018年-D | 『M-1グランプリ』-D 14代目王者。 EOS