首先是基础性的tm包。tm包是R文本挖掘的通用包。直接使用install.package即可安装。
本帖隐藏的内容
| 1 | install.packages("tm") |
正确的安装方法为:
先下载tmcn、[Rwordseg]、Rweibo
的源码。
tmcn无依赖关系,直接使用。
| 1 | install.packages("~/Downloads/tmcn_0.1-3.tar", repos=NULL, type="source") |
该包需要预先安装Java环境。如果未曾安装Java,请先安装Java,安装Java(及PATH的配置)过程不再赘述。
| 12 | install.packages("rJava") install.packages("~/Downloads/Rwordseg_0.2-1.tar", repos=NULL, type="source") |
这四个依赖包同样不能直接安装,需要先从科大源下载源码:(按包名搜索RCurl、XML、rjson、digest),然后再安装。
| 1234567 | install.packages("bitops") #RCurl的依赖 install.packages("~/Downloads/RCurl_1.95-4.1.tar", repos=NULL, type="source") install.packages("~/Downloads/XML_3.98-1.1.tar", repos=NULL, type="source") install.packages("~/Downloads/rjson_0.2.13.tar", repos=NULL, type="source") install.packages("~/Downloads/digest_0.6.4.tar", repos=NULL, type="source") install.packages("~/Downloads/Rweibo_0.2-9.tar", repos=NULL, type="source") |
http://andy-henry.github.io/2014/05/24/rwordseg_install/
本帖隐藏的内容
第一部分在用“Rwordseg”程序包进行分词练习。我也忍不住进行了一次实验。
首先,肯定是装程序包了,个人感觉是废话,纯凑字数。
http://blog.sina.com.cn/s/blog_70f6320901017int.html
http://f.dataguru.cn/thread-46051-1-1.html
http://f.dataguru.cn/forum.php?mod=viewthread&tid=46051
http://f.dataguru.cn/forum.php?mod=viewthread&tid=114967
http://f.dataguru.cn/forum.php?mod=viewthread&tid=19179
等等吧,觉得看代码有点难度。
第二部分
tm包是R语言中为文本挖掘提供综合性处理的package,进行操作前载入tm包,vignette命令可以让你得到相关的文档说明
library(tm)
vignette("tm")
#首先要读取文本,本次操作所用的文本是tm包自带的20个XML格式文本,存放在library\tm\texxts\crude文件夹中。用Corpus命令读取文本并生成语料库文件
reut21578 <- system.file("texts", "crude", package = "tm")
reuters <- Corpus(DirSource(reut21578), readerControl = list(reader = readReut21578XML))
#下一步用tm_map命令对语料库文件进行预处理,将其转为纯文本并去除多余空格,转换小写,去除常用词汇、合并异形同意词汇
reuters <- tm_map(reuters, as.PlainTextDocument)
reuters <- tm_map(reuters, stripWhitespace)
reuters <- tm_map(reuters, tolower)
reuters <- tm_map(reuters, removeWords, stopwords("english"))
tm_map(reuters, stemDocument)
#利用DocumentTermMatrix将处理后的语料库进行断字处理,生成词频权重矩阵
dtm <- DocumentTermMatrix(reuters)
#部分矩阵内容可通过inspect来观察
inspect(dtm[1:5, 100:105])
Docs abdul-aziz ability able abroad, abu accept
127 0 0 0 0 0 0
144 0 2 0 0 0 0
191 0 0 0 0 0 0
194 0 0 0 0 0 0
211 0 0 0 0 0 0
如果需要考察多个文档中特有词汇的出现频率,可以手工生成字典,并将它作为生成矩阵的参数
(d <- Dictionary(c("prices", "crude", "oil")))
inspect(DocumentTermMatrix(reuters, list(dictionary = d)))
因为生成的矩阵是一个稀疏矩阵,再进行降维处理,之后转为标准数据框格式
dtm2 <- removeSparseTerms(dtm, sparse=0.95)
data <- as.data.frame(inspect(dtm2))
再之后就可以利用R语言中任何工具加以研究了,下面用层次聚类试试看
先进行标准化处理,再生成距离矩阵,再用层次聚类
data.scale <- scale(data)
d <- dist(data.scale, method = "euclidean")
fit <- hclust(d, method="ward")
绘制聚类图
plot(fit)
可以看到在20个文档中,489号和502号聚成一类,与其它文档区别较大。
可执行代码:
library(tm)
vignette("tm")
reut21578 <- system.file("texts", "crude", package = "tm")
reuters <- Corpus(DirSource(reut21578), readerControl = list(reader = readReut21578XML))
reuters <- tm_map(reuters, as.PlainTextDocument)
reuters <- tm_map(reuters, stripWhitespace)
reuters <- tm_map(reuters, tolower)
reuters <- tm_map(reuters, removeWords, stopwords("english"))
tm_map(reuters, stemDocument)
dtm <- DocumentTermMatrix(reuters)
inspect(dtm[1:5, 100:105])
dtm2 <- removeSparseTerms(dtm, sparse=0.95)
data <- as.data.frame(inspect(dtm2))
data.scale <- scale(data)
d <- dist(data.scale, method = "euclidean")
fit <- hclust(d, method="ward")
plot(fit)
目前已有很多精心设计、维护良好且广泛支持的与机器学习相关的R程序包。在我们要进行的案例研究中,涉及的程序包主要用于:处理空间数据、进行文本分析、分析网络拓扑等,还有些程序包用于与网络API进行交互,当然还有其他很多功能,不胜枚举。因此,我们的任务很大程度上会依赖内置在这些程序包的函数功能。
加载R程序包很简单。实现加载的两个函数是:library和require。两者之间存在细微差别,在本书中,主要差别是:后者会返回一个布尔值(TRUE或FALSE)来表示是否加载成功。例如,在第6章中,我们会用到tm程序包来分词。要加载该程序包,我们既可以用library也可以用require。在下面所举例子中,我们用library来加载tm包,用require来加载XML包,再用print函数来显示require函数的返回值。可以看到,返回的布尔值是“TRUE”,可见XML包加载成功了。
library(tm)
print(require(XML))
#[1] TRUE
假如XML包还未安装成功,即require函数返回值为“FALSE”,那么我们在调用之前仍需先安装成功这个包。
注意: 如果你刚安装成功R环境,那么你还需要安装较多的程序包才能完成本书的所有案例研究。
在R环境中安装程序包有两种方法:可以用图形用户界面进行安装,也可以用R控制台中的install.packages函数来安装。考虑到本书目标读者的水平,我们在本书的案例研究中会全部采用R控制台进行交互,但还是有必要介绍一下怎么用图形用户界面安装程序包。在R应用程序的菜单栏上,找到Packages & Data→Package Installer(程序包→安装程序包),点击之后弹出如图1-4所示的窗口。从程序包资源库的下拉列表中选择CRAN(binaries)(CRAN(二进制))或者CRAN(sources)(CRAN(源代码)),点击Get List(获取列表)按钮,加载所有可安装的程序包,最新的程序包版本可以从CRAN (sources)(CRAN(源代码))资源库中获取。如果你的计算机上已经安装了所需的编译器,我们推荐用源代码安装。接着,选择要安装的包,然后点击Install Selected(安装所选包),即可安装。


