http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-bayon/?root=svn
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-bayon/ext/bayon.cpp?root=svn&view=markup
おおむね出来た。
require 'bayon' include Bayon $users = { 1 => '阿佐田', 2 => '小島', 3 => '古川', 4 => '田村', 5 => '青柳', 6 => '三輪', } $genres = { 1 => 'HIPHOP', 2 => 'J-POP', 3 => 'J-R&B', 4 => 'クラシック', 5 => 'ジャズ', 6 => 'メタル', 7 => 'レゲエ', 8 => 'ロック', 9 => 'ワールド', } def add_mapping(m, doc, features) m[$users.index(doc)] = features.map {|g, v| [$genres.index(g), v] } end user_genre = {} add_mapping(user_genre, '阿佐田', 'J-POP' => 10, 'J-R&B' => 6, 'ロック' => 4) add_mapping(user_genre, '小島' , 'ジャズ' => 8, 'レゲエ' => 9 ) add_mapping(user_genre, '古川' , 'クラシック' => 4, 'ワールド' => 4 ) add_mapping(user_genre, '田村' , 'ジャズ' => 9, 'メタル' => 2, 'レゲエ' => 6) add_mapping(user_genre, '青柳' , 'J-POP' => 4, 'ロック' => 3, 'HIPHOP' => 3) add_mapping(user_genre, '三輪' , 'クラシック' => 8, 'ロック' => 1 ) analyzer = Analyzer.new analyzer.set_cluster_size_limit(3) user_genre.each do |doc_id, features| doc = Document.new(doc_id) features.each {|k, v| doc.add_feature(k, v) } analyzer.add_document(doc) end analyzer.do_clustering(Analyzer::REPEATED_BISECTION) while cluster = analyzer.get_next_result puts cluster.map {|i| $users[i] }.join(', ') end
小島, 田村
青柳, 阿佐田
古川, 三輪
続行するには何かキーを押してください . . .