似ている人々を抽出

Socialtunesには「ぺたが似てる人」という機能があって、自分と同じ商品をぺた(クリップ)した人を表示してくれるので、似た趣味の人が分かるわけだけども、それってよく考えると割と簡単に実装できるのかも。

ってことでコネタ。

例えば、

CREATE TABLE `interest` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL default '0', /* ユーザID */ `item_id` int(11) NOT NULL default '0', /* アイテムのID */ PRIMARY KEY (`id`) )

という所有を示すテーブルがあったら、

SELECT T2.user_id, COUNT( * ) CNT FROM interest T1 INNER JOIN interest T2 ON T1.item_id = T2.item_id WHERE T1.user_id =1 AND T2.user_id !=1 GROUP BY T2.user_id ORDER BY CNT DESC

というSQLを実行すれば、共通のアイテム数が多い順のユーザを抽出できるわけだし。

実際にはもっと色んなパラメータを絡めなきゃだめなんだろうけど。

最近はてB衆愚論がちょっとした話題になっており、例えば関心集団別のブックマーク群機能とかっていうのもワンアィディアとしてあるんじゃないのかな、と思ったので。