相比而言,用install.packages函数来安装是一种更佳的方法,因为它在安装方式和安装路径上更为灵活。这种方法的主要优势之一就是既可以用本地的源代码,也可以用CRAN上的源代码来安装。虽然以下这种情况不太常见,但仍然有可能会需要。有时你可能要安装一些CRAN上还未发布的程序包,比如你要将程序包更新到测试版本,那么你必须用源代码进行安装:
install.packages("tm", dependencies=TRUE)
setwd("~/Downloads/")
install.packages("RCurl_1.5-0.tar.gz", repos=NULL, type="source")
同样还有另一种安装方法,那就是直接使用源代码的压缩文件进行安装。在上一个例子中,我们用作者网站上的源代码安装了RCurl程序包。用setwd函数确保R的工作路径已设置为保存源代码的目录,然后就可以简单地执行前面的命令从源代码安装了。注意,这里需要改动两个参数。首先,我们必须设置repos=NULL来告诉函数不要使用CRAN中任意一个资源库,然后要设置type="source"来告诉函数使用源代码安装。
表1-2:本书中用到的程序包
名称 网址 作者 简介及用法
arm http://cran.r-project.org/ Andrew Gelman等 用于构建多水平/层次回归模型的
web/packages/arm/ 程序包
ggplot2 http://had.co.nz/ggplot2/ Hadley Wickham 是图语法在R中的实现,是创建 高质量图形的首选程序包
glmnet http://cran.r-project.org/ Jerome Friedman、 包含Lasso和elastic-net的正则化
web/packages/glmnet/ Trevor Hastie和 广义线性模型
index.html Rob Tibshirani
igraph http://igraph.sourceforge Gabor Csardi 简单的图及网络分析程序,用于
.net/ 模拟社交网络
lme4 http://cran.r-project.org/ Douglas Bates、 提供函数用于创建线性及广义混
web/packages/lme4/ Martin Maechler和 合效应模型
Ben Bolker
lubridate https://github.com/ Hadley Wickham 提供方便的函数,使在R环境中
hadley/lubridate 处理日期更为容易
RCurl http://www.omegahat. Duncan Temple Lang 提供了一个与libcurl库中HTTP协
org/RCurl/ 议交互的R接口,用于从网络中 导入原始数据
reshape http://had.co.nz/plyr/ Hadley Wickham 提供一系列工具用于在R中处 理、聚合以及管理数据
RJSONIO http://www.omegahat. Duncan Temple Lang 提供读写JSON(JavaScript
org/RJSONIO/ Object Notation)数据的函数, 用于解析来自网络API的数据
tm http://www.spatstat.org/ Ingo Feinerer 提供一系列文本挖掘函数,用于
spatstat/ 处理非结构化文本数据
XML http://www.omegahat. Duncan Temple Lang 用于解析XML及HTML文件,以
org/RSXML/ 便从网络中提取结构化数据
前文已经提到过,在本书中我们会使用一些程序包。表1-2列出了本书的案例研究所用到的所有程序包,包括对其用途的简单介绍,以及查看每个包详细信息的链接。安装所需程序包的数量不少,为了加快安装过程,我们创建了一个简短的脚本来检查每个必需的程序包是否已安装,若没有安装,它会通过CRAN进行安装。要运行该脚本,先用setwd函数将工作目录设置为本章代码所在的文件夹,再执行source命令,如下所示:
source("package_installer.R")
如果你还没有安装过程序包,系统可能要求你选择一个CRAN的库。一旦设置完成,脚本就开始运行,你就可以看到所有需要安装的程序包的安装进度。现在,我们就要用R开始机器学习之旅了!在我们开始案例分析之前,我们仍需要回顾一些常用的R相关的函数与操作。
想要调用write.xlsx()这个函数,在安装了xlsx,xlsxjars和rJava这几个包后,还是不行,一输入library(xlsx)就报错
两方面
1.是否安装JAVA,如果已经安装请检查JAVA是否符合R的版本。建议从新安装下JAVA:http://www.java.com/en/download/manual.jsp
2.不工作,在加载包之前,手动配置下java的位置
Sys.setenv(JAVA_HOME='C:\Program Files\Java\jre7') # for 64-bit version
Sys.setenv(JAVA_HOME='C:\Program Files (x86)\Java\jre7') # for 32-bit version library(rJava)
------
问题一般能解决。



雷达卡




最近出门在外,很少来论坛~

京公网安备 11010802022788号







