意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

自然言語処理、個人的な環境構築メモ

苦痛

いきなりですが、Windows環境でPython3で自然言語処理、というかMeCabをインストールするのは本当に苦痛です。というか、苦痛でした。超辛かった。

でまぁ、具体的に色々と問題点を書いてみるとですね。

Pycharmの2バイト文字出力が酷い

2015-06-14現在のアーリーアクセスプログラム版でも、実行して出てくるコンソールの出力がUTF-8にならない。文字化けする。普通に使っているぶんにはなんの問題もないのだけれど、日本語の自然言語処理を行う際にこれは致命的だと思う。

参考URL


MeCabWindowsにインストールするのが大変

形態素解析用のMeCabというものがあるんだけど、こいつのPythonバインディングを準備するのが苦痛。インストールされているPythonをビルドしたコンパイラと同じバージョンのVC++コンパイラがインストールされていないと、MeCabPythonバインディングをビルドできない。

「Unable to find vcvarsall.bat」の対処法 | Regen Techlog


解決策

  • Vagrant環境のLinux(Ubuntu14.04)にMeCabその他インストール
  • Vagrant側とファイル共有をして、コーディングはWindows環境のPycharmで行う
  • デバッグ作業はPycharmで行う。日本語で実行結果を確認したいときは、Windows側のSSHクライアントからvagrantへ接続して実行する。
  • てかPycharmにこだわりがないなら普通に仮想環境内でVim使ったほうがいいと思う。

    正直これが最適解とは思えないのですが、まぁその辺はお好みで。

    結論

    WindowsでやりたいならPython2.7を使えばいい
    Python3でやりたいならMacLinuxを使えばいい

Ubuntu側でした作業

だいたいここまでやればNLTKのチュートリアルが普通に動くぐらいにはなる。

おまけメモ:覚えておくと便利なお話

www.jetbrains.com

Vagrant init, Vagrant upがプロジェクト内でそのままできちゃうし、VagrantとつながったSSHコンソールがワンクリックで出てくる。強い。

rlcompleter – インタラクティブインタープリタへタブ補完を追加する - Python Module of the Week

インタラクティブシェルでTabキー押すと保管してくれる設定。一旦設定するとこれなしで使える気がしない。

入門 自然言語処理

入門 自然言語処理

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)