小伙伴关心的问题:算法分析的主要目的是什么(什么是算法,算法分析的目的是什么),本文通过数据整理汇集了算法分析的主要目的是什么(什么是算法,算法分析的目的是什么)相关信息,下面一起看看。

算法分析的主要目的是什么(什么是算法,算法分析的目的是什么)

对于明星们,人们通常有一种直觉:有些明星最近太热了,走到哪里都有他/她的身影。不过,如何从算法上分析最热明星呢?一种直觉的算法是计算明星最近几年参演的电影数量,数量多者当然是热度较高的明星。这种思路当然不错,不过存在一些问题,例如有些人参演了很多烂作品,数量上增加了,名气却没有增加。还有另外一种直觉,就是和最热明星合作的人通常热度也比较高,即使他/她的作品数量不多。怎么才能把这两种思路融合起来呢?一种巧妙的想法是基于Google的PageRank构造的TextRank算法。

PageRank

PageRank最开始用来计算网页的重要性。整个www可以看作一张有向图图,节点是网页。如果网页A存在到网页B的链接,那么有一条从网页A指向网页B的有向边。构造完图后,使用下面的公式计算每个网页的重要性:

S(Vi)=(1−d)+d∗∑j∈In(Vi)1|Out(Vj)|S(Vj)S(V_i)=(1-d)+d*\sum_{j\in In(V_i)}\frac{1}{|Out(V_j)|}S(V_j)

其中,S(Vi) 是网页i的重要性(PR值)。d是阻尼系数,一般设置为0.85。In(Vi)是存在指向网页i的链接的网页 *** 。Out(Vj)是网页j中的链接存在的链接指向的网页的 *** 。|Out(Vj)|是 *** 中元素的个数。

这个公式看起来非常复杂,用一个例子做比喻就非常清晰了:假定所有的网页都是青年男女,网页的链接关系是青年的爱恋关系,爱他/她就要给他/她money,一个人的重要性就体现在手里的money上,一个人爱着十个人,就把自己手里的money分成十份,平分给爱着的人,一个人被二十个人爱着,就会收到这二十个人给的money(乘以一个系数)。公式中阻尼系数d的含义是家长给的钱,防止有些人只出钱没收入,负债累累。

PageRank需要使用上面的公式多次迭代才能得到结果。初始时,可以设置每个网页的重要性为1。上面公式等号左边计算的结果是迭代后网页i的PR值,等号右边用到的PR值全是迭代前的。

TextRank

TextRank算法用于为文本生成关键字和摘要,其思路非常简单,就是把一个词看成一个节点,在一个规定长度(window)出现的另外一些词与该词构成了共现关系,在图中用线连接起来,线上可以有权重,就是两个词共现的次数,所有词和共现关系构成了带权重的无向图。上述计算重要性的公式变成如下:

WS(Vi)=(1−d)+d∗∑Vj∈In(Vi)ωji∑Vk∈Out(Vj)ωjkWS(Vj)WS(V_i)=(1-d)+d*\sum_{V_j\in In(V_i)} {\frac{\omega_{ji}}{\sum_{V_k\in Out(V_j)}\omega_{jk}}WS(V_j)}

其中, ωji\omega_{ji} 表示节点i在节点j处的权重。此公式与上面公式的最大区别在于加号后面的部分,节点j按照权重比例向i节点贡献重要性,而不再是平均分配。

明星热度

回到最初的话题,怎么计算明星的热度呢?我们选用TextRank的思想来进行计算:一个明星热度越高,其参演的电影越多,共同出演的其他明星越多,即与其共现的明星越多,其热度越高;共同出演的大牌越多,其热度越高。

首先从豆瓣上爬取最近5年的电影数据,爬虫代码如...不会,感谢朱俊提供的数据。经过整理,我们得到了3659部中国大陆于2012年及以后拍摄的电影,参影演员11436个。使用TextRank算法得到每个演员的分数为

其中,按照电影数目排序的数值是不准确的,因为有大量演员参演电影数目是一样的,系统按照姓名排序。不过我们依然可以看出,TextRank的结果与参影数量的结果有很多不同,比如王凯的参影数量只有30部,低于很多明星的结果,但排到了第二位。

对于流量明星,结果为

73 xx峰 0.0004952186970234339 28 12

252 炮王凡 0.0003218771523972345 16 151

388 抠图颖 0.0002751648980962189 18 97

以上数据不一定全面,TextRank也不一定适用于此类问题,上述结果仅供娱乐。

更多算法分析的主要目的是什么(什么是算法,算法分析的目的是什么)相关信息请关注本站,本文仅仅做为展示!