2008-01-01から1年間の記事一覧

Mercurialでhttps経由でpush

Mac

こっちがmacのpython2.5用のsslの sudo port install py25-socket-sslこれでhttpsにpushできる python-sslの方はpython2.4用?

simpleconsole

Rubyのコンソールアプリ作成フレームワークを使う SimpleConsole - Building Console Apps 満足せる豚。眠たげなポチ。:コンソールアプリケーション用 Ruby フレームワーク SimpleConsole を使ってみた sudo gem install simpleconsoleSuccessfully installe…

gitセットアップ

sudo apt-get install git-core which git[core] excludesfile = /home/user/.gitignore より/home/sho/.gitconfig 編集 [core] excludesfile = /home/sho/.gitignore /home/sho/.gitignore *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.sw[po] t…

初ワンライナー

http://d.hatena.ne.jp/n9d/20080331/1206945041 を見たらワンライナー作りたくなった。 ruby -e 'dirs = Dir::entries("./"); for dir in dirs; puts dir.gsub(/_/, " ") end;' ちょっと必要だったので初めて書いた。zshのhistroyに入っているので確かに便…

論文選別用ワンライナー

最近、修論のためにキーワード検索してまとめてダウンロードしてきた論文などファイルを、いらなかったら消して、いるものは別のディレクトリに移動させて選別している。論文50個選別し終わるまで集中するためのワンライナー作った。 50個選別したらgrowlで…

sudo gem install rfeedfinder feed-normalizer opml

pTeXインストール

~/.profileを編集 export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH macportsでインストール sudo port install pTeX dvipdfmx ghostscript ghostscript-fonts-hiragino which platex-utf8 which dvipdfmxhttp://d.hatena.ne.jp/shokai/200…

http://member.zebo.com/Main?event_key=USERSEARCH&action=ns&keyword=car&tab=review&rPage=1http://reviews.zebo.com/nissan/car?breaker=2

3章 その16 hpricotでHTMLパース

p.49より、HTMLの解析。 pythonではBeautiful Soupを使ってHTMLを解析しているが、RubyなのでHpricotを使う。hpricotは既に3章序盤でHTMLタグ除去にも使ったが、今回はタグの中身を取り出しに深入りしていく。 3章 その2 - 橋本詳解 pylori*style wiki - HTM…

3章 おまけ2 日本語blogの階層的クラスタリング修正、できたクラスタを見てみる

return list.uniqだった所を修正 http://www.bitbucket.org/shokai/collective-intelligence-study/src/tip/03/generatefeedvector-jp.rb def getWordsByKind(node, kind) list = Array.new while node do f = node.feature.split(/,/) if /#{kind}/ =~ f[0]…

3章 おまけ 日本語blogの階層的クラスタリング

日本語データを扱うなら、テキストファイルじゃなくてちゃんとRDBに保存した方が良いですね。区切り文字とかが面倒をかけてきて、今回はクロールしてきたデータの一部を手動で修正してしまった。 できた。→大きいサイズ http://www.flickr.com/photos/shokai…

3章 その15 K平均法でblogをクラスタリング

データ群をK個のクラスタに分けるために、「いちばんしっくり来るK個の重心」を再帰で見つけるK平均法を使う。 このページのインデントわかりづらくてイライラした。 このアルゴリズムは階層的クラスタリングより全然速い。 p.47~48より clusters.rbにkclust…

配列の初期化と参照

p.47でK平均法をやっていて、2次元配列(配列の配列)が必要になった。 ループで空の配列を作っているが bestmatches = [[] for i in range(4)] Rubyだと、Array.newの引数で要素数と初期値を指定できる >> arr = Array.new(3, 10) # 要素数3で初期値10の配…

RMagickインストール

