YUMで一発、jubatusで文書分類
jubatus 入れると、大規模なオンライン機械学習ができるらしいです。
だけど、入れるのめんどいですね。依存関係とかだるい。
だから、 yum っときました。
(テスト用VMなどに入れて遊んでください。)
RHEL5互換・・・つまり、centos5系とかだと、以下3行をコピれば入ります。
rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -Uvh http://rtilabs.net/files/repos/yum/rh/5/x86_64/rtilabs-release-1-0.noarch.rpm yum install --enablerepo=rtilabs jubatus jubatus-python-client
OR
RHEL6互換・・・つまり、centos6系?とか Scientific Linux 6系 だと、以下2行をコピれば入ります。
rpm -Uvh http://rtilabs.net/files/repos/yum/rh/6/x86_64/rtilabs-release-1-0.noarch.rpm yum install --enablerepo=rtilabs jubatus jubatus-python-client
以上。簡単ですね。
注意:現在 hadoop-zookeeper-server は入りません。入れたい人は自分でどうぞ。 zookeeper-libは入ります。
動作テスト、、、公式のチュートリアルサンプルをコピペして入れてください。
(注意:centos5系では、 pythinは、 python26 とすること。)
自分で学習データ用ファイルとか作らないといけないのがだるいですが、我慢して作ります。
で、やっていくと、 print classifier.clear() って所で落ちます。
[root@localhost ~]# python26 test.py -s localhost:9181 -n tutorial {'converter': {'num_filter_types': {}, 'num_rules': [], 'string_types': {}, 'num_filter_rules': [], 'string_filter_types': {'detag': {'pattern': '<[^>]*>', 'method': 'regexp', 'replace': ''}}, 'string_rules': [{'sample_weight': 'bin', 'type': 'space', 'global_weight': 'bin', 'key': 'message-detagged'}], 'num_types': {}, 'string_filter_rules': [{'type': 'detag', 'suffix': '-detagged', 'key': 'message'}]}, 'method': 'PA'} Traceback (most recent call last): File "test.py", line 63, in <module> print classifier.clear() AttributeError: Classifier instance has no attribute 'clear'
で、ここをコメントアウトするとうまく動きます。
print classifier.clear() ↓ #print classifier.clear()
不思議ですね。
(せっかく魅力的なソフトなんだから、もうちょっとサンプルつくればいいのに。。。)
RPMとSRPMはご自由に。
(/usr/lib64/ に強引に押し込んでいる specですけど。。。)
ここまで作ってこれを見つけたw /( ^o^ )\ なんてこったい
https://github.com/odasatoshi/jubatus-installer
ハックせよ
せっかくだからjubatusをビルドしてみましょう。
ハックするのがオプソの醍醐味の一つです。
#src.rpmをビルド出来る環境を作る。 yum install rpm-build yum-utils #コンパイラなど一式を入れます。 yum groupinstall "Development Tools" #src.rpmを落としてくる。 yumdownloader --enablerepo=rtilabs --source jubatus #ソースパッケージを入れる。 rpm -i ~/jubatus-0.1.1-1.el6.x86_64.rpm #ソースが展開された場所に移動する。 #RHEL5は /usr/src/redhat/SPEC/ の下 cd ~/rpmbuild/SPECS ビルドしたいのですが、その前に依存パッケージを入れます。 yum install --enablerepo=rtilabs msgpack-devel zookeeper-devel やっと、ビルドしてみます。 rpmbuild -bb jubatus.spec できました!(パッケージがね)
各ファイルの場所一覧
場所 | RHEL6 | RHEL5 |
パッケージ | ~/rpmbuild/RPMS/x86_64/ | /usr/src/redhat/RPMS/x86_64/ |
ソースパッケージ | ~/rpmbuild/SRPMS/ | /usr/src/redhat/SRPMS/ |
ビルドディレクトリ | ~/rpmbuild/BUILD/ | /usr/src/redhat/BUILD/ |
SPEC | ~/rpmbuild/SPEC/ | /usr/src/redhat/SPEC/ |
ソースを変更して遊びたい場合は、 ~/rpmbuild/BUILD/jubatus-jubatus-e4b843f/ にファイルがあるから、ここで waf しましょう。
cd ~/rpmbuild/BUILD/jubatus-jubatus-e4b843f/ vim ....ソースを適当に書き換えてみる .... ./waf ./waf install 変更したバイナリを実行!! (いちいちinstallしなくても実行できそうだが・・・)
ENJOY!