イントロ
japanR2015参加してきました!
個人的にはLTが濃すぎて、メインの発表に負けてないのが面白かった。
んで、その懇親会にてKobe.Rの主催kawa(※)さんから本情報をいただきましたので、
早速やってみよう!と思ったと同時に、布教を目的に。
※ちなみに主催者の方というのは後で気がついてガタガタしております。。。
ってかnysolってなに?
読み方は「にそる」
公式ページnysolによりますと。
大規模な表構造データ(CSVデータ)を効率よく処理する目的で開発されたオープンソースのコマンド群である。一般のPCでも数千万件〜数億件のCSVデータを処理できる。
・・・ん?
一般のPCでも数千万件〜数億件のCSVデータを処理できる。
はい?
一般のPCでも数千万件〜数億件のCSVデータを処理できる。
工工工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工
というわけで、さようならExcel、Acceess。
dmgによるインストール
結果的にはrvmが入っていると失敗するようです。
という訳でこの章は読み飛ばしてもOK。
ソースインストールする場合、アンケート回答後に表示されるURLから「nysol-2.3.1.tar.gz」をダウンロードしておきましょう。
〜〜〜以下、失敗の記録〜〜〜
まずはユーザ登録をする必要がありますので、そちらをすませましてと。
※詳細は略しますが、メールアドレス登録、氏名登録、利用目的等を聞かれました。
nysol-2.3.1.dmgをダウンロードしました。
が、
インストール失敗!ヒャッハー!!!
公式ページにヒントは、ヒントはないのかと、
探したところばっちり書いてありました。
rubyのバージョンは2.0.0p247で動作の確認はとれている。ただし、rvmがインストールされた環境ではうまくインストールできない。よってrvm環境でインストールするにはソースインストールを実行する必要がある
うちのmacちゃんrvmはいってるわぁ。。。
「ドキュメントくらい読めやカス!」とののしられそうですが、
それくらいではめげません。
むしろ気持ちいいです。
実施したインストールコマンド
公式インストールページの「4) ソースインストール」を参考に下記を実施しました。
なお、アンケート回答後に表示されるURLから「nysol-2.3.1.tar.gz」をダウンロードしておき、解凍しておきましょう
tar xvfz nysol-2.3.1.tar.gz
cd nysol-2.3.1
実施した環境
OS X ver:10.8.5
ruby:rvmでruby-2.0.0-p247に調整
なお、公式には「Mac OS X 10.9.2 (Marverix)」でのみ動作環境確認済みとのことなので、人柱確定。
4-1) 開発環境
xcodeのインストール後、Command Line Toolsのインストールも必要
という事でしたので、Command Line Toolsが入っている事を確認し、この章は完了。
4-2) C++ boostライブラリのインストール
公式まんまの下記コマンドを実施。
※コマンド完了まで20分以上かかりました。
wget http://sourceforge.net/projects/boost/files/boost/1.52.0/boost_1_52_0.tar.gz
tar zxvf boost_1_52_0.tar.gz
cd boost_1_52_0
./bootstrap.sh
./bjam
sudo ./bjam install
4-3) libxml2, libiconvのインストール
Mac Marverixには、元から両ライブラリはインストールされているため、この手順はスキップして問題ない。
/usr/libにlibxml2.dylibとlibiconv.dylibがあるはずで、なければ新たにインストールする必要がある。
インストールされていなければ、以下のサイトからインストールする。
libxml2 : http://xmlsoft.org/
libiconv : https://www.gnu.org/software/libiconv/
ハハッ!!バージョンアップシテナカッタヨ。。
というわけで下記を実施
libxml2のインストール
まずは、リンク先が英語できょどりましたが、、
brewを入れていたので、infoでNotInstalledを確認後、以下を実施しました。
brew info libxml2
brew install libxml2
libiconvのインストール
上記同様に
brew info libiconv
brew install libiconv
4-4) nysolのコンパイル&インストール
やっとたどり着いた
rubyのバージョンは2.0.0p247で動作の確認はとれている。
という事を思い出し、rvmから利用するrubyのバージョンを慌てて変更する
rvm use ruby-2.0.0-p247
ここから公式通りのコマンドを実施
makeに大体15分程度
installに大体1分程度
aclocal ; autoreconf -i ; automake --add-missing
./configure
make
sudo make install
動作確認
これも公式通りで、下記を実施した。
mcut --help
mitemset.rb --help
キタ!!!動いた!!!
mcut 項目の選択
===============
指定した項目を選択する。
-rオプションを付けると、指定した項目を削除する。
書式
----
mcut f= [-r] [-nfni] [i=] [o=] [-nfn] [-nfno] [-x] [--help][--version]
パラメータ
・・・・省略
----------------------------
mitemset.rb version 1.1
----------------------------
概要) LCMにより多頻度アイテム集合を列挙する
特徴) 1) 分類階層を扱うことが可能
2) 頻出パターン, 飽和頻出パターン, 極大頻出パターンの3種類のパターンを列挙可能
3) クラスを指定することで、上記3パターンに関する顕在パターン(emerging patterns)を列挙可能
書式) mitemset.rb i= [x=] [c=] [O=] [tid=] [item=] [taxo=] [class=] [type=] [s=] [S=] [l=] [u=] [p=] [top=] [-replaceTaxo] [T=] [--help]
例) mitemset.rb i=basket.csv tid=traID item=商品
次のステップ
まだすべてのコマンドをテストした訳ではないので何ともですが、
一つ目の山を超えました。正直ここからが本番だと思います。
という訳で、まずは数千万、数億件のデータ作んなきゃ♩(白目
・・・・だれか、、、数億件のデータくれないすかね。