自然言語処理(NLP)をやりたい 環境構築編 (Python,Mecab,Cabocha,KHcoder)

自然言語処理できるようになりたい

 日本語NLPで知ったような事が言いたいので、浅く広く急いで勉強する

とりあえす使いたいNLPのソフトウェア

 基本言語:Python

 形態素解析Mecab

 係り受け解析:CaboCha

 (計量テキスト分析:KH Coder)

環境構築① ローカル環境

 構成

  windows10 64bit

  python 3.7.6

  Anaconda 1.7.2

  Mecab 公式32bit 0.996

  CaboCha 公式 0.69

  Mecab-python バインド mecab

 情報散在混乱しすぎで焦る

  大目的はKH Coder以外はPythonで全部操作できるようにすること。

  まず必要ソフトとPython環境の選定フローの存在に気付くのに時間を要した。

  • 前提1:Mecab/Cabochaは単体ソフトウェアで、Pythonから使うならバインディングの為に非公式ライブラリをpipしないと動かない(当然)
  • 前提2:Mecabは公式32bitと野良ビルド64bitがあり、Python32bit/64bitと対応させる必要がある
  • 前提3:CMDはshift-jisだけどPythonはむり、Mecab/CaboChaはutf-8でインストール
  • 前提4:CabochaはMecab公式32bitでないと動かない(まじか)
  • 前提5:WindowsのWheelでVisual C++必要な場合あるから入れといた方がいい

 実施したこと

  1. Mecab32bit、Cabochaを utf-8でインストールしてそれぞれPATHを通す
  2. cmd mecab, cmd cabochaで文字化けしてても作動はしてることを確認
  3. KH coder はひっかりなく起動まで実施
  4. Anaconda Prompt で 32bit Python で仮想環境を構築してからのconda activate
  5. pip install mecabPythonMecabバインディングして、Import MeCabをOKに
  6. Python&Cabochaのバインディング連携を諦めて、Subprocessで動かす(各種Web記事参考にしても解らんので諦念)

 *なぜかPython64bitでもMeCabが動くが神々のいたずらと思って放置

環境構築② Google Colaboratory 

 ローカル環境構築も毎度ながら大変面倒でふと、Google Colaboなら秒で終わるのでは?と思い先人をググるそれっぽいのがあった。神々の偉大さに感謝しながら下記をコピペして起動確認終了。ローカル環境構築の苦労なぞ何のそのである

 !でコマンドになるのがGoogle Colaboの仕様。ただ何もしないと追加インストールしたパッケージ等は消えるらしいので、自分のGoogle Driveマウントした後は下記リンクのような対応が必要。

Google Colab/Drive に pip インストール: これなら消えない😃 - GGCS ごたごた気流調査所

環境構築コード

MecabCaboChaおよびCaboChaの実行に必要なCRF++インストール

# MeCabのインストール

!apt install mecab libmecab-dev mecab-ipadic-utf8

# CRF++のソースファイルのダウンロード・解凍・インストール

FILE_ID = "0B4y35FiV1wh7QVR6VXJ5dWExSTQ"

FILE_NAME = "crfpp.tar.gz"

!wget 'https://docs.google.com/uc?export=download&id=$FILE_ID' -O $FILE_NAME

!tar xvf crfpp.tar.gz

%cd CRF++-0.58

!./configure && make && make install && ldconfig

%cd ..

# CaboChaのソースファイルのダウンロード・解凍・インストール

FILE_ID = "0B4y35FiV1wh7SDd1Q1dUQkZQaUU"

FILE_NAME = "cabocha-0.69.tar.bz2"

!wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=$FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$FILE_ID" -O $FILE_NAME && rm -rf /tmp/cookies.txt

!tar -xvf cabocha-0.69.tar.bz2

%cd cabocha-0.69

!./configure -with-charset=utf-8 && make && make check && make install && ldconfig

%cd ..

 

総括

 ローカル環境構築に時間を要した。MecabもCabochaも飽くまでツールであり、Pythonバインディングしようがしなかろうが、基礎的なプログラムで整形し、N-gramなりに変換する必要がありそう。

 正直な感想は「うっ...めんどくさい…」なので、根幹理論は本めくりつつ、言語100本ノックをまず写経しながらアプリの挙動体験してモチベーションを保ちたい。