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

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

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

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

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)#采用Porter‘s 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)

用R语言对NIPS会议文档进行聚类分析的更多相关文章

  1. C语言函数库帮助文档

    C语言函数库帮助文档 安装 1.C语言库函数基本的帮助文档 sudo apt-get install manpages sudo apt-get install manpages-de sudo ap ...

  2. 用R创建Word和PowerPoint文档--转载

    https://www.jianshu.com/p/7df62865c3ed Rapp --简书 Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Wor ...

  3. 可扩展标记语言XML之二:XML语言格式规范、文档组成

    大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML. 一.格式良好的 xml 1.语法规范: 1).必须有 XML 文档声明: <?xml ...

  4. C#6.0语言规范(十九) 文档注释

    C#为程序员提供了一种机制,可以使用包含XML文本的特殊注释语法来记录他们的代码.在源代码文件中,具有特定形式的注释可用于指示工具从这些注释和它们之前的源代码元素生成XML.使用这种语法的注释称为文档 ...

  5. C语言 · 新建Microsoft Word文档

    算法提高 新建Microsoft Word文档   时间限制:1.0s   内存限制:256.0MB      问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题 ...

  6. Linux下的换行符\n\r以及txt和word文档的使用

    Linux doc WINDOWS下记事本编写的文档和LINUX下VIM或者GEDIT等编写的文档的不同! 例如WINDOWS下编写的SH脚本,放到LINUX下执行可能会出错. 解决方法: 原因是:W ...

  7. readthedocs网托管持多语言文档

    希望在readthedocs上创建支持多语言的文档,效果类似: 通过语言选项,可以切到到不同的语言版本:实现这个目标包含两个主要步骤: 在本地对文档进行翻译 在readthedocs.org上配置翻译 ...

  8. go语言从零学起(一) -- 文档教程篇

    先记录一下自己学go语言的出发点 作为一个phper,精通一门底层语言一直是努力的目标. 相对于c,c++,go语言不需要过多的关注指针,内存释放,一两行代码就能跑起一个server服务,简直不要太简 ...

  9. R语言 一套内容 从入门 到放弃

    [怪毛匠子整理] 1.下载 wget http://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.0.1.tar.gz 2.解压: tar -zxvf R-3.0. ...

随机推荐

  1. [Cocos2d-x for WP8学习笔记] HelloWorld

    Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...

  2. C#中判断字符串中包含某个字符

    C#判断字符串是否存在某个字符,如果存在进行替换.   //定义一个字符串 string  str=".net/Java/asp.net"; //检验“/” if(str.Cont ...

  3. 将List<T>转化成 DataTable--调整可空类型的转化错误

    加载表结构并保持成XML string cmdText = @"select * from kb_lable_temp where 1=2"; using (SqlConnecti ...

  4. luigi学习6--parameters详解

    parameter就好比是一个task的构造方法.luigi要求你在类的scope上定义parameter. 如下面就是一个定义parameter的例子: class DailyReport(luig ...

  5. nginx的rewrite,gzip,反向代理学习笔记

    rewrite模块名:ngx_http_rewrite_module默认自动被编译 指令:rewrite regex replacement [flag] regex :正则表达式,用于匹配用户请求的 ...

  6. mysql 根据生日计算年龄,并查询在18-25之间的语句

    select id, DATE_FORMAT(birthday,"%Y-%m-%d") birthday, CURDATE() , (year(now())-year(birthd ...

  7. 【Weblogic】--Weblogic的部署方式和缓存

    参考网址: http://dead-knight.iteye.com/blog/1938882 Weblogic11g部署web应用,有三种方式,非常简单,但是很多新手部署总是出现若干错误,不知道如何 ...

  8. java android 中的Toast

    package com.example.my1; import android.os.Bundle;import android.app.Activity;import android.content ...

  9. STM32F0xx_TIM基本延时配置详细过程

    前言 关于定时器大家都应该不会陌生,因为处理器都有这个功能.今天总结的F0系列芯片的定时器根据芯片型号不同,数量也不同.定时器分类:基本定时器.通用定时器和高级定时器.计数位数也有不同,有16位的,有 ...

  10. 【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)

    在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: <divdata-role="foote ...