吉书佩 李晟宇
摘要:美食评论表达了人们的各种情感色彩和情感倾向性,对于消费者的选择具有重要的影响。通过结合情感分析和评论挖掘技术,设计并实现了一个美食评论挖掘系统,帮助用户从大量信息中快速选择最为合适的餐厅。
关键词:情感分析;评论挖掘;推荐系统
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)29-0208-03
Abstract:Food reviews express people's various emotionsand emotional tendencies, which have an important impact on consumers' choices. This paper combines emotional analysis and review miningto complete a food review mining system, which helps users to quickly select the most suitable restaurants from a large amount of information.
Key words:sentimental analysis;review mining;recommender system
1引言
随着以用户为中心的web2.0的发展,特别是大众点评、美团网等美食点评网站的飞速发展,为人们打造了一个良好的发表自己的观点和想法的环境,由此产生了大量的用户对于某一对象的评论信息。而由于这些美食评论信息越来越多,消费者更加容易迷失。
这些美食评论表达了人们的各种情感色彩和情感倾向性,同时也会对其他用户的决定造成影响。如今用户越来越习惯于参考其他用户的评论信息,倾向于选择口碑好、评价高的餐厅。但是,无论是餐馆还是评论数量都十分巨大,人工查找和利用这些评论信息成本很高。此外,传统的推荐系统所提供的得分往往是用户自己打出来的分数,而由于用户的评分标准不同,这个分数与用户评论内容往往并不相符。因此,如何从这些评论信息中搜集、提炼出有用的内容并分析出用户真正的情感信息就成为一个重要的课题。
在这一背景下,本文从餐饮这一行业出发,结合情感分析和评论挖掘技术,完成了一个美食评论挖掘系統,帮助用户从大量信息中快速选择最为合适的餐厅。
2系统框架
本文结合情感分析和评论挖掘技术,完成了一个美食评论挖掘系统,其主要由数据采集、特征提取、情感分析和美食应用四部分构成,如图1所示。
2.1 数据采集
美团、大众点评和百度糯米都是现阶段知名度和使用度最高的美食网站,有众多商铺入驻且评论数量多,因此更具有代表性。而又由于大众点评和美团合并导致商铺评论重合,因此最终我们选定美团和百度糯米两个网站作为此次评论采集的对象。
其次,我们将范围划定在南昌地区,又由于南昌地区的餐厅多样,评论繁多,为了使研究结果更加简洁明了,最终我们选取了火锅和西餐这两个最有代表性的种类作为此次研究的对象。
集搜客(http://www.gooseeker.com/)是一款操作方便、专业的数据采集器,可以使用爬虫群并发抓取海量网页,并且可以把数据直接导入Excel,非常适合我们做评论抓取。于是我们使用“集搜客”这款软件在2018年2月至2018年3月采集了这两家美食网站上的593家店铺,共312337条评论(已处理空白评论)。
2.2 特征提取
首先,我们对搜集到的评论进行分词处理并进行词频统计,在此基础上构建特征词表。
2.2.1 词频统计
词频统计是一种词汇分析研究方法,通过对一定长度文本的词频进行统计、分析,进而描绘出词汇规律。到目前为止,已有很多学者对词频统计规律进行研究,包括词频统计规律的提出[1-2]、验证[3]、应用[4-5]等各个方面[6]。这种方法适用于评价著作、确定某种语言或某学科的基本词汇。
我们使用“集搜客”的一个分词打标软件——天据英眼进行分词处理与词频统计。该软件操作简单,支持Excel直接导入,自动分词,并且可以把词语列表按照词频大小排序,点击词语可以查看样本数据,筛选出有用的词。系统会自动把词语与原文本进行匹配,得到选词结果表和打标结果表。因此我们使用该软件得到评论中的所有词语及出现频率。
2.2.2 提取特征词
我们从评论语料中抽取出现频率在200以上(最高频率在28000以上)的名词,人工判别其中与美食有关的名词,如“环境”、“口味”、“服务”等,并对这些名词进行分类,最终得到了有关餐厅的特征词和其对应的指示词,如表1所示。
2.3 情感分析
情感分析是指分析说话者在传达信息时所隐含的情绪状态,对说话者的态度、意见进行判断或者评估。按照处理文本的粒度不同,情感分析可分为词语级、短语级、句子级、篇章级以及多篇章级等几个研究层次[7]。而基于我们的研究内容,主要使用的句子级的情感分析。
在情感分析方面,主要使用的技术分两大类:一类是采用情感词典与规则相结合的方法,根据文本中所包含的正向情感词和负向情感词的个数来进行情感分类;另一类是用机器学习的方法,选择文本中的一些特征,标注训练集和测试集,使用朴素贝叶斯、最大熵、支持向量机等分类器来进行情感分类[8]。而本文将使用后者进行分析。
2.3.1 预处理
首先,由于每一条评论的内容中都包含多个特征词和指示词,且掺杂着许多与观点无关的词语或句子,这些语句会对之后的情感分析产生不可预见的影响。因此在进行评分之前,对文本进行筛选、分类并删除无关信息是必不可少的,简而言之,就是进行预处理。
Python语言是一种功能强大的具有解释性、交互性和面向对象的第四代计算机编程语言。Python也是一种脚本语言,它开发代码的效率非常高,它具有强大和丰富实用的第三方标准库,使得编程变得简洁快速。Python语言可通过其提供的标准库有效的解决用Python进行大数据处理的问题,这些数据转换成适合Python分析的数据结构,之后用Python相应的工具进行数据分析、处理,提出数据特征并用一定的结构形式表现出来[9]。
我们用Python语言编写程序对原评论进行处理,得到包含某个指示词的所有语句,并根据表1将这些指示词下的语句汇总在一起,即得到经过处理的、包含特征词的语句。比如,我们采集的评论中关于餐厅“小龙坎老火锅(胜利路店)”有一条评论为“味道很不错,就是量太少,都没吃饱,还可以,服务很好!!”则按指示词可分为“味道很不错”、“就是量太少”和“服务很好”,并把它们分别添加到该餐厅的特征词“味道”、“服务”和“份量”下面。
2.3.2 情感评分
得到经过处理并已按特征词分好组的语句后,我们选择使用Python的库——SnowNLP进行情感分析。SnowNLP中文文本分析工具是专门针对中文文本进行处理的类,可以进行中文分词、词性标注、情感分析、文本分类、提取文本关键词等。我们知道,任何一个情感分析工具都是被训练出来的。训练时使用的是什么文本材料,会直接影响到模型的适应性。而SnowNLP的训练文本就是评论数据。因此,用它来分析中文评论信息是比较合适的。但为了使分数更加合理,我们重新训练了情感分析模型,如图2所示。
我们使用该库对所有句子进行评分,得出每个句子里所包含的情感色彩。最后再按照餐厅得出每个特征词的平均分。例如上面的例子中,“味道很不错”得分为0.89,“就是量太少”得分为0.27,“服务很好”得分为0.77。由此我们便可得出每个餐厅在不同方面的得分。
注意,在这个过程中,我们并不对“人群”这一特征词进行处理,对于这一分类,我们只需对每个指示词在每个餐厅中出现的次数作记录即可。同样,“人均”这一指示词多为“人均XX元”这样的句式,因此,我们也不对其进行评分,而是算出每个餐厅的人均值为多少元。
2.4 系统应用
前面我们已经详细介绍了如何进行情感分析,并对我们采集到的评论按特征词分类并进行评分。在前文已得到相关数据的基础上,我们设计并开发了一款移动美食推荐系统。在该系统中,我们主要按照我们所得到的特征词——味道、服务、环境、价格、份量、位置、菜品、人气、人群——为用户进行推荐。用户可以选择自己感兴趣的某一个(或某几个)特征词,系统则将该特征词下的餐厅按照得分高低排序并返回给用户(若选择多个特征词,则将多个特征词的得分的平均数反馈给用户)。
3 系统演示
该系统使用eclipse软件开发,并使用SQL Server數据库。用JavaWeb开发网页,采用B/S三层架构,按不同用户的不同偏好为其推荐合适的餐厅,只要用户有浏览器就可以使用该系统。
接下来我们来演示一下这个系统。首先登录系统,会出现如图3所示的二级联动下拉框。
第一个下拉框可以选择火锅和西餐两个选项,第二个下拉框可以选择味道、服务、环境等特征词,可以多选。选择后出现如图4所示的查询结果。
该查询结果包括排名、店名、情感得分以及查看评论链接,用户可以点击店名跳转到相应的美团链接以查看餐厅的详细信息、地址以及电话等,也可以点击“查看评论详情”查看评论,如图5所示。
4结束语
随着O2O电子商务的快速发展,越来越多的人选择通过使用互联网和移动互联网来查找和订购美食。美食评论表达了人们的各种情感色彩和情感倾向性,对于消费者的选择具有重要的影响。本文结合情感分析和评论挖掘技术,完成了一个美食评论挖掘系统,帮助用户从大量信息中快速选择最为合适的餐厅。
参考文献:
[1] ZIPF G K.Human behavior and the principle of least effort: an in-troduction to human ecology[M].Boston: Addison-Wesley Press,1949: 23.
[2] BOOTH A D.A law of occurrences for words of low frequency[J].Information and Control,1967,10(4): 386-393.
[3] EGGHE L.A new short proof of Naranans theorem,explaining Lotkas law and Zipfs law[J]. Journal of the American Society for Information Science and Technology,2010,61(12): 2581-2583.
[4] CHAN P,HIJIKATA Y,NISHIDA S. Computing semantic relat-edness using word frequency and layout information of wikipedia[C]//Proceedings of the 28th Annual ACM Symposium on Ap-plied Computing.New York: ACM,2013: 282-287.
[5] SURYASEN R,RANA M S.Content analysis and application of Zipfs law in computer science literature[C]//Proceedings of the 2015 4th International Symposium on Emerging Trends and Technologiesin Libraries and Information Services.Piscataway,NJ: IEEE,2015: 223-227.
[6]罗燕,基于词频统计的文本关键词提取方法[J]. 计算机应用,2016,36(3): 718-725.
[7] Huang XJ, Zhao J. Sentiment analysis for Chinese text. Communications of CCF, 2008,4(2) (in Chinese with English abstract).
[8] 陈顾远. 一种基于微博数据的公众环境污染情感指数估算方法[G]//中国环境科学学会环境信息化分会.全国环境信息技术与应用交流大会暨中国环境科学学会环境信息化分会年会论文集. 北京:出版社不详,2016: 469-476
[9] 肖旻,陈行.基于Python语言编程特点及应用之探讨[J]. 电脑知识与技术,2014(6).
【通联编辑:王力】