加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用tm的语料库函数和R中的大数据

发布时间:2020-12-14 04:36:42 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用tm对R中的大数据进行文本挖掘. 我经常遇到内存问题(例如无法分配大小的向量….)并使用已建立的方法来解决这些问题,例如 使用64位R 尝试不同的操作系统(Windows,Linux,Solaris等) 将memory.limit()设置为最大值 确保服务器上有足够的RAM和计算(
我正在尝试使用tm对R中的大数据进行文本挖掘.

我经常遇到内存问题(例如无法分配大小的向量….)并使用已建立的方法来解决这些问题,例如

>使用64位R
>尝试不同的操作系统(Windows,Linux,Solaris等)
>将memory.limit()设置为最大值
>确保服务器上有足够的RAM和计算(有)
>自由使用gc()
>分析瓶颈代码
>将大型业务分解为多个较小的业务

但是,当试图在一百万左右的文本字段的向量上运行语料库时,我遇到的内存错误与平时略有不同,我不知道如何解决问题.错误是:

> ds <- Corpus(DataframeSource(dfs))
Error: memory exhausted (limit reached?)

可以(而且应该)我在源数据帧的行块上递增运行语料库然后合并结果?有没有更有效的方法来运行它?

产生此错误的数据大小取决于运行它的计算机,但如果您使用内置原始数据集并复制文档直到它足够大,那么您可以复制错误.

UPDATE

我一直试图尝试结合较小的corpa,即

test1 <- dfs[1:10000,]
test2 <- dfs[10001:20000,]

ds.1 <- Corpus(DataframeSource(test1))
ds.2 <- Corpus(DataframeSource(test2))

虽然我没有成功,但我发现tm_combine是supposed to solve this exact problem.唯一的问题是,由于某些原因,我的64位版本的R 3.1.1与最新版本的tm无法找到函数tm_combine.也许它出于某种原因被从包中删除了?我正在调查……

> require(tm)
> ds.12 <- tm_combine(ds.1,ds.2)
Error: could not find function "tm_combine"

解决方法

我不知道tm_combine是否被弃用或者为什么在tm命名空间中找不到它,但我确实找到了一个解决方案,通过在数据帧的较小块上使用Corpus然后组合它们.

This StackOverflow帖子有一个简单的方法,没有tm_combine:

test1 <- dfs[1:100000,]
test2 <- dfs[100001:200000,]

ds.1 <- Corpus(DataframeSource(test1))
ds.2 <- Corpus(DataframeSource(test2))

#ds.12 <- tm_combine(ds.1,ds.2) ##Error: could not find function "tm_combine"
ds.12 <- c(ds.1,ds.2)

这给你:

ds.12

<<VCorpus (documents: 200000,metadata (corpus/indexed): 0/0)>>

对不起,在问之前不要自己解决这个问题.我试过并尝试了其他组合对象的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读