基于视频的智能推荐算法

时间:2022-09-20 04:56:32

基于视频的智能推荐算法

摘要 随着网络视频和数字电视的普及,人们可供选择的视频越来越多,当然如何选择节目也日渐成为人们的一个问题。在这样背景下,智能推荐算法也就应运而生。本文就此问题进行了研究,基于网络爬虫程序获得的网络上10大最主流视频网站的信息,以及网上的测评和用户自己的历史记录,利用了智能推荐算法对用户的喜好进行分析,结合最新的网络视频的综合评价,对所有视频给出最终评分,从而可以给用户推荐出最合适的节目。

关键词 Web挖掘;智能推荐算法;网络爬虫

中图分类号TP393 文献标识码A 文章编号 1674-6708(2011)55-0204-02

0 引言

互联网的普及带动了信息化数字化的全面发展,从日常生活到科研机构无不与网络息息相关,网络视频,电子商务,在线支付等行为已经渗入了我们的点滴生活之中,给人们生活带来的巨大的便利,但同时一些小烦恼也会随着而来。巨大的经济利益促进了电视广告的发展,但也因此给了网络视频,电视剧的充分的发展空间,可是网络视频没有电视的高清晰度,电视也没有网络视频的不间断和可操控性,从而催生了数字电视的迅速崛起。短短数年的发展,已经使得数字电视非常的普及,带给了人们全新的感受。如今人们头疼的不是某某电视剧怎么还不播放,而是,我今天该看什么呢。笔者也多次被这个问题深深地困扰过,因此针对网络视频播放,提出一套智能推荐算法,通过用户的浏览历史的数据,对用户的性格喜好进行分析,结合十大主流视频网站对如今所有视频电视的打分,对视频进行一个推荐运算,给用户推荐出最合适的视频电视。

1 数据来源

此次的程序是在将放在数字电视的机顶盒之内,通过获取用户的数据和网络上主流视频的网站的信息,利用智能推荐算法获得最适合用户的节目清单。

首先,在每个用户使用这个机顶盒的之前,会有一个十分简单的用户调查,这个是为了初步获得用户的喜好信息。因为在用户在前100次看的电视节目有很大的随机性和偶然性,所以前100次的时候,推荐的电视节目主要是依靠主流视频的排行榜和点击量以及评分总和考量的。同样因为少量数据的不准备性,我们会删除掉一些点击率很低的视频进行排行。

其次,当用户使用时间,次数达到一定的标准的时候(100次)以后,我们将在智能推荐的算法里加入用户自己的数据,而起所占的权重随着次数增多而越来越大,其中,我们考虑的参数包括标题,关键字,导演,主要演员,类型,标签以及获得的奖项等等,当然还会记录每个视频观看的时间和距离现在的时间。结合这些用户自己的信息,以及开始第一登录前用户登录的信息,可以分析出最准确的用户喜好类型。

最后,还有一栏信息为最近观看,这个信息是和用户最息息相关的一项,它代表着用户最近一段时间的喜好和兴趣,优先考虑接着最近几次的视频继续看(即增大它们的权重值),同时每次播放时,会记录上次的结束点,支持断点续看。

2 网络数据的获取

随着网络的迅猛发展,数字信息急剧膨胀,网络数据的获取和过滤也自然成为人们日益关心的问题。在这次的课题研究中,我们利用的java提供的htmlparse进行网络信息的获取,同时通过自己对网页的分析,对很多不必要地信息进行过滤,最后将得到的我们需要的数据封装成一个个视频对象存入数据库中,同时也方便我们的读取等操作。

在我们选取的主流网站中,网站的编写格式几乎都不相同,用我们的方法无法提供出一种通用的方法获取到所有网站的视频信息,所以我们只能对每个网站进行具体分析,编写出单独网站的网络爬虫程序,然后使用利用多线程进行同时处理。

不过具体爬取的思想是一致的:首先是对土豆,优酷,搜狐高清等网站进行源码分析,了解了每个所需信息的位置,利用htmlparse爬取到这一页信息,然后用filter过滤只剩下自己需要的信息,并把每个视频信息封装成一个具体的对象存入数据库。

当然,在数据爬取的过程中,会遇到网站会对一些访问量很少,知名度不高的一些冷门电影的信息给予的不全,有些评价会因为只有极少数人而变得特别高或者特别低,我们都会进行特别的处理。

3 推荐算法

经过前面一系列的准备,前期需要的数据基本都已经准备好,在算法中主要分了两种情况,一种是用户刚开始使用那个阶段,由于数据少造成的不准确性,用户自己的信息所占的比重(除了开始登陆前输入的信息)忽略不计;另一个阶段是随着用户的使用次数达到一定的标准,用户的信息越来越准确,所占的权重比例也越来越大,同时引入了最近浏览历史这一项参数,因为时间越靠近现在,越贴近近期用户的兴趣方向,所以最近期的浏览历史,尤其是断点续播的占的权重更大,同时,综合主流网站的排名,点击量和评分,最后对推荐的视频进行一个综合的评分,选择前10名进行推荐,最后显示在界面上。

