zoukankan      html  css  js  c++  java
  • 用R语言对NIPS会议文档进行聚类分析

    一、用R语言建立文档矩阵

    (这里我选用的是R x64 3.2.2)

    (这里我取的是04NIPS共计207篇文档做分析,其中文档内容已将开头的作者名和最后的参考文献进行过滤处理)

    ##1.Data Import  导入自己下的3084NIPStxt文档

    library("tm")#加载tm

    stopwords<- unlist(read.table("E:\AllCode\R\stopwords.txt",stringsAsFactors=F))

    dir<-"E:\newtext(No including Authors and References)\2004"  #NIPS文本文档的路径

    nips<-Corpus(DirSource(dir),readerControl=list(language="en"))

    ##2.Transformations

    nips <- tm_map(nips, stripWhitespace)#去多余空白 

    nips <- tm_map(nips, content_transformer(tolower))#转换为小写

    nips <- tm_map(nips, removeWords, stopwords)#去停用词

    library("SnowballC")

    nips <-tm_map(nips, stemDocument)#采用Porters stemming 算法提取词干

    ##3.Creating Term-Document Matrices

    #将处理后的语料库进行断字处理,生成词频权重矩阵(稀疏矩阵)也叫词汇文档矩阵

    dtm <- DocumentTermMatrix(nips)

    ##4.Reducing dimensions

    #因为生成的矩阵是一个稀疏矩阵,再进行降维处理,之后转为标准数据框格式

    #我们可以去掉某些出现频次太低的词。

    dtm1<- removeSparseTerms(dtm, sparse=0.6))#除了词频统计中低于40%的稀疏条目项

    data <- as.data.frame(inspect(dtm1))

    二、WordCloud

    library(wordcloud);

    tdm<-TermDocumentMatrix(nips)

    tdm_matrix<-as.matrix(tdm)

    v <- sort(rowSums(tdm_matrix),decreasing=TRUE)

    d <- data.frame(word = names(v),freq=v)

    wordcloud(d$word,d$freq,c(8,.3),2)

     

    png(paste("d://wb//sample_comparison",".png", sep = ""), width = 1500, height = 1500 );

    comparison.cloud(tdm_matrix,colors=rainbow(ncol(tdm_matrix)));####由于颜色问题,稍作修改

    title(main = "sample comparision");

    dev.off();

     


    三、文档矩阵进行聚类分析

    层次聚类的结果图如下:(看不清)

    ##5.Clustering

    #再之后就可以利用R语言中任何工具加以研究了,下面用层次聚类试试看

    #先进行标准化处理,再生成距离矩阵,再用层次聚类

    data.scale <- scale(data)

    d <- dist(data.scale, method = "euclidean")

    fit <- hclust(d, method="ward.D")
    plot(fit,main ="文件聚类分析")

     

    当然也可以用Kmeans聚类:

    ##5.Clustering

    #下面用kmeans聚类分析

    km<-kmeans(dtm1,centers=3)

     

  • 相关阅读:
    NOIP模拟 回文序列
    NOIP模拟 最佳序列
    BZOJ 2783 树
    BZOJ 3631 松鼠的新家
    洛谷 6道简单图论
    NOI模拟 颜色
    NOIP模拟 Game
    BZOJ1415 聪聪与可可
    Codeforces Round #443 (Div. 2) C: Short Program
    20171028洛谷NOIP模拟
  • 原文地址:https://www.cnblogs.com/Yiutto/p/4978804.html
Copyright © 2011-2022 走看看