2008-10-01から1ヶ月間の記事一覧

imapサーバー

magで。cronのまわってるのを見れるので設定した。 mailxやsendmailとpostfixが同時に入ってたら動かない事(当然だな)を学習した。smtpは立てない。 学内サブドメインでメールサーバー立てたらアカウント作り放題。 sudo apt-get install courier-imap cou…

3章 その3 feedlist.txtから単語出現表を作る

http://kiwitobes.com/clusters/feedlist.txt のfeedリストを巡回して、blogから全単語を取り出し、 http://kiwitobes.com/clusters/blogdata.txt と同じフォーマットで単語-出現数リストを作る。 pythonでは大丈夫みたいだけどfeedlist行末の改行がrubyのop…

3章 その2

p33より feedから記事本文を読んで単語の出現回数をチェックする。 htmlから本文を取り出すのに、hpricotを使ってみた。 gem install hpricot まずは、1つのfeedから単語と出現回数を数える getwordcounts(url) を作る。 http://www.bitbucket.org/shokai/co…

3章 その1 simple-rssでRSS/Atomフィードを読む

3章はクラスタリング。 35ページまでかけて複数の英文blogのRSSフィードから単語を切り出し、 http://kiwitobes.com/clusters/blogdata.txt のような単語と出現回数のリストを作っている。このblogdata.txtを使ってしまっても良いのだけど、せっかくだからru…

振動と明るさをシリアル通信で送る

CdSには330Ω serialInit(9600); pinMode(0, true); // 振動センサ function loop(){ var an = 0; var shaked = false; var loopTime = 10; for(var i = 0; i < loopTime; i++){ an += analogRead(0); // 明るさ if(!digitalRead(0)) shaked = true; } an = a…

UbuntuにTeX環境インストール

たまたま同じUbuntu8.0.4上にTeX環境を作っている人がいたので、同じようにやってみた 俺のはもともとインストールしたてなubuntuだから、入ってないパッケージがあったので少し余計に入れてある http://d.hatena.ne.jp/Guernsey/20081005/1223185414 より s…

sudo apt-get install libcv1 libcv-dev sudo gem install objectdetectsudo apt-get install libmagick9 imagemagick librmagick-ruby

python、easy_installインストール

Windowsでpython開発環境を作るのはあんまり良くないのかな。やるならVMWarePlayer+Ubuntuでやった方がいいかも.... windowsでpython環境をつくる。あと集合知プログラミング21ページから使うpydeliciousのインストール。 Python2.5.2をインストールする htt…

重い処理が終わったらgoogle talkで通知する

xmpp4rでjabberのプロトコルが使える。 http://www.sabamiso.net/yoggy/tdiary/?date=20070215 http://d.hatena.ne.jp/Syo-Takasaki/20071121/1195644386 が受信メッセージをそのままエコーするのを作ってて、参考になった。でも今回は送信だけに使う。 sudo…

trac入れる

mercurialで使いたかったがめんどくさすぎて挫折した! sudo easy_install tractrac 0.11.1が入った tracのmercurialプラグインのeggを作ってインストール http://trac.edgewall.org/wiki/TracMercurial svn co http://svn.edgewall.com/repos/trac/sandbox/…

Dokan sshfs

うわー、Dokan使った方が楽だわ http://sho.tdiary.net/20080112.htmlwindows版のfuseがdokanhttp://dokan-dev.net/download/ から Dokanライブラリ Dokan SSHFS の順にインストール。ドライブとしてマウントできる

sshfs

macfuseで使ってたけどwindowsのVMWarePlayer+Ubuntuにもいれて、このディレクトリをsambaで共有しておくとだいたいMacと同じ感じで使えて良さげ sudo apt-get install sshfs マウントする mkdir mnt sshfs username@shooooookai.org:/home/username mnt マ…

さくらにwordpress置くと404になったりならなかったりする

wordpressを新しくおいて、MTからインポートした場合(Mac) ふつうに見える(Win) wordpressにログインしていると見える ログインしていないと404記事は保存されている 「保存」ボタンを押すと全ての環境で見えるようになる

Genericsの要素をComparisonで並べ替え

C#

