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

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その7「階層的クラスタリングによりグループを見つけ出す」

前回は話だけで終わってしまったので、今回はソースコード中心です。 アイテム同士の距離の計算に必要な情報を出力するReducerを実装する という訳で早速ですが、前回延々と話をしていた事をReducerに実装します。 #!/usr/bin/php

Gitを触ってみるよ その5「分散型バージョン管理システムによる開発って生物の進化っぽい」

Gitの仕組みを勉強するにつれて思っていた事なんですが、分散型のバージョン管理システムで進める開発って、何だか生物の進化みたいだなと。今回はそんなお話です。 分散型バージョン管理システムって? 本編の前にまずはおさらいという事で、「分散型バージ…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その6「グループを見つけ出す…の下準備」

今回はちょこっとアルゴリズムの話をしてから、前回作成したMapperで出力したデータを、いかにして欲しいデータの形にするReducerを書くか…という流れでいきたいと思います。 階層的クラスタリングのアルゴリズム 今回対象にする"階層的クラスタリング"は、…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その5「グループを見つけ出す…の下準備…の下準備」

今回から、元書の第3章に入っていきます。第3章は"グループを見つけ出す"というタイトルになっていて、アイテムを複数のグループに分類するアルゴリズムがいくつか紹介されています。今回は、実際にグルーピングをする前段階として、フィード中の単語を数え…

Twitterで名付け語を検索/投稿できるbotを作ってみた…ら、なぜかツンデレ風にしてしまった件

以前からTwitterのBotは何かしら作ってみたかったので、練習がてら、名付けて.ね〜むの検索・登録ができるTwitterBotを作ってみました。 →名付けて.ね〜むBotのTwitterホーム画面 機能 検索 「@naduketename get {意味語}」とつぶやくと、{意味語}に対して登…

AtomPubな何かを作ってみよう その6 〜実装編 Part.05「サービス文書を提供しよう」〜

今回は、サービス文書のお話です。 サービス文書は大事 サービス文書は、"どんなコレクションが存在していて、どんな操作をする事ができる"といった、提供しているサービスの内容が記述されたものです。汎用のAtomPubクライアントでは、サービス文書を元に処…

Gitを触ってみるよ その4「GitHubデビューしてみた」

HadoopStreamingについて書いた記事の時に作ったフレームワークを公開するのにGitHubを使ってみたので、Gitを触ってみるよシリーズの一環として備忘録を…。*1 今回のリポジトリ構成のイメージ 普通であればローカル環境からGitHubにpushできるように、という…

Hadoop StreamingのReducerへの入力の構造化をPHPでやってみた

(今回の記事は、id:naoyaさんの記事をパクってにインスパイアされて、PHPでやってみたものです。話の内容としては概ね同じです。)前回の記事の最後で、「HadoopStreamingはReducerへの入力が構造化されていないという問題点があります。」という事を書きまし…

Hadoop Streamingで分散処理をPHPでやってみた

「何番煎じか分からないけど集合知プログラミングをPHPでやってみたシリーズ」で扱っている集合知プログラミングは、とかく計算量が多くなりがちで、うまくアルゴリズムを作らないとメモリ不足に陥りがちです。現に前回の記事では、その越えられない壁を体験…

Vimから検索&投稿できるようにしてみたい

変数名やら関数名やらを考えるのは当然プログラミング中な訳で、自分の場合はVimmerなのでVimから名付けて.ね〜むのAPIを叩いて、検索&登録できないかちょっと考えてみました。どうするのが良いか色々考えたんですが、Vimの関数として定義しておいて、":hoge…

自然言語による検索ができるような工夫

タイトルだけ見るとスゴイ事をしているように見えてしまいますが(^^;ゞ、そんな仰々しい話では無いです。名付けて.ね〜むのサイトで適当な文章を入力して検索すると、名詞と動詞のみを抽出して、検索対象にするようにしています。こうする事で、登録される単…

プログラマなら誰もが悩む変数名や関数名の名付け共有サイトを作ってみた

プログラマの皆様、 「ここの変数名、何て付けよう?」 「こういう機能の意味の英単語って何だっけ?」 「こんな処理の関数って普通どんな名前付けるんだろう?」 なんて悩んだ事はありませんか?「みんな悩むんなら、みんなで共有しちゃえばいいじゃん!」という…

AtomPubな何かを作ってみよう その5 〜実装編 Part.04「孫リソースの作成とWebアプリケーションとしての使用」〜

前回は、子リソースの作成まで行いました。今回は、残りのリソースも作成して、ひとまず最初に設計した全てのリソースへのCRUDができるようになるところまでやりたいと思います。…と言っても、やる事は前回とほとんど同じになるので、ポイントだけさっくりと…

「独習JavaScript」一からしっかりJavaScriptを勉強したい人にオススメ

自分のJavaScriptの知識が、JavaScriptの暗黒の時代*1が元になっていて、その後も、必要に応じてGoogle先生に聞きながら、「動けばいいや」ぐらいで適当だったので、これじゃいかん…という事で、1冊本を買って勉強する事に。独習JavaScript作者: 高橋和也,竹…

「システムはなぜダウンするのか」…A.そこにシステムがあるから…

本屋をぶらついていた時に、こんな本が目に止まりまして、買ってきて読んでみました。システムはなぜダウンするのか作者: 大和田尚孝,日経コンピュータ出版社/メーカー: 日経BP社発売日: 2009/01/22メディア: 単行本購入: 24人 クリック: 345回この商品を含…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その4「はてブのリンクを推薦するシステムを作ってみる」

前回の予告で、「次回は、del.icio.usのAPIを使って、リンク推薦システム作りに挑戦です。」と書いたんですが、はてブを題材にした方が面白いかなと思って、今回は、はてブのデータを使ってリンク推薦システムを作ってみる事にしました。 データセットを作る…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その3「アイテムを推薦する・似ている製品」

前回は、評者同士の類似度を計算する関数を使って、評者のランキングを返すメソッドの作成までやりました。今回は、いよいよ(ようやく?)実際に推薦を行うメソッドを作成してみたいと思います。 アイテムを推薦する 基本的な考え方としては、自分が評価してい…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その2「ピアソン相関によるスコアの算出・評者のランキング」

前回に引き続き、「今日も元気に集合知!」って事で、やっていきたいと思います。今回は、ピアソン相関によるスコア算出のメソッドと、それを利用して評者のランキングを得るメソッドを見ていきます。 ピアソン相関によるスコア算出のメソッド 前回作成したRe…

AtomPubな何かを作ってみよう その4 〜実装編 Part.03「子リソースの作成」〜

前回は、作成したAtomPubリソースの動作確認をしてみました。今回は、前回作成したリソースの子供の関係にあたるリソースを作ってみたいと思います。 DBのマイグレーションを行う まずDBに新しくテーブルを作ります。ファイル名を"db/migrate/002_create_chi…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その1「ユークリッド距離によるスコアの算出」

明けましておめでとうございます。m(_ _)m 旧年中は(ry。普通だと、ここで去年の総括とか今年の目標とか書くところなんでしょうが、1月1日だからと言ってそういうのをやるのはあまり好きではないので、通常通り"やってみた系"の記事を書いていこうかと思いま…