【最終版】MacBookAirで入門自然言語処理の環境構築まで

   

前回こんな感じで入門自然言語処理の環境構築やってみたものの、どうやらダメだったので再度チャレンジ。

Macにはなから入ってるPythonだとmatplotlibが上手く動かない。公式のどこかにも、うまくいかないよ、って書いてあった。

pdf(1_593ページ)

で、色々と検索しているとみつけたのがこれ。

NLTKがPyYAMLに、matplotlibがNumpyに依存する。なお処理系の実装からしてMac用は複数存在するらしく、挙動も微妙に違う模様。
とりあえず上記環境が整うことを目標に節操無く試してみた結果、MacPortsを使ってPythonを1から導入する方法でうまくいった。MacPortsインストールは割愛。

 MacportsでPythonをインストールする方法がいいらしい。

とりあえずMacportsとXcodeをインストールする。それはここを参照すれば良い
ちゃんとXcodeがオプション付きでインストール出来てないとエラーがでるのです。
こんなの

Error: Unable to open port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?

 
しょうがないので再インストール。
Spotlightにxcodeって いれるとInstall Xcodeってのが出てくるからそこからインストールしてMacportsをアップデートする。

$ sudo port selfupdate
$ sudo port sync 

これでPythonがインストールできる。

$ sudo port install python27


ここまでやったら最初に紹介したブログに戻る

Python2.7のインストール、時間かかるな。。。。。。

インストール後、使用するPythonのバージョンを切り替える。ここを参照

インストール済みの python を確認。

$ port select --list python
Available versions for python:
none
python24
python25-apple
python26
python26-apple (active)
python27

さっきので python26-apple (active) ってなってましたが念の為に現在、有効になっている python を確認。

$ port select --show python
The currently selected version for 'python' is 'python26-apple'.

python27 に切り替える。

sudo port select --set python python27
Selecting 'python27' for 'python' succeeded. 'python27' is now active.

切り替わっているのを確認。

$ port select --list python
Available versions for python:
none
python24
python25-apple
python26
python26-apple
python27 (active)

僕の環境では python27をアクティブに。
python27-appleってのも入ってるんだけど、これ使うとmatplotlibが使えないです気を付けて。

sudo port select --set python python27

apple使った時のエラーはこんな感じ。

>>> import matplotlib 
ImportError: No module named matplotlib

で、pythonの確認。

$ which python

/opt/local/bin/python

 切り替え完了。

手順どおり、NLTKのインストール

$ sudo port install py27-nltk

因みにこいつも相当時間がかかる。というか本当に時間がかかるので、寝てる間にやること推奨。

最後に、matplotlibrcを書き換える

$ sudo vim ~/.matplotlib/matplotlibrc

ファイルの中に下記を記入してインストール完了。
backend: MacOSX 

本に戻って、コイツを実行してみる

  >>>from nltk.book import *

>>> text4.dispersion_plot(["citizens", "democracy"])

Figure 1

表示された!これで環境構築完了です。時間かかったわ…

pdf(1_593ページ)

おすすめ記事一覧

 - Tips