文本挖掘和情感分析课件_第1页
文本挖掘和情感分析课件_第2页
文本挖掘和情感分析课件_第3页
文本挖掘和情感分析课件_第4页
文本挖掘和情感分析课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全国地方高校MOOC联盟指定参考书,深圳大学教材出版基金资助新媒体数据挖掘-基于R语言王小峰 方捷 主编课件ver1.0 by 王小峰第七章文本挖掘和情感分析7.1R环境下的文本挖掘7.2情感分析of402习题7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4037.1.1 中文分词 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,同理,中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。现有的分词算法可分为三大类:基于词典(也叫做模式或字符串模式)的方法、基于统计的方法和基于理解的分词方法。7.1R环境下的文本挖掘第七

2、章 文本挖掘和情感分析of404 定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。按照扫描方向的不同可分为正向匹配和逆向匹配,按照长度的不同可分为最大匹配和最小匹配。1 基于词典的分词方法从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数。01查找大机器词典并进行匹配:若匹配成功,则将这个匹配字段作为一个词切分出来。02若匹配不成功,则将这个匹配字段的最后一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复以上过程,直到切分出所有词为止。037.1R环境下的文本挖掘第七章 文本挖掘和情感分析of405

3、 举例:对“南京市长江大桥”这个句子进行分词,根据正向最大匹配的原则:1 基于词典的分词方法先从句子中拿出前5个字符“南京市长江”,把这5个字符到词典中匹配,发现没有这个词,那就缩短取字个数,取前四个“南京市长”,发现词库有这个词,就把该词切下来;01对剩余三个字“江大桥”再次进行正向最大匹配,会切成“江”、“大桥”02整个句子切分完成为:南京市长、江、大桥;03 显然词典的建立是中文分词的前期重要工作,但幸运的是,今天这些工作由R的各种软件包已经提前做好了!7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of406 随着大规模语料库的建立,统计机器学习方法的研究和发展,基于统计的中文分词方

4、法渐渐成为了主流方法。 其主要思想是给出大量已经分词的文本,利用统计机器学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。把每个词看做是由词的最小单位各个字总成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。因此我们就可以利用字与字相邻出现的频率来反应成词的可靠度,统计语料中相邻共现的各个字的组合的频度,当组合频度高于某一个临界值时,我们便可认为此字组可能会构成一个词语。主要的统计有模型:N元文法模型(N-gram),隐马尔可夫模型(Hidden Markov Model,HMM),最大熵模型(ME),条件随机场模型(Conditional Ra

5、ndom Fields,CRF)等。2 基于统计的分词方法7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of407 这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试

6、验阶段。3 基于理解的分词方法7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of408 文本挖掘的第一步,就是要进行分词,分词将直接影响文本挖掘的效果。R语言在分词方面有很好的支持,中文分词包“jiebaR”(结巴分词)就是一个不错的选择。jiebaR是一款高效的R语言中文分词包,底层使用的是C+,通过Rcpp进行调用很高效。结巴分词基于MIT协议,就是免费和开源的,感谢国人作者的给力支持,让R的可以方便的处理中文文本。jiebaR软件包的Github地址为:/qinwf/jiebaR。1 简介7.1.2 中文分词包jiebaR的使用7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4

