产品综合评价模型——基于商品评论建立的产品综合评价模型(2)

5.产品评分模型

5.1单条评论评分模型

我们希望通过评论文本与星级建立一个评分模型,通过该模型可以得到单条评论的打分情况,从而观察到各产品的综合评价。为达到这个目的,我们将结合星级1、点赞数2、总投票数3这几项数据集,先建立单条评论评分模型。
由于评分模型得出的分数,我们希望它的取值范围为[0,100],因此输入评分模型的评论得分与星级得分也应是百分制数据。

5.1.1评论得分

本部分将计算出能够直接输入打分模型的评论得分。由于原始情感得分仅表示该购买人的个人想法,无法体现他人是否认同该评论,因此我们将其依据可信度进行优化。此后,通过TOPSIS法,我们可以得到最后能输入打分系统的评论得分数据。

1). 优化情感得分

在上述的LDA主题模型中,我们剔除了评论文本中的中性文本。但在本模型中为保证评分的完整性和准确性,我们重新保留了中性文本。因此所有评论的情感得分取值范围为[-1,1],即x∈[-1,1]
不同的评论由于评价者的情况不同而具有不同的可信度,我们希望能让评论对产品评分的影响能依据其可信度进行适当调整。这里我们引入一个新变量“点赞权重系数”,用来将可信的评论影响放大,不可信的评论影响缩小,由此得到的优化后的情感得分a’公式计算如下:
a a^{'} = x x *(点赞权重系数+1)

接下来我们要计算点赞权重系数。

通过对原数据的观察,我们决定用总投票数和点赞数两个指标作为计算点赞权重系数的原始数据。
通过观察总投票数的大小,我们将数据依据总投票数将数据分为三类:○1总投票数非常小:该情况下,对该评论表示认同或者不认同的人数过少,无法判断该评论是否更可信,因此我们不给予这类数据更多的信任;○2总投票数较小:该情况下,已经有部分人对该评论发表其观点,可稍微看出该评论是否可信,因此我们对它的信任改变 δ 1 \delta_1 ;○3总投票数较大:该情况下,由大量的人表示认同该评论或者不认同,我们可以明确它的可信度,对这类数据我们的信任改变 δ 2 \delta_2
为避免对数据影响过大,造成结果不合理。在对原始数据进行观察后,我们决定将划分类别的两个界限定为:10,50;并且设定 a 1 a_1 =0.1, a 2 a_2 =0.15。由此可知点赞权重系数公式如下:

2). TOPSIS法获得最终数据

