0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows10で、Pythonの64bit環境と32bit環境を共存させて、CaboChaを使えるようにしてみた

Last updated at Posted at 2022-03-11

わたしの環境

  • 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の仮想環境を作成します。
コマンドプロンプトから、以下を順に実行します。

まずはWindosを32ビットへ変更
set CONDA_FORCE_32BIT=1
#set CONDA_FORCE_32BIT=  で64bitへ戻せる
指定の名前で仮想環境を作成,32bitのパイソンをインストール
conda create -n *** -y python=*.*.* pip jupyter

***には任意の名前を指定してください。私は自然言語処理用の環境ということでNLPと付けました。
32bit版だと分かりやすい名前もいいかも知れません。

python=*.*.*にはpythonのバージョンを指定してください。
私は64bit版と揃えておきました。

pip jupyter については、このタイミングでインストールしておきます。

次に、環境を作成した仮想環境に切り替えます。

環境切替
conda activate ***

***には先ほど設定した環境名を入れてください。
ちなみに元の環境に戻す時は以下のコマンドを実行します。

conda deactivate

②32bit版のMeCabをインストール,Pythonで使えるようにする。 

インストール

まずは MeCab です。
・MeCabは公式サイトより.exeファイルを入手してください。
image.png
・.exeファイルでインストーラーを起動し、 UTF-8 を指定してインストールしてください。

Pythonで使えるようにする

・pythonへのバインディングは、↑で紹介したYukinoさんの恩恵にあずかり、pipで簡単に行えます。

MeCabをバインディング
pip install mecab

・最後に環境変数のパスに C:\Program Files (x86)\MeCab\bin を通します。

③32bit版のCaboChaをインストール,Pythonで使えるようにする。

インストール

次に CaboCha です。
・CaboChaは公式のGoogleDriveより、.exeファイルとtar.bz2ファイルを入手してください。
image.png

・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++によるデスクトップ開発にチェックを入れてください。
image.png

・さきほど解凍した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行目 ライブラリファイルの指定

・さて、ようやく前準備が終わりましたので、導入していきます。
 コマンドプロンプトを起動し、以下の手順で進めます。

まずはWindosを32ビットへ変更
set CONDA_FORCE_32BIT=1
仮想環境へ切替
conda activate *** #***は作成した環境名
setup.pyがあるディレクトリへ移動
cd C:\cabocha-0.69\python
CaboChaをバインディング
python setup.py install

以上で導入自体は終了です。(長かった。。。)

④Base環境(64bit)と新しく作った32bit環境をJupyter Notebookから,用途に応じて選択できるようにする。

・先ほどに続けて以下のコードでカーネルを追加します。

カーネルを追加
ipython kernel install --user --name=*** --display-name=***
#--name=***:追加する環境名
#--display-name=***:表示する名前

・以下のように選択できるようになりました。
image.png

終わりに

以上で、全工程が終わりです。
私はググりまくり試行錯誤し半日以上を費やしましたが、
皆さんは少しでも時間短縮できれば幸いです。

参考にさせていただいた記事

windows10 64bitのAnacondaにCaboChaを入れる
WindowsでCaboCha-Python3バインディング
Jupyterで複数カーネルを簡単に選択するための設定
CaboChaをPythonで使う Windows10-64bit
CaboCha & Python3の環境構築(Windows版)

言い訳

※当方、専門教育を受けたことがなく、本業のエンジニアでもありません。
 そのため、用語の使い方やコード内容にお見苦しい点があるかもしれませんが、
 ご指摘ご助言いただければ幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?