计算机类本科生毕业论文-基于机器学习的商品评论分析系统的设计与实现

彩虹网

致谢 45

附录:源代码 46

附件1:开题报告(文献综述)

附件2:英文论文及译文

1 绪论

项目开发背景

众所周知,中国电商近年来发展迅猛,规模日益增长,使得平时生活中的网络购物大行其道,平台之间竞争激烈,2015年时天猫、京东、销售额分别是11410万元、4627万元,分别是第一和第二,其中又是京东的增长速速度最迅猛,达到了77.83%。我国的电商平台种类纷多,有如亚马逊、淘宝等,其中,京东是其中很受大众喜爱的一个平台,2012年,京东在中国自营市场中占据了49%的市场份额。2018年11月1日至10日,国内消费者在京东电子商务平台下单金额突破上千亿人民币。2018年11月11日24时,京东电子商务平台仅在双十一购物节这天,国内消费者下单金额超过2017年双十一购物节达到1271亿元,交易规模巨大。2019年6月,京东公布“618”购物节的消费数据,京东电子商务平台有7.5亿的消费者,覆盖了全世界的范围,累计销售金额达到2015亿元,创历史新高。市场需求规模的日益扩大,应市场之需,发展起来了如京东、淘宝、亚马逊等一系列电子商务平台,电商平台之间也展开了激烈的商务摩擦以及竞争。

评论分析对客户和卖家都有很实际的意义。对商家而言,可以从对评论的分析中总结出自家产品的优劣之处,进而改进产品和服务,获得竞争上的优势。此外,评论分析还可为广告宣传和产品推荐提供精准的数据支持。对顾客而言,虽然商家会对商品进行全方面的描述,但却无法详述每个细节,但这些细节很可能出现在评论中。商家时常以他们的优势来推销自家的产品,故而他们提供的描述有时可能会与实际不符。另外,官方的描述经常使用某些行业术词,顾客可能会无法理解卖家想要表达的含义,而评论却往往容易理解,顾客能够通过评论对商品的真实信息有一个充分的了解,了解自己在意的商品属性的现实表现,减少不必要的跟风购买。

项目研究现状

由于其特殊性,网络评论的研究方向与方法和平常的普通文本研究会有一些不同之处。网络评论分析的目的是为了从评论中提取和呈现有价值的信息,并从海量的冗余信息中快速有效地过滤出所需信息。目前网络评论分析的研究有以下三个重点。

(1)评论质量分析

随着网上评论数量的增加,在大量的主观评论中不可避免地会出现垃圾评论。有些人因为对某一品牌有偏见而发布无意义或不准确的评论,有些人甚至会在评论区发布一些无用的广告信息。这些不愉快的评论的存在,不仅会对用户的浏览体验和潜在卖家的购买意愿产生影响,而且还会对商家产生负面影响。识别高质量的评论是使有价值评论发挥主要作用的唯一途径。

亚马逊创建了一个对评论的有用性进行评级的界面,客户能够根据他们对评论有用性的判断进行网络投票,该网站按照有效投票的百分比对评论进行排名。这种方法对后期看产品评论的顾客更有帮助,并能有效地看到最有用的评论,但对最初参与的顾客帮助不大。

早在1958年,Maffei等就指出了对信息质量进行分析的难处,这主要是因为作者对信息质量的主观判断,以及信息来源的复杂性和信息量,导致了信息收集的不准确。早期,评估信息质量主要依赖于数据,而现在的研究越来越注重对许多因素的综合分析,如作者和获取过程。有许多分析文献综述质量的研究,包括分析文献综述的有用性,分析文献综述的可靠性,检测文献综述中的垃圾,以及分析高质量和低质量的文献综述。Kim等介绍了有关评论的质量分析的话题,其中,他们使用亚马逊评论有用性调查结果作为训练集对评论的有用性进行了分析,也对语法的结构、文本的长度和评论的有效性等级等特质对评论效用的影响力进行了分析,得出的结论是,评论的文本长度、评论等级等特征的影响最为显著。曹青等人也研究了影响评论有用性的因素,发现了评论的语义信息对评论的质量有比较大的决定作用。mukherjee等提出了一种有关垃圾评论的检测方法,首先确定具有频繁模式的候选集,然后对候选集应用SVM。他们通过包括Sigmoid核函数和SVM中的线性核函数在内的4种类型的核函数来识别无用评论。

(2)挖掘评论属性词

评论属性词搜索是指从在线产品评论中确定被评论产品的特定属性对象。评论的属性可分为显性和隐性评论属性,取决于它们是否出现在评论集中。显性审查属性是直接出现在审查集中的审查对象,而隐性审查属性是不直接出现在审查集中的审查对象。隐性属性挖掘通常是在显性属性挖掘的基础上进行的,隐性属性词是通过利用隐性注释的价值导向词来挖掘显性属性词和价值导向词之间的关系而发现的。建议使用关联规则、聚类和修剪来寻找明确的属性词,或者使用句法规则同时寻找属性词、价值词及其关联关系。

