Thursday, December 02, 2010

入門 自然言語処理の環境を整える

OSXにはpythonが最初からインストールされているけど、MacPortsでインストールしなおす。
(portでインストールしたい派)

Mac OSX 10.6 Snow Leopardでpython + nltkをインストールした時のメモ。


MacPortsで直接インストールするのではなく、Porticusを使うと便利。

Porticus
・python26
py26-nltk
をインストールする。(py26-nltkは2時間位かかった。)

/Applications/MacPorts/Python2.6/IDLEをを起動させようとすると、コンソールに、
IDLE can't import Tkinter. Your Python may not be configured for Tk.**
とエラーが出ている。

tkinterは64bitだと、まだサポートされていないらしい。
http://stackoverflow.com/questions/3808807/mac-ports-python-2-6-6-and-tkinter

IDLEではなく、通常のターミナルで起動。

# python2.6
>>> import nltk
>>> nltk.download()
Downloader> d
Download which package (l=list; x=cancel)?
  Identifier> book

上記のように、dとbookを入力してreturnを押すと、ダウンロードが始まる。
qで終了させ、
>>> from nltk.book import *
を実行

>>> text1
<Text: Moby Dick by Herman Melville 1851>

うまくインストールできたようだ:D

ただ、Tkinterがインストールできていないから、

>>> text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/nltk/draw/__init__.py:16: UserWarning: nltk.draw package not loaded (please install Tkinter library).
  warnings.warn("nltk.draw package not loaded "
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/nltk/text.py", line 451, in dispersion_plot
    from nltk.draw import dispersion_plot
ImportError: cannot import name dispersion_plot

とエラーがでる例題もあるけれどしょうがない。
Ubuntuでやろうかな。

話がかわるけど、今日読んだRailsのPluginのar_mailerのソールコードはとても勉強になった。
Deamonで起動させるために、Webrickを利用したり、
シグナルが送られて停止する時の処理とか、ファイルロックを利用して2重起動の防止など。

BackgrounDRbも面白そうなので、見てみようと思う。

で、もう1つ。

Lispのコードで、なかなか理解できなかったコードがある。
実用Common Lispの p37のgenerateメソッド。
データ駆動型プログラミングと記述があるのだけれど、かなり難しい。
メソッドは短い(6行)けど、引数のデータを元に、再帰になったり、リストを作ったりしているので、
なかなか理解できなかった。(今も危ういけど)

すらすら読めるようになりたいものです。

No comments: