gensim で LDA 回してみた。

gensim を使えば簡単に topic model が使えるみたい。

適当なテキストが転がってたので LDA (Latent Dirichlet Allocation) を回してみた。

 

LDA

 

簡単すぎて吹いた。

でも、パラメータをどうしたらいいのか分からないのでトピック数以外はデフォルト。

https://groups.google.com/forum/#!topic/gensim/ojySenxQHi4 なんか見っけたけどよくわからなかった。

とりあえず、道具としては使えるようになりそう。

 

実は2ヶ月ぐらい前にやった内容だけど、どこかに書き留めておかないと忘れてしまいそうなので。

これからは何かやったら書くようにしたい・・・。

 

 

 

Debian Wheezy に MeCab と CaboCha を入れた。

ソースから入れた。めも。

MeCab

wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz

tar xvf mecab-0.996.tar.gz

cd mecab-0.996/

./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only

make

make install

mecab -v 

IPADIC

tar xvf mecab-ipadic-2.7.0-20070801.tar.gz 

cd mecab-ipadic-2.7.0-20070801/

./configure --prefix=$HOME/local --with-charset=utf8

make

make install

echo '大阪は今日も熱い。' | mecab

 

Python and Ruby Bindings

sudo apt-get install python-dev するのを忘れずに。

 

ruby extconf.rb --with-opt-lib=/usr/local/mecab/lib

入れたら libmecab.so.2 がないとか言われたから、/etc/ld.so.conf あたりに一行追加

/home/*/local/lib

 

 

CaboCha

CRF++

 wget https://crfpp.googlecode.com/files/CRF%2B%2B-0.58.tar.gz

tar xvf CRF++-0.58.tar.gz

cd CRF++-0.58/

./configure --prefix=$HOME/local

make 

make install

 

CaboCha

wget https://cabocha.googlecode.com/files/cabocha-0.66.tar.bz2

tar xvf cabocha-0.66.tar.bz2 

cd cabocha-0.66/

 LDFLAGS="-L$HOME/local/lib" CPPFLAGS="-I$HOME/local/include" ./configure --prefix=$HOME/local --with-charset=utf8

make

make install

 

$CABOCHA/src/utils.cpp に #include <unistd.h> を追加した

 

Python and Ruby Bindings

ruby extconf.rb --with-opt-lib=/usr/local/mecab/lib

 

SPARQL であそぼう。

SPARQL を使って DBpedia から NBA player に関する情報を取得してみた。


SELECT ?person ?team ?position ?height
WHERE {
  ?person a dbpedia-owl:BasketballPlayer;
   dbpedia-owl:team ?team.
  ?person dbpedia-owl:height ?height.
  ?person dbpedia-owl:position ?position.
  ?team dbpprop:conference ?conference.


  FILTER(?conference = <http://dbpedia.org/resource/Western_Conference_(NBA)> ||
              ?conference = <http://dbpedia.org/resource/Eastern_Conference_(NBA)> )
   
  FILTER NOT EXISTS { ?person dbpedia-owl:activeYearsEndYear ?o }
}
ORDER BY DESC(?height)

Python とか Ruby とかの endpoint interface があるのでとりあえずなんか取ってくるだけなら簡単。 Ruby でやってみた。

https://github.com/otknoy/nba_player_sparql

問題はこれで何をするのか。

入門機械学習

まだ、2章までしか読んでないけどなかなかおもしろい。

まだ、Rをインストールしてないのであとでまた読む。

ちょっとづつ読んでいこう。

 

この本の原題は「Machine Learning for Hackers」なんだけど、「入門」って誤訳だろ。

と思っていたが数式が全然出てこない。だから入門か。

そのかわり、Rのコードがたくさん出てきます。:)

 

入門 機械学習

入門 機械学習

Ruby で XML をパース

REXML は遅いので Nokogiri を使おう。

class Twitter
  def self.read_xml *filenames
    tweets = []
    filenames.each do |filename|
      xml = Nokogiri::XML(open(filename))
      xml.search('feed/entry/title').each do |title|
        tweets.push title.text.gsub(/\n/, '')
      end
    end
    tweets.uniq!

    Twitter.new *tweets
  end

シンタックスハイライトさせたいときはどうしたらいいんだろ。

Pythonで自然言語処理をするために入れたものメモ

環境を整えただけ。まだ何もしてない。とりあえずメモ代わり。てきとーに入れたのでなんかまずいかもしれない。

MacPorts

'sudo port selfupdate'を忘れずに

Python 2.7.3

sudo port install python27
sudo port select --set python python27

NLTK

sudo port install py27-nltk
installが終わったら、pythonのinteractive shellを開き、

import nltk
nltk.download()

GUIが起動するので、allを選択しDonwload. ちょっと待ったらおしまい。

MeCab

sudo port install mecab

CaboCha

sudo port install cabocha

CaboChaもportsから入れたけど、そのままではpythonにうまくbindingできなかった。 sourceからインストールするわけじゃないけど、Google CodeからCaboChaをダウンロードして、その中に入ってるbinding用のscriptを使ったらいけた。っぽい?

cd [CABOCHA_DIR]/python
python seup.py build sudo python seup.py install

libsvm

sudo port install libsvm +python27