电商评论情感分析(上)
作者:@白加黑治感冒
随着网上购物的流行,各大电商竞争激烈,为了提高客户服务质量,除了打价格战外,了解客户的需求点,倾听客户的心声也越来越重要,其中重要的方式 就是对消费者的文本评论进行数据挖掘.今天通过学习《R语言数据挖掘实战》之案例:电商评论与数据分析,从目标到操作内容分享给大家。
本文的结构如下
1.要达到的目标
通过对客户的评论,进行一系列的方法进行分析,得出客户对于某个商品的各方面的态度和情感倾向,以及客户注重商品的哪些属性,商品的优点和缺点分别是什么,商品的卖点是什么,等等..
2.文本挖掘主要的思想.
由于语言数据的特殊性,我们主要是将一篇句子中的关键词提取出来,从而将一个评论的关键词也提取出来,然后根据关键词所占的权重,这里我们用空间向量的模型,将每个特征关键词转化为数字向量,然后计算其距离,然后聚类,得到情感的三类,分别是正面的,负面的,中性的.用以代表客户对商品的情感倾向. 36大数据(http://www.36dsj.com/)
3.文本挖掘的主要流程:
4.案例流程简介与原理介绍及软件操作
4.1数据的爬取 36大数据(http://www.36dsj.com/)
首先下载八爪鱼软件,链接是http://www.bazhuayu.com/download,下载安装后,注册账号登录, 界面如上:
点击快速开始—新建任务,输入任务名点击下一步,打开京东美的热水器页面 36大数据(http://www.36dsj.com/)
复制制页面的地址到八爪鱼中去如下图: 36大数据(http://www.36dsj.com/)
观察网页的类型,由于包含美的热水器的页面不止一页,下面有翻页按钮,因此我们需要建立一个循环点击下一页, 然后在八爪鱼中的京东页面上点击下一页,在弹出的对话列表中点击循环点击下一页,如图:
然后点击一个商品,在弹出的页面中点击添加一个元素列表以处理一祖元素–再点击添加到列表—继续编辑列表,接下来我们点击另一商品的名字,在弹出的页面上点击添加到列表,这样软件便自动识别了页面中的其他商品,再点击创建列表完成,再点击循环,这样就创建了一个循环抓取页面中商品的列表,
然后软件自动跳转到第一个商品的具体页面,我们点击评论,在弹出页面中点击 点击这个元素,看到评论也有很多页,这时我们又需要创建一个循环列表,同上,点击下一页—循环点击.然后点击我们需要抓取的评论文本,在弹出页面中点击创建一个元素列表以处理一组元素—-点击添加到列表—继续编辑列表,然后点击第2个评论在弹出页面中点击添加到列表—循环,再点击评论的文本选择抓取这个元素的文本.好了,此时软件会循环抓取本页面的文本,如图:
都点击完成成后,我们再看设计器发现有4个循环,第一个是翻页,第二个是循环点击每一个商品,第三个是评论页翻页,第4个是循环抓取评论文本,这样我们需要把第4个循环内嵌在第3个循环里面去,然后再整体内嵌到第2个循环里面去,再整体内嵌到第1个循环里面去,这样的意思就是,先点下一页,再点商品,再点下一特,再抓取评论,这套动作循环.那么我们在设计器中只需拖动第4个循环到第3个循环再这样拖动下去.即可: 拖动结果如下:,再点下一步—下一步–单击采集就OK 了.
4.2文本去重
本例使用了京东平台下对于美的热水器的客户评论作为分析对象,按照流程,首先我们使用八爪鱼在京东网站上爬取了客户对于美的热水器的评论,部分数据如下!
进行简单的观察,我们可以发现评论的一些特点,
- 文本短,基本上大量的评论就是一句话.
- 情感倾向明显:明显的词汇 如”好” “可以”
- 语言不规范:会出现一些网络用词,符号,数字等
- 重复性大:一句话出现词语重复
- 数据量大.
故我们需要对这些数据进行数据预处理,先进行数据清洗,编辑距离去重其实就是一种字符串之间相似度计算的方法。给定两个字符串,将字符串A转化为字符串B所需要的删除、插入、替换等操作步骤的数量就叫做从A到B的编辑路径。而最短的编辑路径就叫字符串A、B的编辑距离。比如,“还没正式使用,不知道怎样,但安装的材料费确实有点高,380”与“还没使用,不知道质量如何,但安装的材料费确实贵,380”的编辑距离就是9.
首先,针对重复的评论我们要去重,即删掉重复的评论. 36大数据(http://www.36dsj.com/)
另外一句话中出现的重复词汇,这会影响一个评论中关键词在整体中出现的频率太高而影响分析结果.我们要将其压缩.
还有一些无意义的评论,像是自动好评的,我们要识别并删去.
4.3 压缩语句的规则: 36大数据(http://www.36dsj.com/)
1.若读入与上列表相同,下为空,则放下2.若读入与上列表相同,下有,判断重复, 清空下表3.若读入与上列表相同,下有,判断不重,清空上下4.若读入与上列表不同,字符>=2,判断重复,清空上下5.若读入与上列表不同,下为空,判断不重,继续放上6.若读入与上列表不同,下有,判断不重,放下7.读完后,判断上下,若重则压缩.
4.4 然后我们再进行中文的分词,分词的大致原理是:
中文分词是指将一段汉字序列切分成独立的词。分词结果的准确性对文本挖掘效果至关重要。目前分词算法主要包括四种:字符串匹配算法、基于理解的算法、基于统计的方法和基于机器学习的算法。
1.字符串匹配算法是将待分的文本串和词典中的词进行精确匹配,如果词典中的字符串出现在当前的待分的文本中,说明匹配成功。常用的匹配算法主要有正向最大匹配、逆向最大匹配、双向最大匹配和最小切分。
2.基于理解的算法是通过模拟现实中人对某个句子的理解的效果进行分词。这种方法需要进行句法结构分析,同时需要使用大量的语言知识和信息,比较复杂。
3.基于统计的方法是利用统计的思想进行分词。单词由单字构成,在文本中,相邻字共同出现的次数越多,他们构成词的概率就越大;因此可以利用字之间的共现概率来反映词的几率,统计相邻字的共现次数,计算它们的共现概率。当共现概率高于设定的阈值时,可以认为它们可能构成了词
4.最后是基于机器学习的方法:利用机器学习进行模型构建。构建大量已分词的文本作为训练数据,利用机器学习算法进行模型训练,利用模型对未知文本进行分词。
4.5 得到分词结果后
我们知道,在句子中经常会有一些”了””啊””但是”这些句子的语气词,关联词,介词等等,这些词语对于句子的特征没有贡献,我们可以将其去除,另外还有一些专有名词,针对此次分析案例,评论中经常会出现”热水器”,”中国”这是我们已知的,因为我们本来就是对于热水器的评论进行分析,故这些属于无用信息.我们也可以删除.那么这里就要去除这些词.一般是通过建立的自定义词库来删除.
4.6 我们处理完分词结果后
便可以进行统计,画出词频云图,来大致的了解那些关键词的情况,借此对于我们下一步的分析,提供思考的材料.操作如下:
4.7 有了分词结果后
我们便开始着手建模分析了,在模型的选择面前,有很多方法,但总结下来就只有两类,分别向量空间模型和概率模型,这里分别介绍一个代表模型
模型一: TF-IDF法:
方法A:将每个词出现的频率加权后,当做其所在维度的坐标,由此确定一特征的空间位置.
方法B:将出现的所有词包含的属性作为维度,再将词与每个属性的关系作为坐标,然后来定位一篇文档在向量空间里的位置.
但是实际上,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是IDF的不足之处.
模型二:.LDA模型
传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的。
举个例子,有两个句子分别如下:
“乔布斯离我们而去了。”“苹果价格会不会降?”
可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA就是其中一种比较有效的模型。
LDA模型是一个无监督的生成主题模型,其假设:文档集中的文档是按照一定的概率共享隐含主题集合,隐含主题集合则由相关词构成。这里一共有三个集合,分别是文档集、主题集和词集。文档集到主题集服从概率分布,词集到主题集也服从概率分布。现在我们已知文档集和词集,根据贝叶斯定理我们就有可能求出主题集。具体的算法非常复杂,这里不做多的解释,有兴趣的同学可以参看如下资料http://www.52analysis.com/shujuwajue/2609.html
4.8 项目总结
1.数据的复杂性更高,文本挖掘面对的非结构性语言,且文本很复杂.
2.流程不同,文本挖掘更注重预处理阶段
3.总的流程如下:
5.应用领域
1.舆情分析
2.搜索引擎优化
3.其他各行各业的辅助应用
6.分析工具:
ROST CM 6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析,用户量超过7000,遍布海内外100多所大学,包括剑桥大学、日本北海道大学、北京大学、清华大学、香港城市大学、澳门大学众多高校。下载地址: http://www.121down.com/soft/softview-38078.html
RStudio是一种R语言的集成开发环境(IDE),其亮点是出色的界面设计及编程辅助工具。它可以在多种平台上运行,包括windows,Mac,Ubuntu,以及网页版。另外这个软件是免费和开源的,可以在官方网页:www.rstudio.org上下载。
下文继续>>>
End.