Comparisonには-1,0,1の3つを返す関数を登録する List<FileInfo> files = new List<FileInfo>(); foreach (FileInfo file in dir.GetFiles("*.jpg")) { files.Add(file); } Comparison<FileInfo> comp = new Comparison<FileInfo>(delegate(FileInfo a, FileInfo b) { int an = extractInt(a.Name); i</fileinfo></fileinfo></fileinfo></fileinfo>…

ruby関連など色々インストール

mercurialはeasy_installから入れた方が調子よいので、aptを消す sudo apt-get remove mercurialsudo apt-get install python-dev python wget http://peak.telecommunity.com/dist/ez_setup.py sudo python ez_setup.py sudo easy_install -U mercurial sud…

samba入れた

VMWarePlayerとUbuntu8.04をwindowsに入れた。 http://www.ubuntulinux.jp/products/JA-Localized/vmware で、sambaを入れた。 sudo apt-get install samba sudo apt-get install nfs-kernel-server nfs-common /etc/samba/smb.conf を修正 coding system = …

2章 その10

これまで、あるユーザに似たユーザリストを計算してから、似たユーザの持つリンクや映画をレコメンドしてきた。これをユーザベースの協調フィルタリング呼ぶらしい。 それに対して、あるアイテムがあり、それに似ているかどうか重み付けされたスコアを持つア…

2章 その9

続き。 1ユーザあたり15件では足りないので、最近の100件を取得できるようにfillItem関数を修正 http://www.bitbucket.org/shokai/collective-intelligence-study/changeset/89c724b7af46/ # すべてのユーザによって投稿されたリンクを取得 def fillItems(us…

2章 その8

続き。これで23ページ、deliciousのレコメンデーションまでできた http://www.bitbucket.org/shokai/collective-intelligence-study/src/0082469f4612/delicious.rb delicious.rbにget_userposts関数を追加 # 指定ユーザのpostをできるだけ全部取ってくる de…

2章まで終わった

作業内容はbitbucketにアップした http://www.bitbucket.org/shokai/collective-intelligence-study/ この本面白いなー。 情報数学とか習ってないけど数式が出てこなくてコードが具体的だからなんとかついて行ける。ここまで15時間ぐらいかかった。 Rubyにも…

2章 その13

p.29より、今度はアイテムベースの協調フィルタリングで推薦をする irbで >> itemsim = c.calculateSimilarItems(prefs,50) 100/1664 200/1664 300/1664 1664件読み込むのに3分ぐらいかかる 87番のユーザに推薦 >> pp c.getRecommendedItems(prefs, itemsim,…

2章 その12

p.27より、 ミネソタ大のGroupLens Projectによって作られた映画の評価データセットを使う。MovieLens(http://www.grouplens.org/node/73) mkdir data mkdir data/movielens cd data/movielens wget http://www.grouplens.org/system/files/ml-data_0.zip un…

2章 その11

その10で、ある映画に似ている映画とその類似度を取れるようになった。 自分がこれまで評価した映画に付けたスコアと、まだ見ていない映画との類似度を使って、まだ見ていない映画に何点をつけるかを予測する。 p.26~27より recommendations.rb にgetRecomme…

2章 その4

今回は関数ポインタが出てくるので、rubyのObject#method関数を使った http://www.ruby-lang.org/ja/man/html/Method.html 全ての人の中から趣向の近い人を求める。全員との相関を計算して、相関係数の高い人から順に並べる。 これまで相関計算方法を2つやっ…

2章 その3

p.13より その2のユークリッド距離を用いた方法では、人それぞれ高い点数を付ける人や低い人など色々いて、その差が相関に影響を与えてしまう。 傾向の差を埋める為にピアソン相関係数を使う。recommendations.rb に sim_pearson関数を追加 class Critics # …

2章 その2

p.11より、2人の全ての映画評価から類似性を計算する(pythonのsum関数は、配列を渡すと要素が数値だったら全て足して結果を返すらしい) recommendation.rbにsim_distance関数を追加 class Critics # Person1とperson2の距離を基にした類似性スコアを返す d…

2章 その1

これをRubyにする 元データを作っておく p.8より recommendations.rb class Critics def users return @users end def initialize @users = { 'Lisa Rose' => { 'Lady in the Water' => 2.5, 'Snake on a Plane' => 3.5, 'Just My Luck' => 3.0, 'Superman R…

2章 その7

Rubyのdelicious用ライブラリのインタフェースが、本に書かれているコードに合わないので適宜自作していくことにした。 あるタグを最近付けられたページの一覧 http://feeds.delicious.com/v2/rss/popular/ruby?count=15あるページにつけられたユーザのコメ…

20ページまできた。 deliciousを読んでるpythonのライブラリと同じ動きをrubyでやってて疲れてきた 全部翻訳は無理かな・・

WWW::Delicious入れた

sudo gem install WWW-Delicioushttp://www-delicious.rubyforge.org/ require 'rubygems' require 'www/delicious' if ARGV.length < 2 puts '引数にuser,passを渡してね' end user = ARGV[0] pass = ARGV[1] d = WWW::Delicious.new(user, pass) puts d.up…