R语言并行编程实例,将数据集Rcuters-21578的50个文档赋值100,000次,得到包含500万个文档的资料库,查找正则表达式。
1. tm软件包
tm软件包是R语言中为文本挖掘提供处理的package,提供数据导入、语料库处理、预处理、元数据管理、创建term-document矩阵等功能。
安装tm软件包,必须到R网站下载slam软件包
2.企业并购示例数据集Rcuters-21578的并行计算
> library(tm)
> data("acq") #数据集acq
> textdata=rep(sapply(content(acq),content),1e5) #将数据集的50个文档赋值100,000次,得到包含500万个文档的资料库
#并行计算
> library(parallel)
> detectCores() #检测计算机CPU核的数量
> cl=makeCluster(detectCores()) #设置工作集群
> part=clusterSplit(cl,seq_along(textdata))
>text.partitioned=lapply(part,function(p) textdata[p])
>pattern="\\d+(,\\d+)? mln dlrs" #正则表达式在文档中查找
>res2=unlist(parSapply(cl,text.partitioned,grepl,pattern=pattern))
> head(res2)
[,1] [,2]
[1,] FALSE FALSE
[2,] TRUE TRUE #在第二篇文档中有正则表达式
[3,] FALSE FALSE
[4,] FALSE FALSE
[5,] FALSE FALSE
[6,] TRUE TRUE
> system.time(parSapply(cl,text.partitioned,grepl,pattern=pattern)) #R语言并行计算程序运行时间
用户 系统 流逝
13.77 137.54 503.00
#比较
> system.time(unlist(parSapply(cl,text.partitioned,grepl,pattern=pattern)))
用户 系统 流逝
13.47 139.41 491.74
>stopCluster(cl) #结束工作集群
R语言parallel软件包网络编程用socket cluster。