2015-02-10 25 views
1

我从数据库中加载文本文档,然后从它们创建语料库,最后我设置了文档的前缀ID(我需要使用前缀,因为我有几种类型的文档)。R:tm:TextDocument级别元数据设置看起来效率很低

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分钟。

有没有办法更快地做到这一点?

回答

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分钟。