7、09 文本挖掘的第一步,就是要进行分词,分词将直接影响文本挖掘的效果。R语言在分词方面有很好的支持,中文分词包“jiebaR”(结巴分词)就是一个不错的选择。jiebaR是一款高效的R语言中文分词包,底层使用的是C+,通过Rcpp进行调用很高效。结巴分词基于MIT协议,就是免费和开源的,感谢国人作者的给力支持,让R的可以方便的处理中文文本。jiebaR软件包的Github地址为: /qinwf/jiebaR。2 安装和简单实验if(!require(jiebaR)install.packages(jiebaR);library(jiebaR)if(!require(jiebaR)#如果第一种方

8、法不能安装,可使用devtools来进行安装 if(!require(devtools)install.packages(devtools);library(devtools) install_github(qinwf/jiebaRD) install_github(qinwf/jiebaR); library(jiebaR)wk = worker()wk我是图书新媒体数据挖掘实践基于R语言的作者wk show_dictpath()1 C:/Program Files/R/R-3.4.2/library/jiebaRD/dict# 查看目录dir(show_dictpath()1 C:/Pro

9、gram Files/R/R-3.4.2/library/jiebaRD/dict1 backup.rda hmm_model.utf8 hmm_model.zip 4 idf.utf8 idf.zip jieba.dict.utf87 jieba.dict.zip model.rda README.md 10 stop_words.utf8 user.dict.utf8scan(file=C:/Program Files/R/R-3.4.2/library/jiebaRD/dict/jieba.dict.utf8, what=character(),nlines=50,sep=n, enco

10、ding=utf-8,fileEncoding=utf-8)Read 50 items1 1号店 3 n 1號店 3 n 4S店 3 n 4s店 3 n AA制 3 n 6 AB型 3 n AT&T 3 nz A型 3 n A座 3 n A股 3 n 11 A輪 3 n A轮 3 n BB机 3 n BB機 3 n BP机 3 n 16 BP機 3 n B型 3 n B座 3 n B股 3 n B超 3 n 21 B輪 3 n B轮 3 n C# 3 nz C+ 3 nz CALL机 3 n26 CALL機 3 n CD机 3 n CD機 3 n CD盒 3 n C座 3 n 31 C盘 3

11、n C盤 3 n C語言 3 n C语言 3 n D座 3 n 36 D版 3 n D盘 3 n D盤 3 n E化 3 n E座 3 n 41 E盘 3 n E盤 3 n E通 3 n F座 3 n F盘 3 n 46 F盤 3 n G盘 3 n G盤 3 n H盘 3 n H盤 3 n“ 7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4014# 查看默认的词库位置 show_dictpath()1 C:/Program Files/R/R-3.4.2/library/jiebaRD/dict# 查看目录dir(show_dictpath()1 C:/Program Files/R/

12、R-3.4.2/library/jiebaRD/dict1 backup.rda hmm_model.utf8 hmm_model.zip 4 idf.utf8 idf.zip jieba.dict.utf87 jieba.dict.zip model.rda README.md 10 stop_words.utf8 user.dict.utf8”7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4015 (2) 探索词典 用户词典第一行有二列,第一列为词项,第二列为词性标记,没有词频的列。用户词典默认词频为系统词库中的最大词频。jiebaR包关于词典词性标记,如表7-2所示,是采用ict

13、clas的标记方法。ICTCLAS 汉语词性标注集。if(!require(devtools)install.packages(devtools);library(devtools)if(!require(stringi)install.packages(stringi);library(stringi)if(!require(pbapply)install.packages(pbapply);library(pbapply)if(!require(Rcpp)install.packages(Rcpp);library(Rcpp)if(!require(RcppProgress)install

14、.packages(RcppProgress);library(RcppProgress)if(!require(RcppProgress)install.packages(RcppProgress);library(RcppProgress)install_github(qinwf/cidian)library(cidian)# 转换二进制词典到文本文件。decode_scel(scel = ./14108.scel,cpp = TRUE)# 查看生成的词典文件scan(file=./14108.scel_2017-10-25_00_22_11.dict, what=character(),

15、nlines=50,sep=n, encoding=utf-8,fileEncoding=utf-8) 接下来把生成的搜狗词典放在词典目录下就可以使用了,或干脆直接替换掉user.dict.utf8。这样一来,jiebaR默认的用户词典就是搜狗词典了,功能打升级!7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4016scan(file=C:/Program Files/R/R-3.4.2/library/jiebaRD/dict/jieba.dict.utf8, what=character(),nlines=50,sep=n, encoding=utf-8,fileEncoding=

16、utf-8)Read 50 items1 1号店 3 n 1號店 3 n 4S店 3 n 4s店 3 n AA制 3 n 6 AB型 3 n AT&T 3 nz A型 3 n A座 3 n A股 3 n 11 A輪 3 n A轮 3 n BB机 3 n BB機 3 n BP机 3 n 16 BP機 3 n B型 3 n B座 3 n B股 3 n B超 3 n 21 B輪 3 n B轮 3 n C# 3 nz C+ 3 nz CALL机 3 n26 CALL機 3 n CD机 3 n CD機 3 n CD盒 3 n C座 3 n 31 C盘 3 n C盤 3 n C語言 3 n C语言 3 n

17、 D座 3 n 36 D版 3 n D盘 3 n D盤 3 n E化 3 n E座 3 n 41 E盘 3 n E盤 3 n E通 3 n F座 3 n F盘 3 n 46 F盤 3 n G盘 3 n G盤 3 n H盘 3 n H盤 3 n“ scan(file=C:/Program Files/R/R-3.4.2/library/jiebaRD/dict/user.dict.utf8, what=character(),nlines=50,sep=n, encoding=utf-8,fileEncoding=utf-8)Read 5 items1 云计算 韩玉鉴赏 蓝翔 nz CEO 江大

18、桥7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4017 停用词就是分词过程中我们不希望被作为结果的高频重复的词,英文例如the,or,and等,中文例如的,地,得,我,你,他等;这些词使用频率过高,如果被作为结果会在统计词频的时候引起噪音,因此通常将这些词过滤掉。 在jiebaR中,过滤停用词有2种方法,一种是通过配置stop_word文件,另一种是使用filter_segment()函数。5 停用词过滤新建一个stop_word.txt文件,内容为“我我是”wk = worker(stop_word=stop_word.txt) #加载分词引擎,并配置停用词过滤segment-wk

19、我是新媒体数据挖掘实践基于R语言图书的作者“filter-c(作者)filter_segment(segment,filter)7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4018 关键词提取是文本处理非常重要的一个环节,一个经典算法是TF-IDF算法。其中,TF(Term Frequency)代表词频,IDF(Inverse Document Frequency)表示逆文档频率。如果某个词在文章中多次出现,而且不是停用词,那么它很可能就反应了这段文章的特性,这就是我们要找的关键词。再通过IDF来算出每个词的权重,不常见的词出现的频率越高,则权重越大。 jiebaR包的关键词提取提取

20、的实现,也是使用了TF-IDF的算法。在安装目录中的idf.utf8文件,为IDF的语料库。6 关键词提取7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of40196 关键词提取segment-wkR以其强大的计算和统计能力、突出的可视化能力绘图,受到了越来越多的数据分析科研工作者的喜爱。freq(segment)# 计算词频keys = worker(keywords,topn=5)# 取TF-IDF的前5的关键词vector_keywords(segment,keys)# 计算关键词7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of40206 关键词提取wk = worker()s

21、egment-wkR以其强大的计算和统计能力、突出的可视化能力绘图,受到了越来越多的数据分析科研工作者的喜爱。freq(segment)# 计算词频7.1R环境下的文本挖掘第七章 文本挖掘和情感分析of4021 词云本身对于分析数据用处不大,但是因为它的直观和美观,在做报告的时候可达到锦上添花的效果。R里面绘制词云的包主要有wordcloud、wordcloud2(最新版本)。本节主要讲解wordcloud2的用法。7.1.3 词云包wordcloud2的使用wordcloud2(demoFreqC) #demoFreqC里面内置了一个数据集 wordcloud2(demoFreqC,colo

22、r=random-light,backgroundColor = green,shape = diamond)letterCloud(demoFreqC, word = LOVE, wordSize = 2)第七章文本挖掘和情感分析7.2情感分析7.1R环境下的文本挖掘of4022习题7.2情感分析第七章 文本挖掘和情感分析of4023 段文本或一篇文章反映了什么态度或情绪?是褒义还是贬义?是肯定还是否定?对这些内容的分析就是情感分析,或者叫情感倾向分析。情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向。当然,有正常阅读能力的人,在看了一篇文章后能够判断文章的情感和极性,但

23、这是主观体验,不是量化数据。在对文章进行分析的时候,通常需要进行量化的分析,显得更加直观、客观。7.2情感分析第七章 文本挖掘和情感分析of4024 目前情感分析的一些研究工作主要基于监督学习,无监督学习,基于规则和跨领域等方向展开。公认的情感分析比较系统的研究工作开始于(Pang et al., 2002)基于监督学习(supervised learning)方法对电影评论文本进行情感倾向性分类和(Turney,2002)基于无监督学习(unsupervised learning)对文本情感情感倾向性分类的研究。1 起源7.2情感分析第七章 文本挖掘和情感分析of4025 目前情感分析的研究

24、基本借鉴文本分类等机器学习的方法,还没有根据自身的特点形成一套独立的研究方法,当然在某种程度上也可以把情感分析看出一种特殊的文本分类。比较成熟的方法是基于监督学习的机器学习方法,半监督学习和无监督学习目前的研究不是很多,单纯的基于规则的情感分析这两年已很少研究了。既然目前很多情感分析的研究基于机器学习,那么特征选择就是一个很重要的问题,N元语法等句法特征是使用最多的一类特征,而语义特征(语义计算)和结构特征(树核函数)从文本分类的角度看效果远没有句法特征效果好,所以目前的研究不是很多的。2 发展 由于基于监督学习情感分析的研究已经很成熟了,而且在真实世界中由于测试集的数量要远远多于训练集的数量

25、,并且测试集的领域也不像在监督学习中被限制为和训练集一致,也就是说目前情感分析所应用的归纳偏置假设在真实世界中显得太强的,为了和真实世界相一致,基于半监督学习或弱指导学习的情感分析和跨领域的情感分析势必是将来的研究趋势。 在情感分析的最初阶段基于语义和基于规则的情感分析曾获得了比较大的重视,但是由于本身实现的复杂性以及文本分类和机器学习方法在情感分析应用上获得的成功,目前关于这方面的研究以及很少了,但是事实上,语义的相关性和上下文的相关性正是情感分析和文本分类最大的不同之处,所以将基于语义和规则的情感分析与基于机器学习的情感分析相结合也将是未来的研究趋势。7.2情感分析第七章 文本挖掘和情感分

26、析of4026目前有两种比较流行的情感分析方:机器学习法和词库法。机器学习法是在已知分类语料的情况下,构建文档-词条矩阵,然后应该各种分类算法(knn、NB、RF、SVM、DL等),预测出其他句子的情感。在此就分享一下自己如何通过词库的方式为每一句评论定性为正面或负面。词库法则什么高深的理论基础,其核心思想是对待分析文本进行分词,通过对比正负面词库,通过简单的加减法即可计算出句子的正负面得分。虽然正负面词库的构建、自定义词典的导入等工作较为繁琐,但该方法非常通俗易懂。127.2.2 情感分析的简单实现7.2情感分析第七章 文本挖掘和情感分析of4027 接下来以词库法实现一个简单的情感分析,t

27、ext.xls中是待分析评论文本(例如对大众CC的评论),存储为两列:idspace1我爱CC,超级省油,一箱油可以从深圳跑到福州,很满意2爆发性超强,5秒内加速到百公里不费劲3性价比高,比相同性能的宝马系实惠不少4感觉有缺陷,内饰有毛刺5我觉得被欺骗了,价格上面有水分6流线型无边框设计,超级好看正面词库pos.txt的内容为(注意每个词在txt文本中独占一行,这里以空格显示,下同):超赞 智能 满意 强大 超强 稳定 优惠 超强 很好 快速稳定 省油 好看 耐看 实惠。负面词库neg.txt的内容为:漏气 慢 差 差劲 毛刺 缺陷 亏 被坑 骗 被骗 欺骗 隐瞒。停用词库stopwords.

28、txt的内容为:了 我 的 车 买 跑 在 钱 到 里面 下面 简直。7.2情感分析第七章 文本挖掘和情感分析of4028if(!require(readxl)install.packages(readxl);library(readxl)if(!require(jiebaR)install.packages(jiebaR);library(jiebaR)if(!require(plyr)install.packages(plyr);library(plyr)if(!require(wordcloud)install.packages(wordcloud);library(wordcloud)evaluation - read_excel(file.choose()head(evaluation)str(evaluation)pos - readLines(file.choose(), encoding = UTF-8)neg - readLines(file.choose(), encoding = UTF-8)stopword

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论