APP下载

基于评论的影片个性化推荐方法

2018-07-19董学阳郜山权刘华虓

吉林大学学报(理学版) 2018年4期
关键词:关联词汇评估

董学阳, 郜山权, 刘 磊, 刘华虓

(1. 吉林大学 公共计算机教学与研究中心, 长春 130012; 2. 吉林大学 软件学院, 长春 130012;3. 吉林大学 计算机科学与技术学院, 长春 130012)

近年来, 随着世界电影行业的发展, 优秀影片不断涌现, 观影人数也越来越多. 由于每年都有大量的新影片上映, 因此如何从众多影片中挑选出自己喜欢的影片成为众多电影爱好者关心的问题. 阅读影片评论是了解影片的有效渠道, 但仅通过简单阅读很难得到影片全面、准确的信息[1-3]. 其原因是: 1) 一部影片下的评论数目通常很庞大, 难以全部阅读; 2) 由于个人偏好等原因, 不同观众对同一影片的评价常充满矛盾. 因此, 本文提出一种新的影片评论分析方法, 能个性化地为观众推荐喜爱的影片.

一部电影通常同时有几个标签, 如action,culture,family等, 本文把每个标签作为影片的一个主题, 由于不同的观众喜好的方向有所不同, 因此对于同一部影片, 不同观众可能会关注不同的主题. 本文利用语义相似度方法关联评论与主题, 把评论属性引入到主题分析中[4-5]. 首先, 利用评论的属性得到关于评论本身的满意度值, 即评论发表者对电影的满意度; 然后, 根据主题评估函数计算关联到主题所有评论的满意度值, 得到主题的满意度; 最后, 根据观众的喜好为影片各主题设定权重, 获得个性化评价. 根据评估结果, 为观众提供一个可供选择的影片序列.

1 评估方法

首先, 把电影发行者为电影所标记的标签设定为主题, 如action,culture,story等, 并把主题进行扩展; 其次, 关联主题与评论, 把评论的属性引入主题分析中; 最后, 利用主题评估函数评估主题, 并为各主题设定权重, 最终得到影片的个性化评价.

1.1 确定主题并扩展主题 由于电影发行者为电影标记的标签通常为一个词汇, 导致设定的每个主题也只包含一个词汇, 限制了与其直接关联评论的数量, 影响后续评估的准确性, 因此需要对每个主题进行扩展. 本文采用把评论中的相关词汇添加到主题中进而扩展主题的方法. 首先, 选取待分析电影下一定数量的评论作为扩展评论集合; 然后, 抽取扩展评论集合中评论的名词组成扩展词汇集合; 最后, 利用基于wordnet的语义相似度计算方法计算扩展词汇集合中的每个词汇与各主题词汇间的语义相似度[6-7], 并设定一个阈值, 若它们之间的相似度大于或等于阈值, 则认为它们是相关词汇, 把该词汇扩展到主题中. 从而每个主题便由一个词汇变成一个词汇的集合. 本文将主题形式化表示为以下形式:

定义1每个主题(T)可表示为一个二元组(word,wordset), 其中: word表示电影发行者为电影标记的标签; wordset表示主题扩展后的词汇集合.

1.2 关联主题与评论 本文将评论形式化表示为以下形式:

定义2评论(rev)可表示为一个二元组(des,Attibution), 其中: des表示评论的文本描述; Attribution表示评论的属性集合. Attribution集合中每个元素都是评论的一种属性, 分析人员可根据需求选择为属性集合添加哪种属性. 本文定义Attribution={time,rate}, time和rate分别表示评论时间与星级打分的分数.

为了与主题进行关联并支撑后续主题评分的分析, 本文对评论的文本描述及其中包含的用户主观感受进行分析. 首先, 利用SentiStrength情感分析工具分析des得到情感分数值senti[8-9], 加入到Attribution中, 评论的属性集合变为{time,rate,senti}; 其次, 抽取des中的所有名词得到词汇集合wordset, 把des替换成wordset, 作为与主题进行关联的基础.

通过上述过程, 即可将评论rev重新形式化表示为(wordset,Attritbution), 其中wordset是评论词汇集合, Attribution={time,rate,senti}. 通过计算词汇间的语义相似度, 即可计算两个词汇集合间的相关度, 下面给出两个词汇集合间相关度计算的定义.

定义3Relatedegree(wordset1,wordset2)表示词汇集合wordset1和wordset2间的相关度, 公式如下:

Relatedegree(wordseti,wordsetj)=max{Wordnet(wi,wj)|wi∈wordseti,wj∈wordsetj},

其中, Wordnet(wi,wj)表示利用Wordnet计算词汇wi和wj的语义相似度, 任意的(wi,wj)属于wordset1差乘wordset2, Relatedegree(wordset1,wordset2)表示利用Wordnet计算任意词汇对中相似度数值最大一对词汇的相似度数值.

评论rev中的rev.wordset与主题T中的词汇集合T.wordset都是词汇集合, 可通过计算rev.wordset与T.wordset的相关度, 即Relatedegree(rev.wordset,T.wordset), 计算评论与目标的相关度. 设定一个阈值, 如果评论与目标的相关度值大于或等于阈值, 就把评论关联到主题下. 选取待分析电影下一定数量的评论, 把这些评论与主题进行关联, 完成关联后, 每个主题都拥有一个关联集合RRset.

