用R语言对NIPS会议文档进行聚类分析

一、用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)

时间: 2024-08-06 20:04:35

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

C语言宏预处理帮助文档

GCC4.10预处理器帮助文档 The C Preprocessor Transformations Made Globally Most C preprocessor features are inactive unless you give specific commands to request their use. (Preprocessor commands are lines starting with `#'; see section Preprocessor Commands).

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

Linux doc WINDOWS下记事本编写的文档和LINUX下VIM或者GEDIT等编写的文档的不同! 例如WINDOWS下编写的SH脚本,放到LINUX下执行可能会出错. 解决方法: 原因是:Windows下换行符号是“\r\n”,而linux下是“\n”没有”\r”,当shell文件是在Windows下编写的时候,所有的换行符都是“\r\n”,shell下是没办法执行这个文件的,会提示以上错误.请在ultraedit下将该文件执行“File->conversions->Dos to U

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

C#为程序员提供了一种机制,可以使用包含XML文本的特殊注释语法来记录他们的代码.在源代码文件中,具有特定形式的注释可用于指示工具从这些注释和它们之前的源代码元素生成XML.使用这种语法的注释称为文档注释.它们必须紧接在用户定义的类型(例如类,委托或接口)或成员(例如字段,事件,属性或方法)之前.XML生成工具称为文档生成器.(这个生成器可以是,但不一定是C#编译器本身.)文档生成器生成的输出称为文档文件.文档文件用作a的输入文档查看器 ; 用于生成类型信息及其相关文档的某种视觉显示的工具. 此

LTP语言云API使用文档

简介 语言云新版API是REST风格的WEB API调用服务,REST API服务有诸多优点,这使得它越来越流行.应用于语言云服务中,主要有如下特点: 免SDK安装:REST API的调用无须用户下载SDK,使得语言分析更为便捷. 结果表示格式丰富:API提供了包括PLAIN/XML/JSON/CONLL等多种格式的结果表示.且返回结果容易扩展,便于进行二次开发. 支持JavaScript调用:语言云支持JavaScript以JSON-P回调的方式调用API,使得返回结果可以嵌入到Web页面或者

中文Appium API 文档

该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/slate/cn/master/?ruby#about-appium 中文Appium API 文档 第一章:关于appium1.1 appium客户端客户端类库列表及Appium服务端支持 这些类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON 格式selenium命令以及额外的

Vlang官网文档(中文翻译)-vlang中文文档--v0.1.0_20180625

PS:主要为自己学习,,,,看的时候顺便翻译的,,,渣翻(非全人工)勿喷. 介绍 V是一种用于构建可维护软件的静态类型编译编程语言. 它与Go相似,也受到Oberon.Rust.Swift的影响. V是一种非常简单的语言,阅读这份文档大概只需要半小时的时间,读完之后,您将学习到V的全部内容. 尽管很简单,但是它为开发人员提供了很多功能,你能用其它编程语言做的任何事情,都可以用V做到. Hello World fn main() { println('hello world') } 函数用 fn

文档/视图结构的应用

用Visual C++的MFC AppWizar生成的函数,一般是"文档/视图"结构的. 在这种程序结构中,文档对象和视图对象的分工是十分明确的,文档对象用来存储.管理和维护数据,而视图对象用来显示和操作数据. 所以,在文档/视图结构的应用程序中,一般要在文档类的声明中定义数据对象,在文档类的构造函数中初始化数据对象,而对数据对象的操作和显示则在视图类对象中完成. 为了在视图对象中,对文档对象的成员进行访问,视图类提供了一个成员函数GetDocument,它的原型为: CDocumen

拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布

今天上海的天气真是不错,风和日丽.再次来到微软上海紫竹研发中心,心情很是愉快,喜欢这里的大草坪,喜欢这里的工程气氛,更喜欢今天来陪我的小伙伴们. 这次动手实验培训与以往最大的不同就是采用了开源文档的方式.其实,小编一直在寻找一种更好的技术文档编写方式.说到文档,我在过去的几年中也写了不下500份不同类型的文档.我估计,每个写过技术文档的同学都有类似这样的文件夹. 是不是很有一种蛋疼的感觉,没有办法啊,需求改来改去,客户的要求变来变去 … … 最后么,就没有最后了,你就自己苦逼去吧. 所以,自从开

JavaScript入门篇之文档对象模型

前言: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口.它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容.结构和www文档的风格(目前,HTMl和XML文档是通过说明部分定义的). 文档对象模型提供了一种访问和修改HTML文档内容的方法.DOM是万维网联盟(W3C)定义的一种标准.大部分的互联网浏览器以各种形式实现了DOM并且获得了不同程度的成功.和其他标准,特别是那些与web编程