`
javafan_303
  • 浏览: 958957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于歌曲的推荐

 
阅读更多

对于Slope One算法,不熟悉的可以参照我之前的文章:Slope one:简单高效的推荐算法,已经被很多人证明有很好的推荐效果。

Slope one算法中有一个很重要的步骤是获取用户的打分数据,这个对很多网站都很费劲,很多用户都会听歌,但大多懒得去给歌曲打分,另外用户打分的时候会比较困惑,该打多少分呢?喜欢这首歌,是打4分还是5分呢?费劲。

我这里给出的是另外一种方法,做法是分析用户的听歌记录,一般网站都会记录这样的记录,统计一段时间内用户的听歌记录,我们得到下面格式的数据:

用户ID    歌曲ID    听歌次数

比如某个片段:

3389    9527    23
3389    9528    56
3306    1211    78
3306    9527    45

表示用户3389听歌曲9527的次数是23,听9528的次数是56,诸如此类。这样的数据当然不能直接用来做Slope one,需要把数据格式化到某个区间。我们分析一下用户听歌的行为,一般来说最喜欢的歌曲听的最多,越喜欢的歌曲听的越多,听的少的歌曲自然不那么喜欢。所以我们可以简单的模拟用户对歌曲的打分:

用户对歌曲的打分 = 用户听此歌曲的次数 / 用户听单首歌曲的最大次数

这样就可以把打分数据规整到0~1之间,还是上面的数据:

3389    9527    23/56
3389    9528    56/56
3306    1211    78/78
3306    9527    45/78

用户听的最多的歌曲打分是1,其他歌曲的打分等于听歌次数除以最大次数,我们就获得了用户的打分数据了。剩下的工作就是按照标准的Slope One流程走了,程序代码可以参考:http://code.google.com/p/openslopeone/

贴出几个实例大家看看,第一次做的结果,再去做的话应该比这个要好一些:

歌曲 推荐歌曲
南无大悲观世音菩萨   刘小茜 梵音大悲咒   齐豫
大悲咒   齐豫
观世音菩萨发愿偈.大悲咒   齐豫
大悲咒   邝美云
般若波罗蜜多心经   齐豫
大悲咒   齐豫
清净法身佛   齐豫
阿弥陀佛在心间   小娟
吉祥如意   凤凰传奇
好一朵茉莉花   朱昌耀 理查德-克莱德曼《梦中的婚礼》   合辑(欧美)
茉莉花(汉族民歌)   雷佳
好一朵茉莉花-笛子   合辑(内地)
最浪漫的事   赵咏华
沧海一声笑   罗文
how can i keep from singing   Enya
生死不离   成龙
羞答答的玫瑰静悄悄地开   孟庭苇
过三关   吴卓羲 别怪她   吴卓羲
生命有一种绝对   五月天
春日(电视剧’春日’主题曲)   吴卓羲
爱玛仕小姐   吴卓羲
别人问起   吴卓羲
别怪她(Dance Remix)   吴卓羲
别怪她 – 吴卓羲   合辑
米老鼠   五月天
One Last Dance   Craig David
新不了情   薛凯琪

Tips:

做Slope one之前最好过滤掉那些超热门的歌曲,因为很多人都听过了,会让这些歌曲经常出现在推荐结果里面,我的感觉是过滤掉Top100就可以了。

 

转载:

http://www.fuchaoqun.com/2009/02/slope-one-for-music-recommender-system/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics