我正在从数据库中加载文本文档,然后我从它们创建语料库,最后我设置了文档的前缀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分钟。
有没有办法更快地完成?
答案 0 :(得分: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分钟。