文章句子采集软件(《R语言数据挖掘实战》之案例:电商评论与数据分析)
优采云 发布时间: 2022-01-08 05:17文章句子采集软件(《R语言数据挖掘实战》之案例:电商评论与数据分析)
随着网络购物的普及和各大电商之间的激烈竞争,为了提高客户服务质量,除了打价格战之外,了解客户的需求,倾听他们的声音越来越重要. 文本评论的数据挖掘。今天,通过学习《R语言数据挖掘实战》案例:电商评论与数据分析,从目标到操作内容与大家分享。
本文结构如下
1.要达到的目标
通过对客户的评论进行分析,通过一系列的方法来获取客户对某个产品的各个方面的态度和情感倾向,以及客户关注该产品的哪些属性,有哪些优势,以及产品的缺点,以及产品的卖点是什么,等等...
2.文本挖掘的主要思想。
由于语言数据的特殊性,我们主要提取句子中的关键词,从而提取出评论的关键词,然后根据关键词的权重,这里我们使用空间向量的模型,将每个特征关键词转换成数字向量,然后计算其距离,然后聚类得到三类情绪,分别是正面、负面和中性。用途 代表顾客对产品的情感倾向。
3.文本挖掘的主要流程:
4.案例流程介绍及原理介绍及软件操作
首先下载优采云软件,链接为,下载安装后注册账号登录,界面如下:
本例以京东平台下对美的热水器的客户评论作为分析对象。按照流程,首先我们使用优采云在京东网站上抓取客户对美的热水器的评论。部分数据如下:
进行一个简单的观察,我们可以发现评论的一些特点,
文字很短,大量的评论基本上就是一句话。情绪倾向明显:“好”、“能”等明显词不是标准化语言:会有一些网络词、符号、数字等。 重复:一个句子中重复的词数据量大。
因此,我们需要对这些数据进行数据预处理,首先进行数据清洗,
编辑距离去重实际上是一种计算字符串之间相似度的方法。给定两个字符串,将字符串 A 转换为字符串 B 所需的删除、插入、替换等操作的次数称为从 A 到 B 的编辑路径。最短的编辑路径称为字符串 A 和 B 的编辑距离。对于比如“没正式用过,不知道怎么样,但是安装的材料成本确实有点高,380”和“还没用过,不知道质量,但是材料安装成本真的很贵,380" 编辑距离是9.
1.如果读入的和上面的列表一样,底部为空,放下
2.如果读入的和上面的列表一样,并且底部有,如果判断为重复,清除下表
3.如果读入的和上面的列表一样,底部有,判断不重,清除顶部和底部
4.如果读数与上面的列表不同,字符>=2,重复判断,清除上下。
5.如果读数与上面列表不同,底部为空,判断不重要,继续放
6.如果读入的和上面的列表不一样,有下面,判断不重,放下
7.看完后判断上下,重则压缩。
中文分词是指将一系列汉字分割成独立的词。分词结果的准确性对文本挖掘效果非常重要。目前,分词算法主要有四种:字符串匹配算法、基于理解的算法、基于统计的方法和基于机器学习的算法。
1.字符串匹配算法是将要分割的文本字符串与字典中的单词进行精确匹配。如果字典中的字符串出现在当前要分割的文本中,则匹配成功。常用的匹配算法主要有前向最大匹配、反向最大匹配、双向最大匹配和最小分割。
2.基于理解的算法通过模拟现实中人类对句子的理解效果进行分词。这种方法需要句法结构分析,需要大量的语言知识和信息,比较复杂。
3.基于统计的方法是利用统计的思想进行分词。单词由单个单词组成。在文本中,相邻的词一起出现的次数越多,它们形成词的概率就越大;因此,可以用词之间的共现概率来反映词的概率,并且可以统计相邻词的共同出现。出现次数,并计算它们的共现概率。当共现概率高于设定的阈值时,可以认为它们可能构成一个词
4.最后一种是基于机器学习的方法:使用机器学习进行模型构建。构建大量分词文本作为训练数据,使用机器学习算法进行模型训练,利用模型对未知文本进行分词。
我们知道句子中经常有一些“la”、“ah”、“but”,这些句子的情态助词、关联词、介词等,这些词对句子的特点没有贡献,我们可以去掉他们,还有一些专有名词,对于这个分析案例,“热水器”和“中国”经常出现在评论中,我们知道,因为我们最初分析了热水器的评论,所以这些都是无用的信息。我们也可以删除。那么这里需要去掉这些词。一般通过已建立的自定义词库删除。
然后我们可以进行统计,绘制词频云图,大致了解这些关键词的情况,为我们接下来的分析提供素材。操作如下:
4.7 分词结果后,
我们开始建模和分析。面对模型选择的方法有很多,但总结起来只有两种,即向量空间模型和概率模型。这是一个代表模型。
模型 1:TF-IDF 方法:
方法A:将每个词的出现频率加权为其维度的坐标,从而确定一个特征的空间位置。
方法B:以所有出现的词所收录的属性为维度,然后以词与各属性的关系为坐标,定位一个文档在向量空间中的位置。
但实际上,如果某个词条在一类文档中频繁出现,则说明该词条能够很好地代表该类文本的特征,应该赋予此类词条更高的权重,并选择该词条作为该类文本的特征词将其与其他类型的文档区分开来。这就是 IDF 的不足之处。
模型 2:.LDA 模型
判断两篇文档相似度的传统方法是检查两篇文档中出现的词的数量,如TF-IDF等。这种方法没有考虑文本背后的语义关联,而可能出现在这两个文件中很常见。几乎没有,但这两个文件是相似的。
例如,有如下两句话:
“乔布斯离开了我们。”
“苹果的价格会下降吗?”
可以看出,上面两句话没有共同词,但是这两句话是相似的。如果用传统的方法判断两个句子肯定不相似,所以在判断文档相关性的时候,需要考虑文档的Semantics,而语义挖掘的武器就是主题模型,LDA就是其中比较多的一种有效的模型。
LDA模型是一种无监督的生成主题模型,它假设文档集中的文档按照一定的概率共享隐含主题集,隐含主题集由相关词组成。这里有三个集合,分别是文档集、主题集和词集。文档集到主题集服从概率分布,词集到主题集也服从概率分布。既然我们知道了文档集和词集,就可以根据贝叶斯定理找到主题集。具体算法很复杂,这里就不解释了。有兴趣的同学可以参考以下资料
1.数据复杂度较高,文本挖掘面向非结构化语言,文本非常复杂。
2.流程不同,文本挖掘更注重预处理阶段
3.大致流程如下:
5.应用领域:
1.舆情分析
2.搜索引擎优化
3.其他行业的辅助应用
6.分析工具:
ROST CM 6是武汉大学沉阳教授开发和编码的国内唯一一个协助人文社科研究的大型免费社交计算平台。软件可以实现一系列文本分析,如微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析、等。用户数超过7,000。,有剑桥大学、北海道大学、北京大学、清华大学、中国香港城市大学、澳门大学等*敏*感*词*100多所大学。下载链接:
RStudio 是 R 语言的集成开发环境 (IDE),其亮点在于出色的界面设计和编程辅助工具。它可以在多个平台上运行,包括 Windows、Mac、Ubuntu 和 Web 版本。此外,该软件是免费和开源的,可以在官方网站上找到:
下载。
7.1 Rostcm6 实现:
1. 打开软件 ROSTCM6
这是处理前的文本内容,我们会爬取数据,只去掉评论字段,然后保存为TXT格式,打开如下,按照流程,我们先去掉重复和字符,英文,数字和其他项目。
2.点击文本处理-一般处理-处理条件选择“重复行只保留一行”和“删除所有行中收录的所有英文字符”,去掉英文和数字等字符
这是处理后文档的内容,可以看到数字和英文都被去掉了。
3、接下来进行分词处理。点击功能分析-分词(这里可以选择自定义词库,比如搜狗词库,或者其他)
分数文字处理的结果。简单观察一下,分词后,有很多无意义的停用词,如“in”、“under”、“one”等
4. 接下来,我们过滤专有名词和停用词。并统计词频。点函数分析——词频分析(中文)
并且可以实现云图的可视化。
7.2 R 的实现
这里有几个必要的包需要安装,因为几个包的安装比较复杂,这里是链接
可以参考这个博客安装包。安装完成后就可以开始R文本挖掘了。以下代码说明文字较少,每个函数的作用对于初学者来说都比较陌生。读者可以先阅读这些文章文章,了解各个函数的作用后,使用R进行文本挖掘。链接如下:
%3D%3D&mid=210043787&idx=1&scene=4#wechat_redirect
读完之后就会清楚很多。
#加载工作区
库(rJava)
图书馆(tmcn)
库(Rwordseg)
图书馆(商标)
setwd("F:/数据和程序/第十五章/计算机实验")
data1=readLines("./data/meidi_jd_pos.txt",encoding = "UTF-8")
头(数据1)
数据
#—————————————————————#Rwordseg 分词
data1_cut=segmentCN(data1,nosymbol=T,returnType="tm")
#删除\n、英文字母、数字
data1_cut=gsub("\\n","",data1_cut)
data1_cut=gsub("[az]*","",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)
长度(数据1)
头(数据1)
#————————————————————————– #加载工作区
图书馆(自然语言处理)
图书馆(商标)
图书馆(大满贯)
图书馆(主题模型)
#R语言环境中的文本可视化和主题分析
setwd("F:/数据和程序/第十五章/计算机实验")
data1=readLines("./data/meidi_jd_pos_cut.txt",encoding = "UTF-8")
头(数据1)
停用词
停用词 = 停用词 [611:长度(停用词)]
# 删除空格、字母
数据1=gsub("\\n","",数据1)
Data1=gsub("[a~z]*","",Data1)
数据1=gsub("\\d+","",数据1)
#建立语料库
语料库1 =语料库(向量源(数据1))
corpus1 = tm_map(corpus1,FUN=removeWords,stopwordsCN(stopwords))
#创建文档术语矩阵
样本.dtm1
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))
#最有可能的主题文档
主题1
表(主题1)
#每个主题的前 10 个术语
条款1
条款1
#————————————————————————- #使用vec方法分词
图书馆(tmcn)
图书馆(商标)
库(Rwordseg)
图书馆(wordcloud)
setwd("F:/数据和程序/第十五章/计算机实验")
data1=readLines("./data/meidi_jd_pos.txt",encoding = "UTF-8")
d.vec1
wc1=getWordFreq(unlist(d.vec1),onlyCN = TRUE)
wordcloud(wc1$Word,wc1$Freq,col=rainbow(length(wc1$Freq)),min.freq = 1000)
################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ################################################# ############################################
8.结果展示及说明
这是分析结果的一部分。可以看出,大部分客户的评论都带有正面情绪,说明客户对美的热水器比较满意。对于哪些方面满意,哪些方面不满意,哪些方面可以保持,哪些方面需要改进,这就需要我们的成果再一次展示。
安装问题,热水器价格比较便宜,热水器功能快,京东服务和发货比较快。
另外值得注意的是,云图中还有一些“好”、“大”、“满意”等字眼。我们还不知道这些词背后的语义,这就需要我们找到对应的评论,提取这些词对应的话题点。然后添加优化分析的结果
PPV原创文章,严禁转载。