我有一份新闻内容的数据,数据包含1790行2列,2列是新闻编号和新闻内容,现在是想做层次聚类,就得变成2行1790列,但是这样导入的特慢,就想先导入2列那种形式的,再进行转置,但有个疑问是转置之后header会自动识别为新闻编号吗?要是不能识别,怎么设置转置后第一行是标题呢?画出层次聚类的图只有三个元素,差太多了。以下是代码,请大家看看有什么问题,多多指教:
csv<- read.table("body1.txt",header=F)
csv <-t(csv)
library(tm)
txt<-Corpus(VectorSource(csv))
txt<-tm_map(txt,removeNumbers)#去除数字
txt<-tm_map(txt,stripWhitespace)#去除多余空格
txt<-tm_map(txt,removePunctuation)#去除标点符号
txt<-tm_map(txt,removeWords,stopwords("english"))#将英文中的停词删掉:例如把that at 等英文介词去掉。
txt<-tm_map(txt,PlainTextDocument)#去掉空文件
Sys.setenv(JAVA_HOME='C:/ProgramFiles/Java/jdk1.6.0_43/jre')
library(Rwordseg)
txt<-segmentCN(as.character(txt))#将语料库中的中文时行分词
txt<-Corpus(VectorSource(txt))
cnword<-read.table(file.choose(),header=F)
cnword<-as.vector(cnword[1:dim(cnword)[1],])#需要为向量格式
dtm<-DocumentTermMatrix(txt,control=list(dictionary=cnword,removePunctuation=TRUE,stopwords=TRUE,wordLengths = c(2, Inf)))
dtm2= removeSparseTerms(dtm, sparse=0.99)
d<- dist(dtm2, method = "euclidean")
fit<- hclust(d, method="ward.D")
plot(fit)