在评论中,相同的产品属性可以用不一样的表达方式来表述,但描述一个属性的词通常是雷同的,如果评论集空间足够大,这些词会反复出现。利用这一特性,Hu等提出了一种更为经典的提取评论属性词的道路。他们利用词汇注释提取评论中的名词和名词短语,设定一个阈值,并删除出现在阈值以下的项目,以获得候选属性词。然后,通过严格修剪和冗余修剪来确定最终的注释属性词集。

Somprasertsri等人利用句法规则提取评论的属性词,在对评论句子进行句法分析后,标注了评论中的族表和主客体结构的主要结构。Li等人利用训练得到的规则与其他评论语料库进行匹配,找到评论中的属性词和评价词。使用句法规则来寻找定语从句,往往会遗漏一些定语从句,因为许多评论的语法并不正确,许多评论的语法也不正确。搜索属性词的手动词典能提供更准确的结果,但其方法并不具有普适性。必须为不同的产品创建不同的属性字典,这需要大量的人工努力。

(3)情感分析

情感的表达通常是指某一事件或某一对象,表达作者的态度。作者的态度大致可以分为两类:积极和消极情绪。以情感分析的粒度为依据,它可以分为三个级别,即文档级情感分析、句子级情感分析和单词级情感分析。

第一类是词法层面的情感分析。它是在句子和文件层面进行情感分析的基础。目前,在词汇层面上有2种分析情感极性的方法。一个是基于情感字典的,另一个是基于语料库的。使用语料库的方法是通过统计来算出词条的情感倾向。首先,必须选择起始词,一般使用相互信息等方法来计算词条和起始词之间的接近程度,并确定新词条是正还是负。在基于情感词典的方法中,sentiwordnet是英语文献中常用的词典。sentiwordnet是基于现有的英语词典资源Wordnet,它为单词分配积极或消极的情感权重;常用的中文词典是HowNet。

第二类是句子层面的情感分析。Wang将副词和形容词作为句子层面情感分析的重要工具。贝叶斯分类技术和启发式学习的结合被用作分析句子的情感倾向的主要依据,以确定评论句子的情感倾向。Wang Gen等人提出了一种具有多个冗余标记的CFR方法。在现有的几个词典的基础上,构建了一个情感词典,用于分析句子的情感倾向。而刘康等人提出了一种基于序列注释的方法,用于基于层次关系的句子的情感分析。

最后一类是文件层面的情感分析。文档层面的情感分析是对整个文档的情感倾向的分析。在Eguchi中提到,当对包含情感特征的文件的某一方面进行情感分析时,只需要对文件的情感内容部分进行总结,以确定该文件是负面的还是正面的。来自文献的积极和消极的情感术语被总结出来,以确定整个文件的情感极性。xunjing等人使用隐马尔可夫模型来识别具有主观性的句子,并对句子层面的情感进行建模,以获得评论文档的全局情感摘要。

项目开发目的

通过分析产品的评论数据,不仅可以得出其他消费者对产品的倾向,帮助消费者做出合理的购买决定,而且商家还可以通过分析结果了解消费者对商品的看法,改善商品的缺陷,保持优势,使得商品更能满足用户需求,从而提高品牌竞争力。因此,商品评论分析在生活中具有很高的研究价值和实用价值。

本系统以京东商品平台为例,使用seleinum展示京东商品页面,用户可以在浏览页面的途中通过点击商品从而触发后台的分析,后台通过分析数据请求接口的方式,使用Requests库爬取用户点击的京东商品的评论,然后通过分析大量商品评论来提取出用户视角中某一商品的闪光点,并使用列表展现;同时,采用支持向量机(SVM)和SnowNLP的基于朴素贝叶斯的机器学习算法两种方式训练模型,将爬取的商品评论交由训练出的分类器进行情感倾向预测,使用PySide2做图形界面,将评论显示在表格中,同时统计好评及差评数目,以饼状图的方式进行展现,并将关键词通过词云的形式展现。最后,以折线图的方式展示近期的评论的好评率,且可以通过点击好评率不高的数据点来展示这段时间中的差评,从而帮助使用者发现商品的不足。对商家而言,可以精准即时地改进商品;对用户而言,可以更准确地得到近期的商品质量等方面的信息,从而做出更好的选择。

2 可行性分析与需求分析

2.1 可行性分析

课题基于机器学习的商品评论分析系统的设计与实现的可行性将从技术可行性、经济可行性和操作可行性三个方面进行分析。

2.1.1 技术可行性

本系统使用的开发语言是python,爬虫使用的是requests库和selenium,大型电商平台比如京东淘宝等近年来越来越重视反爬虫,我们可以通过购买专业代理或者设置本地的ip代理池来实现爬取,虽然并不稳定但基本上还是有用的。这些开发工具都是可以免费使用和跨平台的,非常方便。可视化界面使用的是pyside2,具快速开发、有易上手的特点。整个系统设计为一个小型系统,且功能设计不复杂,系统中使用的是常见的开发工具和相关技术。因此可以说,本系统在技术上是可行的。

