R: tm: TextDocument 级元数据设置看起来效率很低

R: tm: TextDocument level metadata setting looks to be very inefficient

我从数据库中加载文本文档,然后从中创建语料库,最后设置文档的前缀 ID(我需要使用前缀,因为我有多种类型的文档)。

rs <- dbSendQuery(con,"SELECT id::TEXT, content FROM entry")
entry.d = data.table(fetch(rs,n=-1))
entry.vs = VectorSource(entry.d$content)
entry.vc = VCorpus(entry.vs, readerControl = list(language = "pl"))
meta(entry.vc, tag = 'id', type = 'local') = paste0("e:",entry.d$id)

这工作起来很慢。需要6分钟,当

tm_map(entry.vc, tm_reduce, tmFuns = funs, mc.cores=1)

其中 funs 是 6 个函数的列表,只需要多花 2 分钟。

有什么方法可以更快吗?

我更改了我的代码以在 VCorpus 初始化期间设置 ID。

rs <- dbSendQuery(con,"SELECT ('e:'||id) AS id, content, 'pl'::TEXT AS language FROM entry")
entry.d = data.table(fetch(rs,n=-1))
entry.dfs = DataframeSource(entry.d)
reader <- readTabular(mapping=list(content="content", id="id", language='language'))
entry.vc = VCorpus(entry.dfs, readerControl = list(reader = reader))

现在生成带有自定义ID的VCorpus只需要2.5分钟。