2

我是 r tm 编码世界的新手,我正在尝试在使用 foreach %dopar% 循环时并行处理一个大型文本数据帧(因为我发现这更快)。但是,我并不真正了解它是如何工作的,如何将我的初始 for 循环转换为并行 foreach 循环。

特别是,我想确定我的数据集的极性,而我需要许多不同的polarity.frames(WORDKEY) 的分数。结果应传递给汇总数据帧(frequency_w)。到目前为止,我的 for 循环代码如下所示(适用于较小的样本):

for (i in 1:length(POLKEY$x)){
WORDKEY=sentiment_frame(as.character(POLKEY$x[i]),NULL,as.integer(POLKEY$y[i]))
Poldat2=with(data, polarity(text, list(docs), polarity.frame = WORDKEY, negators=Negator,amplifiers=Ampl,deamplifiers=DeAmpl, amplifier.weight = 1))
frequency_w$docs=as.factor(Poldat2[["group"]][,"docs"])
frequency_w[(i+1)]=as.numeric(Poldat2[["group"]][,"ave.polarity"]
}

主要问题是到目前为止的代码需要永远在我的整个数据库(80.000 文档)中运行,因此如果您在编码方面有任何其他建议,以减少内存使用或提高速度,我会很高兴。

此外,由于我需要运行 sentSplit 来使用极性函数,如果有人知道如何为我的整个数据集提高该过程的速度,甚至将其包含到循环中,我也会很高兴。

非常感谢您提前提供的帮助!

4

0 回答 0