2.1.2 经济可行性

本分析系统中使用到的开发工具和技术都是免费的,python编程语言的开发工具Pycharm也可以通过社区版或学生验证的方式获取到免费版本。因此,此系统在经济上是可行的。

2.1.3 操作可行性

本分析系统用户交互界面没有复杂的设计,其界面采用扁平化设计,将真正有用的信息直接展示在使用者面前,体现了简约而不简单的原则。在整体设计上,由于简化操作和简洁明了的提示信息,使使用者可以在初次使用本系统的情况下快速上手系统。操作上,系统参考了一些商业化商品评价分析的操作设计,力求减少冗余的操作,让用户可以在最少的操作次数内达到目的,因此在操作上是可行的。

2.2 需求分析

本系统以京东商品为例,使用seleinum展示京东商品页面,用户可以在浏览页面的途中通过点击商品从而触发后台的分析,后台使用Requests库爬取用户点击的京东商品的评论,然后通过分析大量商品评论来提取出用户视角中某一商品的闪光点,并使用列表展现;同时,采用支持向量机(SVM)和SnowNLP的基于朴素贝叶斯的机器学习算法两种方式训练模型,将爬取的商品评论交由训练出的分类器进行情感倾向预测,使用PySide2做图形界面,将评论显示在表格中,同时统计好评及差评数目,以饼状图的方式进行展现,并将关键词通过词云的形式展现。最后,以折线图的方式展示近期的评论的好评率,且可以通过点击好评率不高的数据点来展示这段时间中的差评,从而帮助使用者发现商品的不足。

2.2.1 技术需求

使用到的技术:

(1)爬虫技术。需要使用到python的请求库reqeust、解析库BeautifulSoup、数据库MySQL、存储库(python和mysql交互的中间层)PyMySQL。当然,还需要对网页的基本知识有所了解,比如http基本原理、会话和cookie、IP代理以及ajax等等。

(2)朴素贝叶斯算法。朴素贝叶斯可用于二分类问题,“朴素”的含义是假设特征之间是相互独立且同等重要。贝叶斯的核心就是在已知先验概率的情况下,通过样本数据的统计,计算出后验概率,也就是在加入新条件(信息)的情况下对先验概率进行调整,得到一个更加准确的后验概率。当然,贝叶斯方法还要一个很重要的应用就是简化计算。

(3)word2vec技术。需要明白词向量、余弦相似度、SVD分解、交叉熵等基础知识,word2vec主要是使用基于BP神经网络的方法训练出来的,为了实用性,还通常使用PCA降维技术。

(4)支持向量机(SVM)算法。SVM是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习的样本求解的最大边距超平面。

(5)PySide2库,主要用ui界面设计。PySide2和QT语法十分类似,它是官方推荐的新潮流,可以看成是逐渐取缔PYQT的存在。

(6)python语言。3.Python提供了非常完善的基础代码库,用Python开发,许多功能不必从零编写,直接使用现成的即可。

2.2.2 用户需求

用户可以通过点击商品,得到统计分析出来的一些数据,比如好评率以及商品最被认可的几个方面,也可以通过词云对商品有一个直观的了解,最后可以查看统计下来的近期商品的评论好评率(折线图形式),以及查看好评率不高时的差评数据。

2.2.3 功能需求

(1)网络爬虫的实现(爬取某个商品大量评论和爬取某类商品的大量评论作为训练集这两个部分)。

(2)基于朴素贝叶斯的商品情感倾向分析实现。通过使用自己针对某些商品爬取的特定数据作为训练集以提高预测准确率。

(3) word2vec实现词向量的训练。采用wiki中文语料库作为训练的语料。

(4)基于SVM的商品情感倾向分析实现。SVM比较复杂,所以分析速度较慢,但是准确度较高。

(5)数据集的准备和训练。

(6)词云的实现。

(7)统计好评和差评得到好评率并通过饼状图展示。

(8)实现统计评论好评中的出现次数最多的5大商品闪光点。

(9)按月统计近期(最多11个月)的好评率并通过折线图展示,然后可以通过点击折线图的数据点展示相应月份的差评数据,这样有助于使用者实时且具有针对性地了解产品出了什么问题。

(10)需要去除那些默认好评,默认好评一般是没有什么价值的,而京东依然将其算入到了好评率中,这是不妥的,故将其去除,这样得到的好评率更有意义。

2.2.4 界面需求

(1)爬虫界面,可以监测用户是否点击了商品,然后进行相关商品评论的爬虫,并且在图形界面展示商品图片、名字和所有爬取到的数据。还有分析按钮,可以选择使用何种方式进行分析,其中,snowNLP的分析较快,而更加复杂的SVM分析则相对较慢但准确度较高。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。