★悩み★
・CaboChaとは何?何ができるの?使い方は?
・PythonからCaboChaを使って係り受け解析はできる?
・今からCaboChaを使いたいから、「すぐ実践できる使い方」を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
① CaboChaとは?
② CaboChaとPythonをインストール
③ CaboChaとPythonの使い方
本記事を熟読したことで、1時間以内で「CaboChaとは?の理解からPython経由でCaboChaを使った係り受け解析まで」をできるようになりました。
記事の前半では「CaboChaとは何か?」や「係り受け解析とは何か?」を解説します。
記事の後半では「インストール方法」から「Python経由で使う方法」までを紹介します。
この記事を読み終えることで、「CaboChaを使う上で最低限必要な知識やPythonから使う方法までを把握した」状態になります。
CaboChaとは?
「CaboChaとは?」に関してご紹介します。
★ご紹介事項★
・構文解析(係り受け解析)とは?
・CaboChaとは?できることは?
・動作環境
・料金プランとライセンス
・コミュニティ(開発元)/開発の状況
以降で、上記「ご紹介事項」の各項目に関してご説明します。
構文解析(係り受け解析)とは?
「構文解析(係り受け解析)とは?」に関して解説します。
CaboChaは、係り受け解析ソフトウェアと言われますが、まずは、「係り受け解析って何?」を簡単にご紹介しますね。
構文解析(係り受け解析)を実施すると、以下を実現できます。
上図のように「おいしいりんごを食べた」という文があった場合、「りんご」に修飾している単語を見つける方法として、「係り受け解析(構文解析)」があります。
★係り受け解析とは?★
主語―述語、連体修飾語―体言などの係り受け関係を解析すること。
参照:係り受け解析の定義
上記「係り受け解析」を実施すると、「おいしい」が「りんご」に修飾していることが分かります。
日本語の文において、単語間の修飾関係を明らかにしたい場合、「係り受け解析(構文解析)」の利用を検討しましょう。
CaboChaとは?できることは?
「CaboChaとは?できることは?」に関して解説します。
「どういったツールなのか?」や「できることは?」に関して簡単に紐解いていきますね。
公式サイトでは、以下のように説明されています。
とても端的に「CaboCha(南瓜)とは?」を説明されています。
以下に少し詳しい文言に置き換えたものを記載しますね。
★CaboChaとは?★
機械学習(Support Vector Machines)を用いて、精度高く係り受け解析を実現できるソフトウェアです。
Pythonなどのプログラミング言語からも使えるソフトウェアです。
例えば、CaboChaで「CentOSにCaboChaのインストールができました。」に対して、係り受け解析した結果は、以下となります。
# cabocha
CentOSにCaboChaのインストールができました。
CentOSに-----D
CaboChaの-D |
インストールが-D
できました。
EOS
ちなみに、「CaboCha」は、一般的に以下のように呼称されています。
★呼び方/読み方★
「かぼちゃ」と呼ばれています。
動作環境
「動作環境」に関して説明します。
「どのOS」で使うことができるかをご紹介しますね。
動作環境は、以下となります。
★動作環境★
・Windows
・Mac
・Linux(Ubuntu含む)
参照:対応プラットフォーム一覧(公式サイト)
ちなみに、筆者は、「Windows」「Mac」「CentOS」で使ったことがあります。
本記事の後半で、「Linux(CentOS)」にインストールする方法を説明します。
料金プランとライセンス
「料金プランとライセンス」に関して解説します。
「そもそも無料で利用できる?」の疑問を解消していきますね。
料金プランは、以下となります。
★料金プラン★
CaboChaでは、完全無料で「ダウンロード」「インストール」「係り受け解析」ができます。
完全無料となっている理由としては、以下のライセンスで開発されたOSS(オープンソース)であるためです。
★ライセンス★
「LGPLとBSD(2022年8月20日時点)」のライセンスで開発されています。
上記ライセンスであるため、「個人利用」であれば完全無料で使えます。
参照:ライセンスについて
コミュニティ(開発元)/開発の状況
「コミュニティ(開発元)/開発の状況」に関して説明します。
個人や業務で使う場合、脆弱性などのバグが「どのぐらいの頻度で修正されるか」気になりますよね。以降で簡単に解説します。
コミュニティ(機能開発やバグ修正している団体)の活動状況は、以下のサイトで確認できます。
>> コミュニティのサイト
上記のサイトから、「開発状況」や「修正頻度」を把握できます(下図参照)。
開発状況を見てみると「2011年から2013年までは活発に開発」を実施していたように見えます。
上記より、開発が終了しているソフトウェアであるため、脆弱性などがあった場合は修正されない可能性が高いソフトウェアだとも考えられます。
個人的には、「開発しきっているためバグなどが少なさそう」や「開発が終了している」という観点から、個人での利用は問題ないですが、業務や商用で使う際には「問題あり」と考えています。
CaboChaとは、完全無料で日本語文を係り受け解析できるソフトウェアです。
以降で、インストール方法に関してご紹介しますね。
CaboChaとPythonをインストール
「CaboChaとPythonをインストール」に関してご紹介します。
★流れ★
手順1:MeCabのインストール
手順2:NEologdのインストール
手順3:CRF++のインストール
手順4:CaboChaをインストール
手順5:Pythonのインストール
手順6:PythonでCaboChaを使うためのライブラリのインストール
以降で、上記の各手順に関してご説明します。
手順1:MeCabのインストール
「手順1:MeCabのインストール」に関して解説します。
CaboChaを使いたい場合、形態素解析ソフトウェアであるMecabが必要です。
形態素解析ソフトウェアである「Mecab」をインストールする手順に関しては、以下の記事をご覧ください。
>> CentOSにMecabをインストールする手順【Pythonのソースコードあり】
以上が、「手順1:MeCabのインストール」となります。
手順2:NEologdのインストール
「手順2:NEologdのインストール」に関して説明します。
NEologdをインストールすることで、形態素解析や係り受け解析で「新出単語」や「固有表現」の認識精度を向上できます。
NEologdのインストール手順に関しては、以下の記事「新出単語と固有表現に強いmecab-ipadic-NEologdのダウンロード」の箇所をご覧ください。
>> CentOSにMecabをインストールする手順【Pythonのソースコードあり】
以上が、「手順2:NEologdのインストール」となります。
手順3:CRF++のインストール
「手順3:CRF++のインストール」に関して説明します。
CRF++とは、条件付き確率場のことです。これは、連続データの解析などで利用されます(参照:Wikipedia)。
まずは、CRF++の資材をダウンロードするために、以下のコマンドを実行してください。
# wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ" -O CRF++-0.58.tar.gz
コマンド実行後、以下のコマンドを実行して、CRF++をインストールしましょう。
# tar zxfv CRF++-0.58.tar.gz
# cd CRF++-0.58
# ./configure
# make
# make install
以上が、「手順3:CRF++のインストール」となります。
手順4:CaboChaをインストール
「手順4:CaboChaをインストール」に関して説明します。
Mecab/NEologd/CRF++のインストール後に、ようやくCaboChaをインストールできます。
まずは、CaboChaの資材をダウンロードするために、Webブラウザで以下のサイトにアクセスしましょう。
>> CaboChaのインストール資材をダウンロードできるサイト
アクセス後、「こちら」(下図の赤枠)をクリックします。
クリック後、最新版のCaboCha資材(下図の赤枠)をクリックし、資材をダウンロードしてください。
今回は、「cabocha-0.69.tar.bz2」をダウンロードしました。
資材ダウンロード後、CaboChaをインストールするために、以下のコマンドを順に実行します。
# 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 install
# which cabocha
/usr/local/bin/cabocha
コマンド実行後、「CaboChaのPATH」が表示された場合、「正常にCaboChaをインストールできた」と判断できます。
以上が、「手順4:CaboChaをインストール」となります。
手順5:Pythonのインストール
「手順5:Pythonのインストール」に関して解説します。
PythonからCaboChaを使うことができます。
Pythonで使わない場合は、本手順を省略してください。
以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。
>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】
>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照
>> 【環境構築】インストーラーでMacOSにPythonをインストール
以上が、「手順5:Pythonのインストール」となります。
手順6:PythonでCaboChaを使うためのライブラリのインストール
「手順6:PythonでCaboChaを使うためのライブラリのインストール」に関して解説します。
PythonでCaboChaを使うために、「cabocha-python」ライブラリが必要です。
cabocha-pythonライブラリをインストールするために、以下のコマンドを実行しましょう。
# git clone https://github.com/taku910/cabocha
# cd cabocha
# pip install python/
# pip install git+https://github.com/kenkov/cabocha@0.1.4
# pip list | grep cabocha
cabocha-python (0.69)
コマンド実行後、「cabocha-python (バージョン)」が表示された場合、「正常にcabocha-pythonを導入できた」と判断できます。
以上が、「手順6:PythonでCaboChaを使うためのライブラリのインストール」となります。
上記の流れにより、CaboChaを簡単にインストールできます。
以降では、CaboChaの使い方をご紹介しますね。
CaboChaとPythonの使い方
「CaboChaとPythonの使い方」に関してご紹介します。
★ご紹介事項★
・CaboChaのみの使い方
・PythonでCaboChaを使う方法
以降で、上記の各項目に関してご説明します。
CaboChaのみの使い方
「CaboChaのみの使い方」に関して説明します。
CaboChaを使って係り受け解析を実践してみましょう。
以下のコマンドで、CaboChaを起動し、「CentOSにCaboChaのインストールができました。」を入力します。
# cabocha
CentOSにCaboChaのインストールができました。
CentOSに-----D
CaboChaの-D |
インストールが-D
できました。
EOS
コマンド実行後、上記のように表示された場合、「正常にCabochaを使って係り受け解析ができた」と判断できます。
上記の表示結果より、「CentOSに」は、「できました」に修飾しています。
また、「インストールが」も、「できました」に修飾していることが分かります。
以上が、「CaboChaのみの使い方」となります。
PythonでCaboChaを使う方法
「PythonでCaboChaを使う方法」に関して説明します。
Python経由でCaboChaを使って、係り受け解析を実践してみましょう。
CaboChaを使ったPythonのソースコードは、以下のようになります。
import CaboCha
c = CaboCha.Parser()
text = "CentOSにCaboChaのインストールができました。"
print(c.parseToString(text))
上記のソースコードをpython_cabocha.pyというファイル名で保存しましょう。
その後、以下のコマンドで、python_cabocha.pyを実行してください。
# python cabocha_test.py
CentOSに-----D
CaboChaの-D |
インストールが-D
できました。
EOS
コマンド実行後、上記のように表示された場合、「正常にCabochaを使って係り受け解析ができた」と判断できます。
python_cabocha.pyを実行時に以下のエラーが発生する場合があります。
<エラー内容>
ImportError: libcabocha.so.5
上記エラーが発生した場合は、以下の対処を実施してください。
<対処>
端末上で以下のコマンドを順に実行します。
# echo “/usr/local/lib” >> /etc/ld.so.conf
# ldconfig
上記のように、Python内でCaboChaを使った係り受け解析を簡単に実現できました。
【まとめ】CaboChaをインストールしPythonから使う方法
いかがでしたでしょうか?
上記で紹介した「係り受け解析とは?」「PythonでCaboChaを使う方法」を理解していただくと、操作や使い方で悩むことは一切なくなり、適切な場面で利用できます。
最後にもう一度内容を確認しましょう。
★CaboChaとは?のおさらい★
・「無料」で構文解析(係り受け解析)ができるソフトウェア
・WindowsやMacなどのマルチプラットフォームで使える
・使うためには形態素解析ツールMecabが必要
・Pythonなどのプログラミング言語から利用可能
本ブログでは、筆者が実践したプログラミングに関する情報をまとめています。
自習ネタに困っている方には、以下の記事がオススメです。
>> 現役ITエンジニアが実践してきたこと
コメント