定义4RRset是一个二元组集合, 其中每个二元组RR均可表示为(rev,RelateScore), 其中: rev表示关联到该主题下的一条评论; RelateScore表示该评论与该主题的相关度值, 数值范围为[0,1].

1.3 利用评估函数对主题进行评估 每条评论rev均有一个属性集合Attribution={A1,A2,…,An}, 开发者可从每个属性中直接或间接地得到观众对影片的满意程度. 可根据属性集合Attribution对评论进行量化, 得到发表该评论的观众对影片的满意程度. 评论rev的满意度计算公式为

SR(rev)=w1g1(A1)+w2g2(A2)+…+wngn(An),

本文中, Attribute={time,rate,senti}, 因为time属性不影响满意度, 因此不作为满意度计算要素之一. 首先, 针对属性senti, 定义其变换函数为

gsenti(senti)=(senti+5)/10,

senti的取值范围是[-5,5], 经过变换函数变换后,gsenti(senti)的取值范围是[0,1], 完成归一化处理, 方便与其他属性间的联合运算. 其次, 针对属性rate, 定义其变换函数为

grate(rate)=(rate-1)/4,

rate的取值范围是[1,5], 利用变换函数可对其进行归一化处理, 使其能与其他属性进行联合运算. 本文给出的权重wsenti=0.4,wrate=0.6, 于是本文定义评论的量化公式为

SR(res)=0.4×gsenti(senti)+0.6×grate(rate).

评论量化完成后, 可基于量化后的评论对主题进行量化. 主题T完成与评论的关联后, 得到关联集合RRset={RR1,RR2,…,RRn}. 量化集合中的评论后, 再利用主题的满意度评估函数计算主题的满意度. 主题的满意度评估函数为

主题的满意度取值范围是[0,1], 数值越大, 表示观众的满意度越高.

通过上述操作, 得到各主题的满意度值, 观众可根据自己的喜好为各主题设定权重, 最终得到影片的个性化评价, 计算公式为

FilmScore=w1×ST(T1)+w2×ST(T2)+…+wi×ST(Ti),

FilmScore的取值范围为[0,1], 数值越大, 表示越可能推荐观众去观影.

2 实验及验证

下面通过实验对上述方法进行验证. 从英文网站IMDB选择5部较受欢迎且均包含“animation”,“action”,“comedy”,“family”这4个标签的电影作为实验对象, 分别为《Captain Underpants》,《Wonder Woman》,《Baywatch》,《War Machine》和《Logan》, 对其进行分析. 本文分别从这5部电影下爬取2 983,1 986,2 543,2 243,3 006条对该影片的评论信息, 同时下载星级评论及发表时间. 下面以《Captain Underpants》为例, 介绍个性化评估过程.

IMDB为《Captain Underpants》标记的标签包含“animation”,“action”,“comedy”、“family”, 这4个标签即为分析的4个主题. 首先, 选取《Captain Underpants》下的50条评论作为主题扩展的评论集合, 并根据本文描述的方法扩展主题, 扩展结果列于表1.

表1 主题扩展后的主题词汇集合

扩展完主题后, 利用主题词汇集合与评论词汇集合间的相关度计算主题与评论间的相关度. 本文设定阈值为0.6, 即当评论与主题的相关度值≥0.6时, 关联成功, 把评论关联到主题下. 实验中, 每个主题关联到的评论数目列于表2.

表2 各主题关联到的评论数目

根据主题评估方法对每个主题进行评估, 各主题评估结果列于表3. 由表3可见, 观众对“animation”,“comedy”,“family”这3个主题较满意, 而对“action”主题较不满意.

表3 各主题的评估结果

为上述4个主题分别设定权重值0.2,0.4,0.3,0.1, 可得到关于影片《Captain Underpants》的个性化评估, 评估分数FilmScore=0.54. 同理, 可得其他影片的个性化评估结果, 分别为0.61,0.49,0.66和0.52. 因此, 可给出这5部电影的个性化排序, 并推荐给观众. 排序结果为《War Machine》,《Wonder Woman》,《Captain Underpants》,《Logan》,《Baywatch》.

综上所述, 本文提出了一种基于评论的影片个性化推荐方法, 将影片标签作为主题对评论进行分类, 并根据观众感兴趣程度为主题设定权重, 实现对影片的个性化评估, 按照评估结果为用户提供一个可供选择的影片序列. 本文以IMDB上的5部影片为例进行了实验分析, 实验结果表明, 该方法有效. 本文提出的方法除应用在影片推荐中, 还可应用到商品推荐等其他领域.

猜你喜欢

关联词汇评估
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
第四代评估理论对我国学科评估的启示
本刊可直接用缩写的常用词汇
一些常用词汇可直接用缩写
“一带一路”递进,关联民生更紧
本刊可直接用缩写的常用词汇
奇趣搭配
智趣
评估依据
立法后评估:且行且尽善