日本語には係り受け関係があって、例えば「青い鳥」の場合は「青い」が「鳥」を修飾している。そういう係り受けの関係を解析できるのがCaboCha(CaboCha/南瓜: Yet Another Japanese Dependency Structure Analyzer)で、Pythonでも利用できる。WSL(Ubuntu 18.04)にCaboChaをインストールして、Pythonで係り受け解析をやってみる。
Windows10(1903)のWSL(Ubuntu 18.04)。CaboChaを利用するためには形態素解析器も必要で、MeCab(MeCab: Yet Another Part-of-Speech and Morphological Analyzer)を使用する。MeCabはインストール済みとする。
CaboChaの使用にはCRF++も必要なのでインストールする。まずはcrfpp downloadsから現時点の最新版(CRF++-0.58.tar.gz)をダウンロードする。curlコマンドなどでダウンロードできないので、Windows10のブラウザでダウンロードしてWSLのディレクトリにコピーした。
ダウンロードしたファイルを以下のコマンドでインストールする。
続いてCaboChaをインストールする。CaboCha downloadsから現時点の最新版(cabocha-0.69.tar.bz2)をダウンロードする。CRF++のときと同様にWindows10でダウンロードして、WSLのディレクトリにコピーした。
以下のコマンドでインストール。デフォルト文字コードはeucなので、MeCabに合わせてutf8に変更する。
CaboChaのライブラリは/usr/local/libにインストールされたが、このパスが共有ライブラリ検索パスにないとCaboChaは動作しない。
CaboChaのライブラリパスを共有ライブラリ検索パスに追加。
再度CaboChaを実行すると、今度は動作した。
LD_LIBRARY_PATHへのパス追加はOSを再起動すると元に戻ってしまうので、再起動しても追加したパスが保持されるようにするには、~/.bashrcに「export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib」を追記しておく。
ダウンロードしたcabocha-0.69.tar.bz2を解凍するとpythonというディレクトリがあり、その中にPython用ラッパーのインストールスクリプトがある。
インストールが完了したらPythonで使用してみる。まずはCaboChaでTree表示をする。
続いて、係り受け解析レイヤの出力フォーマットで表示してみる。
mecab-ipadic-NEologdで形態素解析を新語に対応させるのように、形態素解析を行うMeCabの辞書をデフォルトのIPA辞書からmecab-ipadic-NEologdに変更できる。CaboChaからmecab-ipadic-NEologdを使用するには、以下のようにmecab-ipadic-NEologdのパスを指定する。
環境
Windows10(1903)のWSL(Ubuntu 18.04)。CaboChaを利用するためには形態素解析器も必要で、MeCab(MeCab: Yet Another Part-of-Speech and Morphological Analyzer)を使用する。MeCabはインストール済みとする。
CRF++のインストール
CaboChaの使用にはCRF++も必要なのでインストールする。まずはcrfpp downloadsから現時点の最新版(CRF++-0.58.tar.gz)をダウンロードする。curlコマンドなどでダウンロードできないので、Windows10のブラウザでダウンロードしてWSLのディレクトリにコピーした。
ダウンロードしたファイルを以下のコマンドでインストールする。
CaboChaのインストール
続いてCaboChaをインストールする。CaboCha downloadsから現時点の最新版(cabocha-0.69.tar.bz2)をダウンロードする。CRF++のときと同様にWindows10でダウンロードして、WSLのディレクトリにコピーした。
以下のコマンドでインストール。デフォルト文字コードはeucなので、MeCabに合わせてutf8に変更する。
CaboChaの実行
CaboChaのライブラリは/usr/local/libにインストールされたが、このパスが共有ライブラリ検索パスにないとCaboChaは動作しない。
CaboChaのライブラリパスを共有ライブラリ検索パスに追加。
再度CaboChaを実行すると、今度は動作した。
LD_LIBRARY_PATHへのパス追加はOSを再起動すると元に戻ってしまうので、再起動しても追加したパスが保持されるようにするには、~/.bashrcに「export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib」を追記しておく。
PythonからCaboChaを使う
ダウンロードしたcabocha-0.69.tar.bz2を解凍するとpythonというディレクトリがあり、その中にPython用ラッパーのインストールスクリプトがある。
インストールが完了したらPythonで使用してみる。まずはCaboChaでTree表示をする。
続いて、係り受け解析レイヤの出力フォーマットで表示してみる。
mecab-ipadic-NEologdを使う
mecab-ipadic-NEologdで形態素解析を新語に対応させるのように、形態素解析を行うMeCabの辞書をデフォルトのIPA辞書からmecab-ipadic-NEologdに変更できる。CaboChaからmecab-ipadic-NEologdを使用するには、以下のようにmecab-ipadic-NEologdのパスを指定する。
参考になる記事ありがとうございます。
返信削除Kubuntu 20.04 amd64でやってみたところ、libmecab-devが必要でした。
具体的には、cabochaのディレクトリで
./configure --with-charset=utf8
する前に、
sudo apt install libmecab-dev
でインストールしておかないと、次のmakeでコケるようでした。
もしかしたら、MeCabをインストールしていない状態でCaboChaのインストールしましたでしょうか。さらっと「MeCabはインストール済み」と書いただけだったので、わかりにくかったかもしれません。libmecab-devはMeCabをaptコマンドなどでインストールするときに必要なパッケージです。
削除MeCabをインストール済みだったということであれば、20.04と18.04の環境の違いが理由かもしれません。20.04の環境でインストールしたことがないので、あくまで推測ですが・・