首先,第一阶段,用户信息较少的时候,用户初始登录的信息和网上的信息综合各5分(总分10),用户初始信息包括喜欢电影的类型,喜爱的明星,导演等信息,进行第一部分的初始信息权重的计算,假设用户选择的喜爱的信息个数为n,则每个信息的权是5/n,每次算一个视频的推荐得分的,首先把视频的每个变量名字去权重列表中进行对比,如果有同样地参数,即有符合用户需求的,则在智能推荐总分(初始化为0)上加上这个权的数,然后继续查找下一个参数,最后得出首轮用户推荐分,

S11= X*5/n,

其中X为视频与用户初始信息的匹配数。

通过网络爬虫得到视频的点击量Ni,评分SI,则

S1i=Si + (∑(Ni*Si)2)-2*Ni*Si/(∑(Ni*Si));

综合了点击量加上评分,也给出了最高5分得评定,当然,我们对于排行榜前10名的视频同样给予了1分得额外评定分,从1~10线性递减下去,这样,结合了上面3部分,我们的第一阶段的用户推荐方法即可得出,不过这里更多的是依靠网络的评分,几点以及作者开始填写的信息,可能准确还不会十分的高,当我们使用次数积累上去的时候,权重也会逐步提升,这时候我们的数据的准确性也会越来越高。

接着,就是我们的第二阶段。当我们用户观看视频的数量上升到100次以上的时候。当然我们这里对每部电视的观看时间进行了限制,少于5分钟的视频信息将在结束后不存入数据库,因为很有可能是因为用户自己的个人原因离开或者外界原因关闭或者个人不喜爱看而关闭,导致了视频播放的短暂性,此时,我们将不把这部视频的信息存入。

我们会从用户的个人信息中提取出用户观看的每部视频,包括视频的所有信息:导演、演员、类型等,用户观看的时间长度,播放的次数。我们在这个数据库里面的信息达到一定标准时候,我们就会生成一个权重的数组,把所有的视频全部遍历一次,对视频的信息进行读取,比如视频的类型为喜剧片,然后到权重表去查询,如果没有这个选项,则new一个新的权,权值为1;如果已经存在了喜剧片这个选项,则在原来的权值上再加1,。对数据库里所有的信息进行遍历一次以后,我们得到了一个权重key-value表,以后定期和不定期我们会更新一下这个表,确保我们表的准确性。定期是指每天都会再凌晨3点进行重新扫描,并且重新计算下,不定期是指每次一个视频观看结束,我们会把观看的这部视频的信息加到权值表中,因为只计算了增量,不需要重新扫描,所以计算量很小,运算很快,同时也保证了一个实时性。

一化,然后分别利用每部视频的信息与权值表进行匹配,如果相同的,则S2=∑vi。这里计算的就是根据用户的历史信息机型计算得到的智能推荐第二部分的得分。

最后还有一部分就是对最近播放的前10的电视剧进行额外分计算,因为最近观看历史代表了最近期用户的喜爱类型,最具有时效性的信息,所以在这里额外增加了他们的分值,尤其是对那些权重得分高且在最近播放列表的视频,一定会出现在得分最后的几个之中。这里把播放点距现在时间作为一个参数,是一个反比例函数,同时还加入了播放的时候,这样进一步提高了算法的可靠性和准确性。

4 测试结果

经过上述的前期准备、网络信息的获取以及不同阶段的智能推荐算法的运算,我们对每部视频都可以运算得出一个具体的推荐分数,最后我们将他们平均分配到0~10这个分数段,取出最高的10个视频的所有信息,通过机顶盒发送到电视机的屏幕上,如此,我们的智能推荐算法也算完整的实现了。

我们在完成程序后,模拟了用户观看了若干部武打视频,尤其是李连杰的一些电影,然后将数据导入我们的程序中,经过运算,得出的结果与网络和我们期望的结果基本相符,很好的达到了我们的推荐的效果。

5 结论

此次课题的研究,通过网络爬虫获取去的信息,以及一套智能推荐算法,初步完成了我们智能推荐的目标,让我对网络爬虫以及推荐算法有了更深一层的理解和体会,也能够在一定程度上帮人们推荐出适合自己的电视节目,解决了一部分人的困扰。当然,我们的算法还是有很多不完善的地方,包括参数变量的值的选择,权重的变化都不是十分的精确,还是有很多需要我们继续改进的地方,我也会继续对这方面的课题进行深一层的研究。

参考文献

[1]戚欣.基于本体的主题网络爬虫设计[J].武汉理工大学学报,2009(2):138-141.

[2]孙立伟,何国辉,吴礼发.网络爬虫技术的研究[J].电脑知识与技术,2010(2).

[3]黄聪会,张水平,胡洋.主题Deep Web爬虫框架研究[J].计算机工程与设计,2010(5).

上一篇:ASOM系统显示本站数据错误的处理方法 下一篇:新时期广播电视技术维护工作的特点解析及应对...