stMind

about Tech, Computer vision and Machine learning

perl

AnyEvent::Twitter::Streamでメダル獲得の瞬間を逃さない

オリンピック、メダルラッシュで嬉しいですね! この後も、レスリング、なでしこなどメダルが期待出来る競技が続きますし、メダル獲得の瞬間は逃さず盛り上がりたい! ということで、「金|銀|銅」「おめでとう」のツイートを通知するスクリプトを書いてみま…

RILで既読数の取得にstats APIを使う

前回、stateがreadのitemを全部取得して既読数を計算したが、未読数や既読数などの統計情報を取得するためのAPIがあったので、それを使うように変更した。 stats API Method URL Parameters (GET or POST) apikey 必須 username 必須 password 必須 format j…

Github API v3を試す Users API編

Github API v3を読みながらテスト。Users | GitHub API テスト base_urlはhttps://api.github.com/ Get a single user https://api.github.com/users/satojkovic List followers of a user https://api.github.com/users/satojkovic/followers List users fo…

Google+をGrowlする

最近、アクセス頻度も落ちてきてるけど確認はしたいよねってことでGoogle+のストリームをGrowlするスクリプトを書きました。 Google+のAPIは使ってません。WWW::MechanizeとWeb::ScraperでGoogle+のページをスクレイピングして、 AnyEventのタイマーで30分に…

Google Plus API Test

Google Plus APIのテスト。google_plus.pl at master from satojkovic/GooglePlus - GitHub #!perl use strict; use warnings; use Config::Pit; use WebService::Simple; ## APIKey and UserID my $config = pit_get("plus.google.com", require=>{ "APIKey…

AnyEvent::Twitter::StreamとGrowl::Anyでinstagramをデスクトップに通知する

instagramのAPI公開が待ち遠しい今日この頃ですが、instagramのリンク付きtweetを拾ってGrowlで通知するスクリプトを書いてみました。別のことをしながらでもinstagram付きのtweetがお手軽に確認できます。 スクリプトソース ソースは、AnyEvent::gist: 8018…

instagram→twitter→mixiフォトで写真をもっと共有する!

instagramって写真撮影をすごくカジュアルにしてくれた素晴らしいサービスだと思っていて、instagramの写真をmixiでも共有したい!ということでスクリプトを書いてみました。 実は、最初はinstagramの非公開APIを使ったスクリプトを書いていたんですが、自分…

AnyEvent::Twitter::StreamをGrowl::AnyとMac::Growlで

AnyEvent::Twitter::Streamにあるサンプル(track.pl)を使ってツイートをGrowl::Any+Mac::Growlで通知するようにしてみた。ほとんどtrack.plそのままだけど一応ソースは以下。 gist: 643223 - GitHub #! /usr/bin/env perl use strict; use warnings; use …

YAPC::Asia Tokyo 2010

Perl loverのPerl loverによるPerl loverのためのカンファレンス。 YAPC::Asia Tokyo 2010に行ってきました。 見たトーク Day1 That Goes Without Saying (or Does It?) Larry Wall CloudForecastの紹介 長野雅広 モダンな Perl5 開発環境について - Modern …

BMVC2010の論文PDFをダウンロードするスクリプトの修正

BMVC2010の論文PDFをダウンロードするスクリプトを修正しました。論文名に禁止文字(ダブルクォーテーションとコロン)があった場合に、論文番号をファイル名にするように変更しました。更新したスクリプトファイルはgist: 598048 - GitHubに置いております。

BMVC2010の論文PDFをダウンロードするスクリプトを書いた

BMVC 2010 Papersの論文PDFをダウンロードするスクリプトを書きました。実行すると、論文毎のページにアクセスして、論文名.pdfの形式で保存します。全部ダウンロードするのに大体10分くらいかかります。 #! /usr/bin/perl use warnings; use strict; use …

perl de 集合知プログラミング(7) 2章完

2章の残り 今回は、2.7「アイテムベースのフィルタリング」で推薦を行うところと、2.8の「MovieLensのデータセットを使う」ところを実装しました。これで、エクササイズが残っていますが、2章「推薦を行う」が完了しました!2.8は単にデータファイルを取り込…

perl de 集合知プログラミング(6.5)

2.7 アイテムベースのフィルタリング ここではアイテムベースのフィルタリングを実装してみます。アイテムベースの協調フィルタリングでは、あるユーザへ推薦を行う際に、アイテム間の類似度を基に、そのユーザが高く評価しているアイテムと似たアイテムを提…

perl de 集合知プログラミング(5.5)

今までソースコードの中にデータセットを直接書いていましたが、データセットのファイルを別に用意して読み込むように変更しました。 データセット 用意したのは、以下のようなJSONフォーマットのファイルです。 ciritics.json { "Lisa Rose" : { "Lady in t…

perl de 集合知プログラミング(5)

2.5 似ている製品 2章も半分まで来ました。今回は、ユーザではなくアイテムを軸にして、あるアイテムと類似しているアイテムを推薦するサンプルです。類似性スコアを算出するサブルーチンはそのまま使えて、入力として与えるハッシュのキーであるユーザとア…

perl de 集合知プログラミング(4)

2.4 アイテムを推薦する 今回は、ユーザ間の類似性スコアとアイテム(作品)の評価点を用いて作品をランキング化して提示するサンプルを実装しました。getRecommendationsサブルーチンを追加しました。これまでとほとんど同じで、新たに使ったのはexists関数…

perl de 集合知プログラミング(3)

2.3.4 評者をランキングする 今日は2.3.4節を実装してみました。指定したユーザに最もマッチするユーザを求めるtopMathcesサブルーチンを作りました。topMatchesは、データセットとユーザ名に加えて、結果の数と類似性スコアを求める関数(のリファレンス)…

perl de 集合知プログラミング(2)

ピアソン相関係数による類似性判定 2.3.2節のピアソン相関によるスコアを実装してみました。相関係数の計算は、集合知プログラミングの付録にある数式ではなく、Wikipediaにある以下の数式を使って求めました。 相関係数 出来たもの ユークリッド距離の時と…

perl de 集合知プログラミング(1)

集合知プログラミングを題材に、機械学習とperlを学んでいこうと思っています。 ユークリッド距離を基にした類似性判定 今回は、2章の協調フィルタリングの中の2.3.1節をperlで実装してみました。pythonのサンプルコードをそのままperlにしただけです。 #! /…

 メモメモ

新宿の紀伊国屋でオライリー本を買ったらメモ帳がついてきました。 Javascriptとか他のシリーズもあったらほしいなぁ。

 今度はNHKスペシャルの放送予定を取り出してみる

今回はXPathを使ったよ。nhk_scraper.pl #! /usr/bin/perl use strict; use warnings; use Web::Scraper; use URI; use YAML; my $uri = 'http://www.nhk.or.jp/special/schedule/index.html'; my %nhk_scraper; $nhk_scraper{'tweek'} = scraper { process …

 改行コード変換

bad interpreter: No such file or directory ! が出たら改行コードが怪しいぞ、と。 メッセージはperlではなくシェルが出している。 Windowsで作成したスクリプトをUnixで実行するときなどは注意する。 Win -> Unix へは $ perl -pe 's/\r\n/\r/' winfile …