R语言并行计算编程

1 篇文章 0 订阅
1 篇文章 0 订阅

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值