我是r tm编码世界的新手,我正在尝试使用foreach%dopar%循环并行处理大型文本数据框(因为我发现这样更快)。但是,我真的不明白它是如何分别如何将我的初始for循环转换为并行的foreach循环。
特别是,我想确定数据集的极性,而我需要许多不同极性的帧数(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来使用极性函数,我也很高兴如果有人知道如何提高该过程的速度以及我的整个数据集甚至将其包含在循环中
非常感谢你的帮助!