随着电商和团购点评等网站的迅速发展, 越来越多的人愿意通过网络的方式进行消费并通过评论的方式分享消费体验.现有的各大网站对用户评论的处理仅限于对用户发表的大量评论进行摘要Shimada等[1-4]、关键字提取、归类等处理, 以解决大量信息冗余的问题.当用户浏览评论时, 可以按照自身偏好的需求有选择地查看某一方面的评论.这种处理评论的方式在一定程度上解决了信息爆炸的问题.事实上, 当用户看到大量褒贬不一, 程度参差不齐, 侧重点各不相同的分类评论时, 往往不知道如何选择.现有的对大量用户产生的评论进行摘要和总结的方法已较为完善, 但冗余信息依然存在.其中一个关键在于不是每个大众用户的评价都是相关且可信任的.用户口味的不同会导致评价具有很强的个性主观特征, 因而难于比较, 无法提供有效参考.
调查发现, 大量用户在电商和团购点评等网站的消费、评论信息十分丰富, 为挖掘与用户品味相同的群体带来了新的思路.通过将大量点评用户视为群体感知源, 利用群体智能的思想, 面向众多点评用户消费并评价过的餐厅以及评价内容来进行相似群体的发现.向用户呈现与其品味相同的群体所发表的评论, 使用户能够在短时间内更高效地获取有参考价值的信息, 做出适合自己口味的选择.
如何判断用户品味是否相同是本文工作的一大挑战.对于寻找与用户品味相同的群体, 一个传统的方法是以用户评论作为入口, 找到每个评论用户的历史评论足迹.若两个用户在同一家店发表过评论, 则认为其品味有可能相同.实际上, 两个用户即使对同一家店发表过评论, 如评论的情感倾向完全相反, 或关注主题不同, 则没有理由认为其品味相同.
基于以上考虑, 本文提出CrowdReview方法.一方面, 对于每条用户评论进行情感特征分析得到具有一定情感倾向的情感值;另一方面, 对每个用户发表的所有历史评论进行主题分析, 得到主题分布特征.基于大量用户评论的情感特征、主题分布特征进行用户间的相似度分析, 使得每一用户都对应一个依据品味相似度排序的群体.本文基于大众点评的某一餐厅用户评论数据集以及评论用户历史评论足迹数据集进行实验验证.结果表明, 采用提出的个性化评价呈现方法可以有效地减少冗余信息, 提高评论的参考价值.
1 相关工作近年来, 对大量用户评论的处理已经成为研究人员关注的热点问题之一.大量研究主要针对用户评论进行摘要、分类、多方面信息提取等处理, 以解决信息爆炸的问题.Shimada等[1]对用户评论进行多方面摘要提取.Zhang等[2]基于双边主题对用户评论进行摘要, 结合餐厅菜品属性和用户评论两个独立的方面生成高质量总结.Brandow等[3]通过提取具有某些特征的句子总结文档, 如签名词语和位置信息等.Pang等[4]通过提取所有主观句子, 实现情感摘要总结.与上述研究相比, CrowdReview的不同之处在于发现相同偏好或相同品味的群体, 进而向用户个性化展示与其品味相同用户的评论, 使得用户评论更具参考价值.这一思想与协同过滤推荐相似, 但区别在于, CrowdReview结合了用户历史评论足迹以及评论内容的情感和主题特征发现相似群体.
与CrowdReview方法相关的工作主要包括对评论文本进行情感特征和主题分布特征的提取, 以及用户间情感和主题相似度的度量.
目前, Pang等[5]已经有很多中文文本的情感方面的工作①.Tan等[6-8]的研究结果表明, 采用基于机器学习的情感分析方法, 能够较准确地得到能够代表文本倾向的情感值.本文采用基于机器学习的情感分析方法, 提取用户评论的情感特征.对于挖掘评论文本自身蕴含的语义知识, 目前主流的知识模型有LSA[9]、PLSI[10]及LDA[11].相比之下, LDA在主题挖掘方面有自己的优势:1) LDA是完全概率生成模型, 可以利用成熟的概率算法来训练模型.2) LDA的参数空间规模是固定的, 与文本集自身规模无关, 更适合大规模文本集.本文采用LDA主题生成模型, 来提取用户评论文本的主题分布特征.
① INDURKHYA N, DAMERAN F J. Handbook of natural language processing
2 系统设计CrowdReview系统框架如图 1所示.大众点评数据库模块为整个系统的输入, 主要功能模块包括情感分析模块、主题分布分析模块以及用户评论呈现模块.情感分析模块以每个评论用户的所有历史评论数据作为输入, 输出用户间基于情感偏好的相似度.主题分布分析模块以所有用户的历史评论数据作为输入, 输出基于主题偏好的相似度.用户评论呈现模块基于情感偏好相似度和主题偏好相似度进行用户群体聚类, 对不同的用户呈现与其偏好相似度高的用户评论.
![]() |
图 1 CrowdReview框架 Fig. 1 Frame of CrowdReview |
图 1中的情感分析模块描述了情感分析的基本流程.对于点评数据库中的每一条用户评论, 首先对其进行情感特征提取, 然后利用情感相似度计算模块得到用户间基于情感偏好的相似度.
2.1.1 情感特征提取本文采用snownlp中文文本分析工具②对用户评论进行情感特征提取.snownlp对每一条用户评论处理之后, 得到一个取值为0~1.0的情感值Eijk, 含义如下:若用户i在历史上对店铺j共发表过N条评论, 则Eijk表示用户i对店铺j所发表的第k条评论的情感值.
②https://pypi.python.org/pypi/snownlp
研究发现, 很多时候一个用户可能在同一家店铺发表多次评论, 情感特征提取模块对每一条评论都产生了一个情感值Eijk, 并作均值处理, 则用情感均值Eij表示用户i对店铺j的情感倾向, 如下所示:
$ {E_{ij}} = \frac{{\sum\limits_{k = 1}^N {{E_{ijk}}} }}{N}. $ | (1) |
情感相似度即用户对某些事物的情感偏好的相似程度.为了用户间的情感相似度, 须首先寻找一种表达不同用户及偏好的方法.
使用矩阵来表示所有用户的历史评论店铺以及情感值.用户偏好数据以m×n矩阵A(m, n)表示, 即m个用户、n个店铺, 其中第i行第j列的元素Eij表示用户i对店铺j的情感值.
使用欧几里德距离度量用户间的相似度.如果用户1和用户2共同评价过t个店铺, 用向量(E11, E12, …, E1t)和(E21, E22, …, E2t)分别标记其对评论过店铺的情感值, 则欧几里德距离的计算公式为
$ \begin{array}{l} \sqrt {{{\left( {{E_{11}}-{E_{21}}} \right)}^2} + {{\left( {{E_{12}}-{E_{22}}} \right)}^2} + \ldots {{\left( {{E_{1t}}-{E_{2t}}} \right)}^2}} = \\ \sqrt {\;\;\;\sum\limits_{j = 1}^t {{{\left( {{E_{1j}} - {E_{2j}}} \right)}^2}} } . \end{array} $ | (2) |
基于式(2) 可知, 两人之间的偏好越相近, 则距离越短.任意两个用户之间情感偏好的相似度可以表示为
$ {\rm{Si}}{{\rm{m}}_{12}} = \frac{1}{{1 + \sqrt {\sum\limits_{j = 1}^t {{{\left( {{E_{1j}}-{E_{2j}}} \right)}^2}} } .}} $ | (3) |
显然, 相似度取值为0~1.0.
2.2 主题分布分析如图 1所示为主题分布分析模块的基本流程, 以所有用户的历史评论数据作为输入.首先开展预处理操作, 完成分词并去除停顿词.然后利用主题分布特征提取模块, 得到每个用户的历史评论主题在全部评论主题上的概率分布.最后利用主题分布相似度计算模块, 得到用户间基于主题偏好的相似度.
预处理分为两步:分词和去除停顿词.本文采用jieba①分词工具对用户评论进行分词.分词处理后, 通过基于停用词表的方法去除停顿词.本文使用哈工大停用词表②, 该表包含的停顿词全面, 能够达到较好的去除停顿词效果.
①https://github.com/fxsjy/jieba
②http://www.datatang.com/data/19300
如图 2所示为主题分布特征提取的基本流程.
![]() |
图 2 主题分布特征提取的基本流程 Fig. 2 Workflow of topic distribution feature extraction |
将经过预处理之后的用户历史评论分词集合视为一个文档.根据本文的分析可知, 具有相似偏好的用户的评论的主题分布应具有相似性.本文通过LDA计算用户历史评论的主题概率分布, 并将LDA结果作为主题分布的特征向量.
由于LDA所得主题分布特征向量为概率, 使用JS散度(Jensen-Shannon divergence)[12-13]作为主题相似度度量标准, 计算用户间基于主题分布的相似度.
2.3 用户评论呈现图 1描述了用户评论呈现模块的基本框架, 基于用户之间的情感偏好相似度和主题分布偏好相似度, 为每个用户呈现与其偏好相似的用户群体评论.
相似群体聚类结合用户间情感偏好相似度和主题分布偏好相似度, 为每个用户发现与自身相似度较高的群体.
通常来说, 用户对某一事物的情感偏好会决定用户自身的选择.给定一个用户, 根据其与其他用户的情感偏好相似度进行排序, 取相似度最高的Top10用户作为初步相似群体集合.计算当前用户与与初步相似群体中每个用户的主题分布相似度.根据主题分布相似度, 对初步相似群体集合排序, 取相似度高的Top5作为最终相似群体.
对不同用户展示相似群体聚类模块所得到的最终结果, 实现个性化呈现用户评论.
3 实验验证 3.1 实验目的假设在目标酒店西餐厅评论过的好评用户1和差评用户220没有发表过评论, 通过CrowdReview对用户1和用户220个性化呈现用户评论.对比用户1和用户220发表的评论和CrowdReview推荐的评论, 验证CrowdReview方法的有效性.
3.2 实验数据集采集了大众点评西安市香格里拉大酒店西餐厅用户评论数据集以及所有评论用户历史评论足迹数据集进行实验验证.该数据集包括西安市香格里拉大酒店的298个评论用户的评论数据以及14 971条这些用户在大众点评上发表过的所有对餐厅的评论, 过滤处理后得到13 801条有效数据.选取两名用户作为测试用户.图 3展示了不同用户的历史评论店铺数量Num.
![]() |
图 3 不同用户历史评论餐厅数量 Fig. 3 Number of restaurant reviews by different user |
特别地, 对在香格里拉大酒店西餐厅评论过的用户, 本文以编号为1和编号为220的用户为例, 当其浏览该餐厅的用户评论时, 根据历史偏好个性化呈现用户评论.
3.3 实验结果图 4展示了不同用户对香格里拉大酒店西餐厅的评论情感Sen.图 5展示了用户1对不同餐厅的评论情感.图 6展示了用户1和用户220历史评论的主题概率Pt分布情况.实验数据表明, 不同用户根据自身偏好会对不同餐厅发表不同情感、主题倾向的评论, 基于用户评论的情感特征和主题分布特征刻画用户偏好是可行的.
![]() |
图 4 不同用户对目标酒店西餐厅的评论情感 Fig. 4 Emotion value of different users' comments on restaurant |
![]() |
图 5 用户1对历史评论过的餐厅的情感值 Fig. 5 Emotion value of user 1′s comments on restaurants |
![]() |
图 6 用户1和用户220历史发表评论的主题概率分布对比 Fig. 6 Comparison of user 1 and user 220′s topic probability distributions |
图 7展示了用户1与其他用户的情感相似度Ssim和主题分布相似度Tsim.图 8展示了用户220与其他用户的情感相似度和主题分布相似度.实验数据表明, 大量评论信息中, 很大部分的评论用户与用户1和用户220的偏好完全不同, 这些用户所发表的评论对用户1和用户220来说是冗余信息.选择图 7、8中与用户1、用户220情感相似度和主题相似度都较高的用户作为相似群体.图 9、10分别展示了用户1和用户220综合情感和主题相似度的相似群体的主题概率分布情况.结果表明, 相似群体用户的主题概率分布大体一致.
![]() |
图 7 用户1与其他用户的相似度 Fig. 7 Similarity between user 1 and others |
![]() |
图 8 用户220与其他用户的相似度 Fig. 8 Similarity between user 220 and others |
![]() |
图 9 与用户1情感和主题相似群体的主题概率分布 Fig. 9 Topic probability distribution of user 1 and similar group |
![]() |
图 10 与用户220情感和主题相似群体的主题概率分布 Fig. 10 Topic probability distribution of user 220 and similar group |
图 11、12分别展示了对未在西安市香格里拉大酒店西餐厅评论过的用户1和用户220, 当其浏览用户评论时, CrowdReview根据偏好个性化呈现的用户评论与实际体验后发表评论的对比.CrowdReview向用户1呈现与相似用户的评论, 这些用户对香格里拉大酒店西餐厅的评论情感倾向积极, 关注主题主要为服务、甜品、味道等.用户1实际体验后发表的评论情感偏好呈现积极态度, 关注主题与CrowdReview呈现评论主题相似.CrowdReview向用户220呈现与相似用户的评论, 这些用户对香格里拉大酒店西餐厅的评论情感倾向消极, 关注主题主要为菜品、厨师等.用户220实际体验后发表的评论情感偏好为消极, 关注主题与CrowdReview呈现评论的主题相似.通过对比发现, CrowdReview发现相似群体的结果是有效的, 可以实现向从未在该餐厅评论过的用户提供与其相似用户的评论这一目标.实验结果表明, 对于大量的用户评论信息, 采用提出的基于群体智能挖掘的个性化评论呈现方法, 可以有效地减少冗余信息, 提升评论的参考价值.
![]() |
图 11 CrowdReview呈现给用户1的个性化用户评论与用户1实际体验评论结果对比 Fig. 11 Comparison of CrowdReview's results and user 1's actual review |
![]() |
图 12 CrowdReview呈现给用户220的个性化用户评论与用户220实际体验评论结果对比 Fig. 12 Comparison of CrowdReview's results and user 220's actual review |
本文提出基于群体智能挖掘的个性化商品评论呈现方法, 以用户历史评论情感特征和主题分布特征对用户偏好进行刻画.基于此发现相似偏好群体, 为不同用户呈现与其相似度高的用户所发表的评论.实验表明, 采用提出的方法可以有效地减少冗余信息, 提升评论的参考价值.
当然, 本文提出的方法存在不足之处, 例如在发现与用户具有相似偏好的群体方面, 还需进一步探索其他可以表征用户偏好的特征, 包括历史评论餐厅地理位置、用户消费能力等.
[1] | SHIMADA K, TADANO R, ENDO T. Multi-aspects review summarization with objective information[J]. Procedia-Social and Behavioral Sciences, 2011, 27: 140–149. DOI:10.1016/j.sbspro.2011.10.592 |
[2] | ZHANG R, ZHANG Z, HE X, et al. Dish comment summarization based on bilateral topic analysis [C]//2015 IEEE 31st International Conference on Data Engineering. Seoul: IEEE, 2015: 483-494. |
[3] | BRANDOW R, MITZE K, RAU L F. Automatic condensation of electronic publications by sentence selection[J]. Information Processing and Management, 1994, 31(5): 675–685. |
[4] | PANG B, LEE L. A sentimental education: sentiment analysis using subjectivity summarization based on minimum cuts [C]//Proceedings of the 42nd ACL. [S. l.]: ACL, 2004: 271-278. |
[5] | PANG B, LEE L. Opinion mining and sentument analysis[J]. Foundations and Trends in Information Retrieval, 2008, 2(1/2): 1–135. |
[6] | PANG B, LEE L, VAITHYANATHAN S. Thumbs up? : sentiment classification using machine learning techniques [C]// ACL-02 Conference on Empirical Methods in Natural Language Processing. [S.l.]: ACL, 2002: 79-86. |
[7] | TAN S, ZHANG J. An empirical study of sentimentanalysis for chinese documents[J]. Expert Systems with Applications, 2008, 34(4): 2622–2629. DOI:10.1016/j.eswa.2007.05.028 |
[8] | HU M, LIU B. Mining opinion features in customer reviews [C]// Proceedings of the 19th National Conference on Artifical Intelligence. San Jose: AAAI, 2004: 755-760. |
[9] | TOKUDA N, CHEN L, SASAI H. New differential LSI space-based probabilistic document classifier: EP, EP1430378 [P]. [2016-07-01]. |
[10] | HOFMANN T. Probabilistic latent semantic indexing [C]// International ACM SIGIR Conference on Research and Development in Information Retrieval. Sheffield: ACM, 2004: 56-73. |
[11] | BLEI D M, NG A Y, JORDAN M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3: 993–1022. |
[12] | DAGAN I, LEE L, PEREIRA F C N. Similarity-based models of word cooccurrence probabilities[J]. Machine Learning, 1999, 34(1): 43–69. |
[13] | MELVILLE P, YANG S M, SAARTSECHANSKY M, et al. Active learning for probability estimationusing Jensen-Shannon divergence [C]//European Conference on Machine Learning. Porto: [s.n.], 2005. |