🌟

CaboChaをWindows(WSL/Ubuntu)で使用する手順

に公開

代表的な係り受け解析器であるCaboChaは、UNIXベースで設計されています。
なのでWindowsPCで直接動かすのはハードルが高く、WSLを使うほうが楽です。

当記事は、CaboChaをWindows(WSL/Ubuntu)で使用する手順のメモです。

筆者の環境

私の実行環境は以下の通りです。

OS:Windows11
WSL:Ubuntu 22.04 LTS
Python 3.11.13(※)

※後述しますが、3.12以降だとそのまま動作させることができません。

また、一般権限ユーザ前提の手順になっています。

手順0.WSLに接続して必要なパッケージのインストール

まず初めに、WSLに接続して必要なパッケージを一通りインストールしておきます。

sudo apt update
sudo apt install -y \
  build-essential \
  mecab \
  libmecab-dev \
  mecab-ipadic-utf8 \
  swig \
  python3-dev \
  python3-pip \
  autoconf \
  automake \
  libtool \
  curl \
  xz-utils

手順1.解析エンジンCRF++のインストール

まずはCaboChaをインストールする前に、CRF++という解析エンジンをインストールします。

ダウンロード

以下からCRF++の最新をダウンロードして任意の場所に配置します。
https://drive.google.com/drive/folders/1S8FrgZVQQaZWWp_Gw84v919eFDdyw3Yx

今回私は「CRF++-0.58.tar.gz」をダウンロードしています。

解凍

tar -zxvf CRF++-0.58.tar.gz

解凍すると「CRF++-0.58」というディレクトリが作成されました。

作成されたディレクトリに移動します。

cd CRF++-0.58

※ダウンロードしたバージョンによってディレクトリ名は異なります

コンパイル&インストール

CRF++はc++で記述されています。
解凍先にconfigureがファイルがあるので、これを使ってコンパイル&インストールします。

./configure
make
sudo make install
sudo ldconfig

動作確認

以下のコマンド実行して

crf_test --version

→CRFのバージョンが表示されればOKです。
私はCRF++ of 0.58と表示されました。

手順2.CaboChaのインストール

では、CaboCha本体をインストールしていきます。

ダウンロード

以下からCaboChaの最新をダウンロードして任意の場所に配置します。
https://drive.google.com/drive/folders/12QKBOFCjfaPebMVnXuBTBGX4VvNb5kPF

今回私は「cabocha-0.69.tar.bz2」をダウンロードしました。

解凍

ダウンロードしたファイルをtarコマンドで解答します。

tar -xjvf cabocha-0.69.tar.bz2

解凍すると「cabocha-0.69」というディレクトリが作成されました。
作成されたディレクトリに移動します。

cd cabocha-0.69

※ダウンロードしたバージョンによってディレクトリ名は異なります

コンパイル&インストール

こちらもCRF++と同様にコンパイルしてインストールします。
この時、mecabのconfigの場所と文字コードを指定しておきます。

./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8
make
sudo make install
sudo ldconfig

動作確認

cabocha --version

→cabochaのバージョンが表示されればOKです。
私は「cabocha of 0.69」と表示されました。

手順3.venvの作成

続いてPythonで実行するための環境を構築していきます。

pyenvで3.11に指定

※デフォルトでPython3.11を使用している場合は当手順は不要です。

CaboChaはPython3.12以降で無くなったモジュールを使用しているので、3.11を使用したほうが良いです。3.12以降で無理やり環境構築しようとするとPythonファイルの修正が必要になります。

python3.12以降を使用している場合は、pyenvなどを使って3.11に切り替えるようにします。

pyenv install 3.11.13
pyenv local 3.11.13
pyenv version
python3 --version

→3.11.13と表示されればOKです。

pyenvのインストールは以下のQiitaの記事を参考にさせていただいています。
https://qiita.com/Ryo8-k2arl/items/d7220d4f19c76686ef52

venvの作成

venvを作成してアクティベートします。

python -m venv .venv
source .venv/bin/activate

手順4.CaboChaのPythonバインディングをインストール

続いて、先ほどインストールしたCaboChaをPythonから利用できるように、バインディングを構築します。

手順「2.CaboChaのインストール」でCabochaを解凍した結果作成されたディレクトリに、pythonというディレクトリがあるので、そこに移動します。

cd [Cabocha解凍先]/python

ディレクトリ内にsetup.pyがあるのでこれを使ってinstallします。

python3 setup.py build
python3 setup.py install

これでvenvで構築した環境にバインディングがインストールされました。

手順5.動作確認

CLIでpythonインタプリタを起動して動作確認してみます!

(.venv) .venv $ python3
Python 3.11.13 (main, Jun 22 2025, 15:28:43) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> import CaboCha
>>> c = CaboCha.Parser()
>>> sentence = "すもももももももものうち"
>>> tree = c.parse(sentence)
>>> print(tree.toString(CaboCha.FORMAT_TREE))
すももも-D
    ももも---D
      ももの-D
          うち
EOS

>>>

解析できていることが確認できました!

おわり

Pythonあまり詳しくないなりにいろいろ調べた結果ですので、
不足している点あれば忌憚なくご指摘くだされば幸いです!

参考文献

TakuKudo様の公式ドキュメント
https://taku910.github.io/cabocha/

Discussion