sudo apt-get install libmagick9-dev libmagick++9-dev imagemagick sudo gem install rmagick gemからのrmagickインストールでこける Building native extensions. This could take a while... ERROR: While executing gem ... (Gem::Installer::Extension…

rsyncで転送

rsync -t -r -z ~/src/ruby/collective/ username@zanmai.com:~/src/ruby/collective/逆にするとssh経由で取ってこれる

gitインストール

Mac

sudo port search gitcogito devel/cogito 0.18.2 Git core and cogito tools to provide a fully-distributed SCM git-core devel/git-core 1.5.5.1 The stupid content tracker. stgit devel/stgit 0.14.1 Push/pop utility on top of GIT cgit www/cgit 0…

3章 その13 blogクラスタのビジュアライズ

p.42~44より、blogクラスタの図を描く。 Python Imaging Libraryの代わりに、RMagick http://d.hatena.ne.jp/shokai/20081112/1226502119 を使う。使い方も関数名もほぼ同じなので簡単。あと配列内の一番大きい要素を返すArray.max関数を使った。 http://www…

3章 その12 irbのloadとrequire

3章では、hcluster関数(http://d.hatena.ne.jp/shokai/20081112/1226473410)の処理がMacbookだと3分ぐらいかかるので、何度もやりたくない。 でもhcluster関数で作った階層的クラスタをビジュアライズする処理は何度も試行錯誤したいので、irbのloadし直しを…

ImageMagickでテキストを画像に変換

convertコマンドが増えてる convert -size 100x80 -font '/Library/Fonts/Arial.ttf' label:"AA\nA" label.png画像作れる

3章 その14 単語のクラスタリング

p.44より clusters.rbに行列反転を追加 # 行列の入れ替え def rotatematrix(data) newdata = Array.new for i in 0...data[0].length newrow = Array.new for j in 0...data.length newrow.push(data[j][i]) end newdata.push(newrow) end return newdata en…

3章 その10 階層的クラスタの出力

名前付き引数をインクリメントだと勘違いしてた。 printclust(clust.left, labels=labels, n=n+1) のn=n+1はpythonでは名前付き引数なので、別にインクリメントしているわけじゃなかった。 cluster.rbにprintclust関数を追加 http://www.bitbucket.org/shoka…

3章 その9 階層的クラスタを作成

単語出現回数のリストを要素(vec)に持つ2分木ノードbiclusterをつなぎあわせて、p.36で解説されている内容が近いblog同士の階層的クラスタを作る。距離の計算は関数ポインタになっていたので、Object#method関数を使って http://www.ruby-lang.org/ja/man/ht…

zshインストール

Mac

インストール sudo port install zsh /etc/shellsを編集 # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/zsh /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcshchshで /b…

3章 その8 hashのkeyに配列を使う

p.39のhcluster関数の distances = {} if(clust[i].id,clust[j].id) not in distances: distances[(clust[i].id,clust[j].id)] = distance(clust[i].vec,clust[j].vec) がいまいちわからなかったんだけど、よく見たらリストをキーにとるディクショナリ(ハッ…

pinMode(0, true); serialInit(2400); // 通信速度遅め function onSerialReceive(success){ data = serialRead(); for(i = 0; i < data.length; i++){ c = data.charAt(i); // 1文字ずつ処理 switch(c){ case "a": digitalWrite(0,true); break; case "b": …

3章 その11 RMagickで図を描く

p.42から、Python Imaging Library(PIL)で階層的クラスタをデンドログラムにしてビジュアライズしているので、Rubyでも何とかして絵を描きたい。Processingとか使えれば楽なんだけど。今回のグラフに必要なのはテキストの配置とラインを引く事だけなので、Im…

3章 その6 クラスタの木構造

Biclusterとして、階層的クラスタのための2分木のクラスを作る 一応アクセサも用意しておいた http://www.bitbucket.org/shokai/collective-intelligence-study/src/82884830d372/03/bicluster.rb class Bicluster def initialize(vec, left=nil, right=nil,…

3章 その5 ピアソン相関距離の計算

2章で実装した http://d.hatena.ne.jp/shokai/20081004/1223126485 とは別に作る。 p.38より ピアソン相関距離を計算する関数をclusters.rbに追加http://www.bitbucket.org/shokai/collective-intelligence-study/src/82884830d372/03/clusters.rb # ピアソ…

3章 その4 単語頻出表の読み込み

pythonのstring.stripは指定文字を削除する関数で、引数無しだと文字列前後の空白を除去する。rubyにも引数なしのstripがあって、同じ働きをする p.37より、cluster.rbを作成して前回generatefeedvector.rbで作成した単語頻出表(myblogdata.txt)から単語名な…

3章 その7 pythonのrange、rubyの..と...

前の章から出てきたrange関数はrubyでは..か...で使えるが、それぞれちょっと違う。 これややこしいな。どう覚えればいいんだろirbで試す >> for i in 0..5; puts i; end 0 1 2 3 4 5 => 0..5 >> for i in 0...5; puts i; end 0 1 2 3 4 => 0...5 pythonだと…