MeCabインストールon Mac & Python(あとjson)

タイトルの英語に自信がないが、バイト先のMacBookAirにMeCabを入れてきた。
既に以前こんな投稿をしたような気がするが、なぜかpython上でMeCabをimportできなかったので再度インストールし直すことにした。
最初はmacportsを使えばいいやなどと軽く考えていたが、どうもうまくいかない。
パッケージのインストール自体はすぐにできるのだが、問題はその後importができない。
importをしてもそんなモジュールはないと言われる。
パッケージが違ったのか、PATHが悪いのかとあれやこれや試したが結局は普通にビルドすることにした。
方法自体は別のサイトのほぼ丸パクリに近いがここからpythonの一番新しいバージョンを引っ張ってきて解凍。
解凍先にcdで移動して「sudo python setup.py install」を実行。

うまくいかなかったのはMeCabとPythonとの連携だったようだ。
(実際Python外、bash上からのMeCabは普通に動いていた)

ともかくmacports,MeCab,Pythonの組み合わせは注意、ということで。

同じように最近(悪い意味で)ハマって困っていたsimplejsonのエラー。
バイト先で使うように言われたjsonデータは非常に大きかったのでheadして一部を使用している。が、これでloadがうまくいかない。どういうことか。
調べる内に複数のツイートあった時、simplejsonではツイートとツイートの間にカンマがなければいけない(?)という情報が見つかった。
だが手元のデータはカンマが挟まっていない。
そのデータをどうやって取得しているのかわからないが、後からカンマを挟むのもうまくなさそうだ。
(非常にサイズが大きいため)
そこでデータが1ツイートおきに改行されていることに着目して、1ラインごとにjsonとして読み込むことにする。
が、これもうまくいかずエラー。なにが悪いのかと調べたら使っていたメソッドがloadだった。

f = open(FILE,'r')
for line in f:
   tweet = line.load()

ハマりどころはload。どうやらloadはstringに使えないらしい。string用にloadsがあるということで。
そこでloadsに変えたところ無事プログラムは動いた。
ツイートを大量に書き出す処理は見ていて圧巻だった。