用R语言生成DocumentTermMatrix(DTM)矩阵
来源:互联网 发布:java 当前时间减1小时 编辑:程序博客网 时间:2024/05/22 09:04
在提取文本LDA时,需要先生成文档的DTM矩阵。
对于DTM矩阵,维基百科上给出了详细的解释。
有两个document分别名为D1,D2:
也就是说DTM矩阵是每个Document中每个term(单词,或是词汇表vocab)出现的次数。
R语言的tm包给出了直接求取dtm的接口
library(SnowballC) library(NLP)library(tm) #vignette("tm") #调用函数包文件 ##1.Data Import 导入自带的路透社的20篇xml文档 #找到/texts/crude的目录,作为DirSource的输入,读取20篇xml文档 reut21578 <- system.file("texts", "wiki_sentence", package = "tm") reuters <- Corpus(DirSource(reut21578), readerControl = list(language = "english")) ##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, PlainTextDocument)#将reuters转化为纯文本文件,去除标签 reuters <- tm_map(reuters, stripWhitespace)#去掉空白 reuters <- tm_map(reuters, tolower)#转换为小写 reuters <- tm_map(reuters, removeWords, stopwords("english"))#去停用词tm_map(reuters, stemDocument) ##5.创建文档矩阵 Creating Term-Document Matrices #将处理后的语料库进行断字处理,生成词频权重矩阵(稀疏矩阵)也叫词汇文档矩阵 reuters <- tm_map(reuters, PlainTextDocument)#将reuters转化为纯文本文件,去除标签 dtm <- DocumentTermMatrix(reuters) #查看词汇文档矩阵内容 #inspect(dtm[1:5, 100:105]) #d<-c("price","crude","oil","use") #以这几个关键词为查询工具 #inspect(DocumentTermMatrix(reuters,control=list(dictionary=d))) inspect(dtm) #dtm1<- removeSparseTerms(dtm, sparse=0.2)#inspect(dtm1)dtmm<-as.matrix(dtm)coln = colnames(dtmm)write.table(coln, file = "D:/vocab.txt",row.names = FALSE,col.names = FALSE)#行数和列数dtmm_r<-nrow(dtmm) dtmm_c<-ncol(dtmm) write.table(dtmm, file = "D:/dtm.txt",row.names = FALSE,col.names = FALSE)#write.table(dtmm[2,], file = "C:/Users/Mandy/Desktop/5.txt")
但是,从vocab.txt中可以看出,R语言的分词效果并不好。因此在做LDA时,不建议利用R的接口生成DTM矩阵。
0 0
- 用R语言生成DocumentTermMatrix(DTM)矩阵
- (R语言)数组和矩阵
- R语言(2)——矩阵
- R语言矩阵运算
- R语言矩阵运算
- R语言矩阵运算
- R语言矩阵运算
- R语言矩阵运算
- R语言矩阵运算
- R语言 矩阵运算
- R语言矩阵运算
- R语言--矩阵篇
- 用R语言快速生成Latex表格
- 【R语言 矩阵相乘】R语言矩阵相乘100次
- R语言入门基础:矩阵
- R语言矩阵(matrix)详解
- R语言中矩阵运算
- R语言之矩阵排序
- Android性能优化的一些方案
- dpdk环境搭建
- 常见离散的概率分布
- JS_node_错误总结
- 一些小知识点(4)
- 用R语言生成DocumentTermMatrix(DTM)矩阵
- [LeetCode-Java]24. Swap Nodes in Pairs
- 第八章:Graphical Models exercise 13-27
- sql注入
- iOS学习---SQLite篇之常用函数中参数的详细介绍
- jquery select2插件初始化时赋多个值
- 常见的连续概率分布
- CNN中全连接层是什么样的?
- 设计模式之二:简单工厂模式—集中式工厂的实现