わたしの環境
- Windows 10 64bit
- Python 3.9.7 64bit
- Jupyter Notebook
概要
元々Pythonは64bit環境だけを使っていたのですが、
CaboChaを使うには32bit環境が必要ということで、
様々な先人の記事を参考にさせていただきながら、
試行錯誤で両者を共存させてみました。
大きな流れは以下の通りです。(私はこれだけのことに半日ほどかかりました。。。)
①Baseである64bit環境とは別に、32bitの仮想環境を作成する。
②32bit版のMeCabをインストール,Pythonで使えるようにする。
③32bit版のCaboChaをインストール,Pythonで使えるようにする。
④Base環境(64bit)と新しく作った32bit環境をJupyter Notebookから,
用途に応じて選択できるようにする。
背景
最近自然言語処理を勉強し始め、あの有名な言語処理100ノック 2020(Rev2)に挑戦しています。
色々な方の回答例も参考にしながら、なんとか第5章の「係り受け解析」まで進んだのですが、ここで急ブレーキが...
そうです、Python 64bit環境では、係り受け解析器の CaboCha が使えないのです。
CaboChaには32bit版しか存在しないのです。
第4章までは64bit版で問題なく進めるのですが、ここで大きく躓き苦労しましたので、
私のような初学者の方の参考になればと思いQiitaの記事にしておきます。
ちなみに第4章では有名な形態素解析エンジンの一つである MeCab を導入します。
MeCabも公式には32bit版しかないのですが、 世の中には素晴らしい方(ikegami-yukinoさん)がいて、
簡単に64bit環境でもインストール、Pythonで使用できるよう情報公開してくれている方がいます。
MeCabだけ使えればよい、という方は↓より64bit版で導入することもできます。
Windows用の64-bit版MeCabを簡単にインストールする
WindowsやmacやLinuxにpipでPython用MeCabバインディングをいれる
それでは本題に入りましょう。
①Baseである64bit環境とは別に、32bitの仮想環境を作成
まず32bitの仮想環境を作成します。
コマンドプロンプトから、以下を順に実行します。
set CONDA_FORCE_32BIT=1
#set CONDA_FORCE_32BIT= で64bitへ戻せる
conda create -n *** -y python=*.*.* pip jupyter
***
には任意の名前を指定してください。私は自然言語処理用の環境ということでNLP
と付けました。
32bit版だと分かりやすい名前もいいかも知れません。
python=*.*.*
にはpythonのバージョンを指定してください。
私は64bit版と揃えておきました。
pip
jupyter
については、このタイミングでインストールしておきます。
次に、環境を作成した仮想環境に切り替えます。
conda activate ***
***には先ほど設定した環境名を入れてください。
ちなみに元の環境に戻す時は以下のコマンドを実行します。
conda deactivate
②32bit版のMeCabをインストール,Pythonで使えるようにする。
インストール
まずは MeCab です。
・MeCabは公式サイトより.exeファイルを入手してください。
・.exeファイルでインストーラーを起動し、 UTF-8
を指定してインストールしてください。
Pythonで使えるようにする
・pythonへのバインディングは、↑で紹介したYukinoさんの恩恵にあずかり、pipで簡単に行えます。
pip install mecab
・最後に環境変数のパスに C:\Program Files (x86)\MeCab\bin
を通します。
③32bit版のCaboChaをインストール,Pythonで使えるようにする。
インストール
次に CaboCha です。
・CaboChaは公式のGoogleDriveより、.exeファイルとtar.bz2ファイルを入手してください。
・MeCab同様に.exeファイルでインストーラーを起動し、 UTF-8
を指定してインストールします。
Pythonで使えるようにする
・tar.bz2ファイルはCドライブ直下に解凍し、cabocha-0.69
の状態にしてください。
Windows標準のソフトではtar.bz2は解凍できませんので、別途解凍ソフトをインストールしてください。
ちなみに私は定番(?)の Lhaplus を利用しています。
・MeCab同様に環境変数のパスに C:\Program Files (x86)\CaboCha\bin
を通します。
・Visual C++環境を整えます。
コンパイラが入っていない場合は、マクロソフト公式から入手、インストールしてください。
pythonのバージョンに対応したコンパイラをインストールする必要があります。以下をご参考にしてください。
私は最新のVisual Studio Build Tools 2022をインストールしています。
(WindowsComplilerを参考に作成)
Visual C++ | Python | Visual Studio |
---|---|---|
14.x | 3.5 -3.10 | 2015以降 |
10.0 | 3.3-3.4 | 2009 |
9.0 | 2.6-2.7 or 3.0-3.2 | 2008 |
・インストール時はC++によるデスクトップ開発にチェックを入れてください。
・さきほど解凍したcabocha-0.69 → python →setup.pyの中身を以下のように編集します。
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return cmd1(str).split()
setup(name = "cabocha-python",
version = "0.69",
py_modules=["CaboCha"],
ext_modules = [
Extension("_CaboCha",
["CaboCha_wrap.cxx",],
include_dirs=[r"C:\Program Files (x86)\CaboCha\sdk"],
library_dirs=[r"C:\Program Files (x86)\CaboCha\sdk"],
libraries=['libcabocha'])
])
元ファイルに対して以下を編集しています。
13行目 バージョン
18-19行目 CaboChaのsdkフォルダの場所
20行目 ライブラリファイルの指定
・さて、ようやく前準備が終わりましたので、導入していきます。
コマンドプロンプトを起動し、以下の手順で進めます。
set CONDA_FORCE_32BIT=1
conda activate *** #***は作成した環境名
cd C:\cabocha-0.69\python
python setup.py install
以上で導入自体は終了です。(長かった。。。)
④Base環境(64bit)と新しく作った32bit環境をJupyter Notebookから,用途に応じて選択できるようにする。
・先ほどに続けて以下のコードでカーネルを追加します。
ipython kernel install --user --name=*** --display-name=***
#--name=***:追加する環境名
#--display-name=***:表示する名前
終わりに
以上で、全工程が終わりです。
私はググりまくり試行錯誤し半日以上を費やしましたが、
皆さんは少しでも時間短縮できれば幸いです。
参考にさせていただいた記事
windows10 64bitのAnacondaにCaboChaを入れる
WindowsでCaboCha-Python3バインディング
Jupyterで複数カーネルを簡単に選択するための設定
CaboChaをPythonで使う Windows10-64bit
CaboCha & Python3の環境構築(Windows版)
言い訳
※当方、専門教育を受けたことがなく、本業のエンジニアでもありません。
そのため、用語の使い方やコード内容にお見苦しい点があるかもしれませんが、
ご指摘ご助言いただければ幸いです。