为什么80%的码农都做不了架构师?>>>   

#清除内存空间
rm(list=ls()) 
#导入tm包
library(tm)
library(SnowballC)
#查看tm包的文档
#vignette("tm")

##1.Data Import  导入自带的路透社的20篇xml文档
#找到/texts/crude的目录,作为DirSource的输入,读取20篇xml文档
reut21578 <- system.file("texts", "crude", package = "tm") 
reuters <- Corpus(DirSource(reut21578), readerControl = list(reader = readReut21578XML))

##2.Data Export  将生成的语料库在磁盘上保存成多个纯文本文件
writeCorpus(reuters)

##3.Inspecting Corpora 查看语料库 
#can use inspect(),print(),summary()
#由于是从xml读取过来,所以现在的corpus还是非常杂乱
inspect(reuters)
print(reuters) 
summary(reuters)

##4.Transformations 
#对于xml格式的文档用tm_map命令对语料库文件进行预处理,将其转为纯文本并去除多余空格,
#转换小写,去除常用词汇、合并异形同意词汇,如此才能得到类似txt文件的效果
#可以用inspect(reuters)查看此时的效果,明显好很多
reuters <- tm_map(reuters, as.PlainTextDocument)#将reuters转化为纯文本文件,去除标签
reuters <- tm_map(reuters, stripWhitespace)#去掉空白
reuters <- tm_map(reuters, tolower)#转换为小写
reuters <- tm_map(reuters, removeWords, stopwords("english"))#去停用词
#采用Porter's stemming 算法 提取词干
#Stem words in a text document using Porter's stemming algorithm
#install.packages("SnowballC")
tm_map(reuters, stemDocument)

##5.Creating Term-Document Matrices
#将处理后的语料库进行断字处理,生成词频权重矩阵(稀疏矩阵)也叫词汇文档矩阵
dtm <- DocumentTermMatrix(reuters)
#查看词汇文档矩阵
inspect(dtm[1:5, 100:105])
#Non-/sparse entries: 1990/22390     ---非0/是0 
#Sparsity           : 92%            ---稀疏性  稀疏元素占全部元素的比例
#Maximal term length: 17             ---切词结果的字符最长那个的长度
#Weighting          : term frequency (tf)
#如果需要考察多个文档中特有词汇的出现频率,可以手工生成字典,
#并将它作为生成矩阵的参数
d<-c("price","crude","oil","use")
inspect(DocumentTermMatrix(reuters,control=list(dictionary=d)))

##6.Operations on Term-Document Matrices
#找出次数超过5的词
findFreqTerms(dtm, 5)
#找出与‘opec’单词相关系数在0.8以上的词
findAssocs(dtm,"opec",0.8)

#因为生成的矩阵是一个稀疏矩阵,再进行降维处理,之后转为标准数据框格式
#我们可以去掉某些出现频次太低的词。
dtm1<- removeSparseTerms(dtm, sparse=0.6)
inspect(dtm1)
data <- as.data.frame(inspect(dtm1))

#再之后就可以利用R语言中任何工具加以研究了,下面用层次聚类试试看
#先进行标准化处理,再生成距离矩阵,再用层次聚类
data.scale <- scale(data)
d <- dist(data.scale, method = "euclidean")
fit <- hclust(d, method="ward.D")
#绘制聚类图
#可以看到在20个文档中,489号和502号聚成一类,与其它文档区别较大。
plot(fit,main ="文件聚类分析")

#主成分分析
ozMat <- TermDocumentMatrix(makeChunks(reuters, 50),
                            list(weighting = weightBin))
k <- princomp(as.matrix(ozMat), features = 2)
screeplot(k,npcs=6,type='lines')
windows()
biplot(k)

转载于:https://my.oschina.net/bysu/blog/909509

R语言 文本挖掘 tm包 使用相关推荐

  1. R语言文本挖掘tm包详解(附代码实现)

    文本挖掘相关介绍 1什么是文本挖掘 2NLP 3 分词 4 OCR 5 常用算法 6 文本挖掘处理流程 7 相应R包简介 8 文本处理 词干化stemming snowball包 记号化Tokeniz ...

  2. R语言文本挖掘相关包介绍

    本文摘自<Kears深度学习:入门.实战及进阶>第10章10.2小节. 文本挖掘被描述为"自动化或半自动化处理文本的过程",中文分词的结果就可以直接用来建立文本对象,最 ...

  3. R语言︱文本挖掘——jiabaR包与分词向量化的simhash算法(与word2vec简单比较)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- <数据挖掘之道>摘录话语:虽然我比 ...

  4. 10-R语言文本挖掘tm包详解

    0.美图 文本挖掘相关介绍 1.什么是文本挖掘 文本挖掘是 抽取有效.新颖.有用.可理解的.散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程. 在文本挖掘领域中,文本自动分类,判同, ...

  5. R语言︱文本挖掘套餐包之——XML+SnowballC+tm包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言︱文本挖掘套餐包之--XML+tm+Sn ...

  6. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    笔者寄语:与前面的RsowballC分词不同的地方在于这是一个中文的分词包,简单易懂,分词是一个非常重要的步骤,可以通过一些字典,进行特定分词.大致分析步骤如下: 数据导入--选择分词字典--分词 但 ...

  7. R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言·文本挖掘︱Rwordseg/rJava ...

  8. R语言中文分词包jiebaR

    R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可 ...

  9. R语言——中文分词包jiebaR

    R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可 ...

最新文章

  1. iOS10 推送必看 UNNotificationContentExtension
  2. CF396C On Changing Tree
  3. Jetty9.2.2集群Session共享
  4. Drupal 自定义主题实体 Theming Custom Entities
  5. 基于嵌入式linux和s32410平台的视频采集
  6. MySQL学习-SQL语句的分类与MySQL简单查询
  7. 逻辑读、物理读、预读的理解
  8. 美国航空航天和国防承包商在瑞士采用区块链进行供应链管理
  9. sp根据备份文件来创建DB
  10. [人工智能-综述-3]:人工智能与硅基生命,人类终将成为造物主
  11. 怎么锻炼java逻辑思维_托马斯逻辑训练板技高一筹,锻炼编程逻辑思维能力
  12. table表格做一个表头斜线样式
  13. Python RSA PKCS#1 转 PKCS#8
  14. UD三分区补充教程1——激活不同分区对于UD三分区bios启动和uefi启动兼容性影响的讨论
  15. IMPL10. formality 常用变量浅析
  16. Matplotlib饼图实例
  17. 华为鸿蒙系统适配芯片,华为新平板参数曝光,高通骁龙870芯片加持,首发适配鸿蒙系统...
  18. PYNQ-overlay
  19. 【数理统计】假设检验
  20. 地表温度lst数据的下载【国家青藏高原科学数据中心】

热门文章

  1. python函数装饰器参数 参数_【转】python 装饰器功能以及函数参数使用
  2. jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传
  3. Numpy常用函数的简单记录
  4. 【研发管理】聊一聊DevOps
  5. gradle打包 执行类方法
  6. 从个人到团队:思维转变是关键
  7. Express中使用ejs新建项目以及ejs中实现传参、局部视图include、循环列表数据的使用
  8. electron-vue脚手架项目初始化时提示: Failed to download repo simulatedgreg/electron-vue: Response code Server E
  9. 初次使用Shiro进行加密密码的算法实例
  10. 爬虫进行request请求时User-Agent怎样写