通过上一个步骤,我们已经得到了优化后的评价得分 a a^{'} ,接下来我们将通过TOPSIS法获得最终的评价得分 a a
在这里插入图片描述
引入变量n表示导入的数据集中的评论总条数。
步骤一:
将优化后的评论得分 a a^{'} 导入成一个n行1列的标准化矩阵

步骤二:
计算该矩阵第一列的最小值并定义为 Z j 1 = min 1 i n Z i 1 Z_{j1}^-=\min \limits_{1≤i≤n}|⁡Z_{i1} |
计算该矩阵第一列的最大值并定义为 Z j 1 = max 1 i n Z i 1 Z_{j1}^-=\max \limits_{1≤i≤n}|⁡Z_{i1} |
步骤三:
计算第i个评价对象与最小值的距离 D i 1 = Z j 1 Z j 1 D_{i1}^-=Z_{j1} -Z_{j1}^-
计算最大值与最小值的距离 D = Z j 1 + Z j 1 D=Z_{j1}^+-Z_{j1}^-

步骤四:
计算第i个评价对象的最终评论得分 a i 1 = ( D i 1 ) / D a_{i1}=(D_{i1}^-)/D

5.1.2星级得分

由于星级从一星到五星表示从非常不满意到非常满意,并非百分制的数值,无法直接输入打分系统,因此我们需要对数据进行处理。
为了模型的合理性,我们这里将一星赋值成0分,二星赋值成25分,以此类推五星为100分。

星级 得分
0
★★ 25
★★★ 50
★★★★ 75
★★★★★ 100

5.1.3结论

经过以上计算过程,我们得到了可以直接输入模型的评论得分。为了评分模型得出的数据更能体现整条评论(包含评价本体与星级)的意向,结果更准确,我们将给评论得分和星级得分不同的权重。
通过观察原数据,考虑到评论包含评论者对商品的满意或者不满意的具体原因,且比星级评价包含了更多评论者的感情倾向,我们最终选定权重比为:

评论得分:星级得分=6:4,

由此得出的最终商品得分的公式:

最终商品得分=0.6评论得分+0.4星级得分

通过该算法能得到满足我们要求的百分制数值,并且能较好的反映购买者对单个商品的评价。

5.2模型优化

以电商公司的角度,我们尝试加入用户在平台的级别和是否优惠购买的数据集来优化上述模型,从而帮助电商公司能够更方便地对产品进行跟踪。
通过单条评论评分模型,我们已经得到了产品的单条评论的打分情况,现在我们将建立一个产品评分模型,由单条评论的打分情况计算出该品牌的打分,从而反映该产品的口碑情况。

在这里插入图片描述
对于其中的一个产品 α \alpha ,我们引入变量 N N 表示该产品的评论总数量,变量 w i w_{i} 为第 i i 条评论得分占产品总得分的权重,于是得到产品评分公式如下:

品牌口碑评分= i = 1 N \sum_{i=1}^{N} 最终商品得分* w i w_i / i = 1 N \sum_{i=1}^{N} w i w_i

接下来我们需要确定权重 w i w_i 的取值。
经过分析后,为了精简模型,我们做出以下合理假设:仅在某条评论表现出更可信时增加其权重,如果未能体现其可信度则不改变其权重。现在我们引入可信度系数变量,得到权重算法公式如下:
w i w_i =1+可信度系数

通过观察原始数据,我们发现两个会较大程度地影响该条评论在产品总得分过程中可信度的指标:是否打折和用户的评级,并且我们简单对比数据后发现,被邀请成为平台明星用户比在打折时购买产品的用户更少,且被邀请的用户的评论具有较高的信誉。我们最终选定权重比为:用户评级因素:打折因素=7:3,由此得出的最终产品得分为:

可信度系数=0.7×用户评级因素+0.3×打折因素

对这两个指标进行详细分析:对于打折指标:如果用户在打折是购买该产品,则其更倾向于给予该产品更高的评价与星级,而原价购买的用户的评价则会更客观;对用户评级指标:如果某用户被邀请成为平台明星用户,他的评论相比未被邀请的人会更加客观、符合实际情况。根据上述分析,我们将打折与用户评级两个指标化为两个变量:
= { 0 打折=Yes 0.1 打折=No 打折因素= \begin{cases} 0& \text{打折=Yes}\\ 0.1& \text{打折=No} \end{cases}

= { 0 非明星用户 0.1 平台明星用户 用户级别因素= \begin{cases} 0& \text{非明星用户}\\ 0.1& \text{平台明星用户} \end{cases}

通过该小节,我们可以得到权重 w i w_i ,并且权重 w i w_i 的取值不大于1.1,不会造成得分增幅过大的情况,影响结果。
在计算出权重 w i w_i 后,我们就可以计算出产品得分,然后我们可以按照得分从高到低对产品进行排序,排名越靠前就说明该产品在用户中的口碑越好,反之则说明口碑越差。

5.4 后记

5.4.1模型缺点:

  • 在判定星级得分时,我们对五个级别进行了简单的赋分。事实上,被打出的同样的星级,根据其对应的评论不同可能代表更高或更低的介于两个整数星级之间的评分(例如:两个三星分别表示两星半与三星半的星级评价),因此星级评分取值设定仍需进一步优化。
  • 在计算评论得分的过程中,我们默认星级与评论代表了相同的情感倾向,事实上,可能存在星级与评论不相符的情况,而目前我们暂未筛查是否有此类情况的数据。

5.4.2总结:

这部分主要运用的编程技巧比较少,更多的是模型上数据的利用以及系数的确定花了较大的篇幅,目的是为了建立一个产品评分模型,最终结果会获得一个百分制的产品得分,希望能对电商平台及商家的销售策略提供建议。

本文仅供参考学习,拒绝商用、转载。


  1. 星级指的是每条评论对产品进行评星,范围由1星到5星。 ↩︎

  2. 点赞数指的是其他用户对该条评论认为有用后进行点赞。 ↩︎

  3. 总投票数指的是所有用户对该评论发表态度的数目,包括点赞和无用。 ↩︎

发布了5 篇原创文章 · 获赞 9 · 访问量 195

猜你喜欢

转载自blog.csdn.net/Carmen__Leung/article/details/105118768