随着网上购物的流行,各大电商竞争激烈,为了提高客户服务质量,除了打价格战外,了解客户的需求点,倾听客户的心声也越来越重要,其中重要的方式 就是对消费者的文本评论进行数据挖掘.今天通过学习《R语言数据挖掘实战》之案例:电商评论与数据分析,从目标到操作内容分享给大家。
本文的结构如下
1.要达到的目标
通过对客户的评论,进行一系列的方法进行分析,得出客户对于某个商品的各方面的态度和情感倾向,以及客户注重商品的哪些属性,商品的优点和缺点分别是什么,商品的卖点是什么,等等..
2.文本挖掘主要的思想.
由于语言数据的特殊性,我们主要是将一篇句子中的关键词提取出来,从而将一个评论的关键词也提取出来,然后根据关键词所占的权重,这里我们用空间向量的模型,将每个特征关键词转化为数字向量,然后计算其距离,然后聚类,得到情感的三类,分别是正面的,负面的,中性的.用以代表客户对商品的情感倾向.
3.文本挖掘的主要流程:
4.案例流程简介与原理介绍及软件操作
4.1数据的爬取
首先下载八爪鱼软件,链接是http://www.bazhuayu.com/download,下载安装后,注册账号登录, 界面如上:
点击快速开始—新建任务,输入任务名点击下一步,打开京东美的热水器页面
复制制页面的地址到八爪鱼中去如下图:
观察网页的类型,由于包含美的热水器的页面不止一页,下面有翻页按钮,因此我们需要建立一个循环点击下一页, 然后在八爪鱼中的京东页面上点击下一页,在弹出的对话列表中点击循环点击下一页,如图:
然后点击一个商品,在弹出的页面中点击添加一个元素列表以处理一祖元素–再点击添加到列表—继续编辑列表,接下来我们点击另一商品的名字,在弹出的页面上点击添加到列表,这样软件便自动识别了页面中的其他商品,再点击创建列表完成,再点击循环,这样就创建了一个循环抓取页面中商品的列表,
然后软件自动跳转到第一个商品的具体页面,我们点击评论,在弹出页面中点击 点击这个元素,看到评论也有很多页,这时我们又需要创建一个循环列表,同上,点击下一页—循环点击.然后点击我们需要抓取的评论文本,在弹出页面中点击创建一个元素列表以处理一组元素—-点击添加到列表—继续编辑列表,然后点击第2个评论在弹出页面中点击添加到列表—循环,再点击评论的文本选择抓取这个元素的文本.好了,此时软件会循环抓取本页面的文本,如图:
都点击完成成后,我们再看设计器发现有4个循环,第一个是翻页,第二个是循环点击每一个商品,第三个是评论页翻页,第4个是循环抓取评论文本,这样我们需要把第4个循环内嵌在第3个循环里面去,然后再整体内嵌到第2个循环里面去,再整体内嵌到第1个循环里面去,这样的意思就是,先点下一页,再点商品,再点下一特,再抓取评论,这套动作循环.那么我们在设计器中只需拖动第4个循环到第3个循环再这样拖动下去.即可: 拖动结果如下:,再点下一步—下一步–单击采集就OK 了.4.2文本去重
本例使用了京东平台下对于美的热水器的客户评论作为分析对象,按照流程,首先我们使用八爪鱼在京东网站上爬取了客户对于美的热水器的评论,部分数据如下!
进行简单的观察,我们可以发现评论的一些特点,
文本短,基本上大量的评论就是一句话.
情感倾向明显:明显的词汇 如”好” “可以”
语言不规范:会出现一些网络用词,符号,数字等
重复性大:一句话出现词语重复
数据量大.
故我们需要对这些数据进行数据预处理,先进行数据清洗,
编辑距离去重其实就是一种字符串之间相似度计算的方法。给定两个字符串,将字符串A转化为字符串B所需要的删除、插入、替换等操作步骤的数量就叫做从A到B的编辑路径。而最短的编辑路径就叫字符串A、B的编辑距离。比如,“还没正式使用,不知道怎样,但安装的材料费确实有点高,380”与“还没使用,不知道质量如何,但安装的材料费确实贵,380”的编辑距离就是9.
首先,针对重复的评论我们要去重,即删掉重复的评论.
另外一句话中出现的重复词汇,这会影响一个评论中关键词在整体中出现的频率太高而影响分析结果.我们要将其压缩.
还有一些无意义的评论,像是自动好评的,我们要识别并删去.
4.3压缩语句的规则:
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
http://blog.csdn.net/huagong_a … 37616
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
上下载。
7.1 Rostcm6实现:
打开软件ROSTCM6
这是处理前的文本内容,我们将爬取到的数据,只去除评论这一字段,然后保存为TXT格式,打开如下,按照流程我们先去除重复和字符,英文,数字等项.
2.点 文本处理–一般性处理—处理条件选 “凡是重复的行只保留一行”与”把所有行中包含的英文字符全部删掉” 用来去掉英文和数字等字符
这是处理后的文档内容,可以看到数字和英文都被删除了.3.接下来, 再进行分词处理. 点 功能分析 —-分词 (这里可以选择自定义词库,比如搜狗词库,或者其他)
得分词处理后的结果.,简单观察一下,分词后 ,有许多 “在”,”下”,”一”等等无意义的停用词
4.接下来,我们进行专有名词,停用词过滤. 并统计词频.点 功能分析 —词频分析(中文)
在功能性分析下点情感分析,可以进行情感分析,
并可以实现云图的可视化.
7.2 R的实现
这里需要安装几个必须包,因为有几个包安装比较复杂,这里给了链接http://blog.csdn.net/cl1143015 … 82731
大家可以参看这个博客安装包.安装完成后就可以开始R文本挖掘了
加载工作空间
library(rJava)
library(tmcn)
library(Rwordseg)
library(tm)
setwd(“F:/数据及程序/chapter15/上机实验”)
data1=readLines(“./data/meidi_jd_pos.txt”,encoding = “UTF-8″)
head(data1)
data<-data1[1:100]
—————————————————————#Rwordseg分词
data1_cut=segmentCN(data1,nosymbol=T,returnType=”tm”)
删除\n,英文字母,数字
data1_cut=gsub(“\n”,””,data1_cut)
data1_cut=gsub(“[a-z]*”,””,data1_cut)
data1_cut=gsub(“\d+”,””,data1_cut)
write.table(data1_cut,’data1_cut.txt’,row.names = FALSE)
Data1=readLines(‘data1_cut.txt’)
Data1=gsub(‘\”‘,”,data1_cut)
length(Data1)
head(Data1)
———————————————————————– #加载工作空间
library(NLP)
library(tm)
library(slam)
library(topicmodels)
R语言环境下的文本可视化及主题分析
setwd(“F:/数据及程序/chapter15/上机实验”)
data1=readLines(“./data/meidi_jd_pos_cut.txt”,encoding = “UTF-8”)
head(data1)
stopwords<- unlist (readLines(“./data/stoplist.txt”,encoding = “UTF-8”))
stopwords = stopwords[611:length(stopwords)]
删除空格、字母
Data1=gsub(“\n”,””,Data1)
Data1=gsub(“[a~z]*”,””,Data1)
Data1=gsub(“\d+”,””,Data1)
构建语料库
corpus1 = Corpus(VectorSource(Data1))
corpus1 = tm_map(corpus1,FUN=removeWords,stopwordsCN(stopwords))
建立文档-词条矩阵
sample.dtm1 <- DocumentTermMatrix(corpus1, control = list(wordLengths = c(2, Inf)))
colnames(as.matrix(sample.dtm1))
tm::findFreqTerms(sample.dtm1,2)
unlist(tm::findAssocs(sample.dtm1,’安装’,0.2))
—————————————————————–
#主题模型分析
Gibbs = LDA(sample.dtm1, k = 3, method = “Gibbs”,control = list(seed = 2015, burnin = 1000,thin = 100, iter = 1000))
最可能的主题文档
Topic1 <- topics(Gibbs, 1)
table(Topic1)
每个Topic前10个Term
Terms1 <- terms(Gibbs, 10)
Terms1
——————————————————————- #用vec方法分词
library(tmcn)
library(tm)
library(Rwordseg)
library(wordcloud)
setwd(“F:/数据及程序/chapter15/上机实验”)
data1=readLines(“./data/meidi_jd_pos.txt”,encoding = “UTF-8”)
d.vec1 <- segmentCN(data1,returnType = “vec”)
wc1=getWordFreq(unlist(d.vec1),onlyCN = TRUE)
wordcloud(wc1$Word,wc1$Freq,col=rainbow(length(wc1$Freq)),min.freq = 1000)
#
8.结果展示与说明
这是分析的部分结果.可以看到大部分客户的评论包含积极情绪,说明了客户对于美的热水器认可度比较高满意度也可以,当然,我们仅凭情感分析的结果是无法看出,客户到底对于哪些方面满意,哪些方面不满意,我们有什么可以保持的地方,又有哪些需要改进的地方,这就需要我们的另一项结果展示.
点可视化工具,便可得到词频云图.根据云图,我们可以看到客户最最关心的几个点,也就是评论中,说得比较多的几个点,由图我们可以看到”安装”,”师傅””配件””加热””快””便宜””速度””品牌””京东””送货”“服务””价格””加热”等等关键词出现频率较高,我们大致可以猜测的是26
安装方面的问题
热水器价格方面比较便宜
热水器功能方面 加热快,
京东的服务和送货比较快.
另外值得我们注意的是,云图里面,也有些”好”,”大”,”满意”等等出现比较多的词,我们尚且不知道这些词背后的语义,这就需要我们去找到相应的评论,提取出这些词相应的主题点.再加以优化分析的结果
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
“最近复购率一直在下降,我们的营销力度不小啊,为什么用户还是走了?” “是不是广告投放的用户质量不高?还是我们的产品问题 ...
2025-02-21以下文章来源于数有道 ,作者数据星爷 SQL查询是数据分析工作的基础,也是CDA数据分析师一级的核心考点,人工智能时代,AI能为 ...
2025-02-19在当今这个数据驱动的时代,几乎每一个业务决策都离不开对数据的深入分析。而其中,指标波动归因分析更是至关重要的一环。无论是 ...
2025-02-18当数据开始说谎:那些年我们交过的学费 你有没有经历过这样的场景?熬了三个通宵做的数据分析报告,在会议上被老板一句"这数据靠 ...
2025-02-17数据分析作为一门跨学科领域,融合了统计学、编程、业务理解和可视化技术。无论是初学者还是有一定经验的从业者,系统化的学习路 ...
2025-02-17挖掘用户价值本质是让企业从‘赚今天的钱’升级为‘赚未来的钱’,同时让用户从‘被推销’变为‘被满足’。询问deepseek关于挖 ...
2025-02-17近来deepseek爆火,看看deepseek能否帮我们快速实现数据看板实时更新。 可以看出这对不知道怎么动手的小白来说是相当友好的, ...
2025-02-14一秒精通 Deepseek,不用找教程,不用买资料,更不用报一堆垃圾课程,所有这么去做的,都是舍近求远,因为你忽略了 deepseek 的 ...
2025-02-12自学 Python 的关键在于高效规划 + 实践驱动。以下是一份适合零基础快速入门的自学路径,结合资源推荐和实用技巧: 一、快速入 ...
2025-02-12“我们的利润率上升了,但销售额却没变,这是为什么?” “某个业务的市场份额在下滑,到底是什么原因?” “公司整体业绩 ...
2025-02-08活动介绍 为了助力大家在数据分析领域不断精进技能,我们特别举办本期打卡活动。在这里,你可以充分利用碎片化时间在线学习,让 ...
2025-02-071、闺女,醒醒,媒人把相亲的带来了。 我。。。。。。。 2、前年春节相亲相了40个, 去年春节相亲50个, 祖宗,今年你想相多少个 ...
2025-02-06在数据科学的广阔领域中,统计分析与数据挖掘占据了重要位置。尽管它们常常被视为有关联的领域,但两者在理论基础、目标、方法及 ...
2025-02-05在数据分析的世界里,“对比”是一种简单且有效的方法。这就像两个女孩子穿同一款式的衣服,效果不一样。 很多人都听过“货比三 ...
2025-02-05当我们只有非常少量的已标记数据,同时有大量未标记数据点时,可以使用半监督学习算法来处理。在sklearn中,基于图算法的半监督 ...
2025-02-05考虑一种棘手的情况:训练数据中大部分样本没有标签。此时,我们可以考虑使用半监督学习方法来处理。半监督学习能够利用这些额 ...
2025-02-04一、数学函数 1、取整 =INT(数字) 2、求余数 =MOD(除数,被除数) 3、四舍五入 =ROUND(数字,保留小数位数) 4、取绝对值 =AB ...
2025-02-03作者:CDA持证人 余治国 一般各平台出薪资报告,都会哀嚎遍野。举个例子,去年某招聘平台发布《中国女性职场现状调查报告》, ...
2025-02-02真正的数据分析大神是什么样的呢?有人认为他们能轻松驾驭各种分析工具,能够从海量数据中找到潜在关联,或者一眼识别报告中的数 ...
2025-02-01现今社会,“转行”似乎成无数职场人无法回避的话题。但行业就像座围城:外行人看光鲜,内行人看心酸。数据分析这个行业,近几年 ...
2025-01-31