私は r tm コーディングの世界に不慣れで、 foreach %dopar% ループを使用しながら大きなテキスト データ フレームを並列処理しようとしています (これがはるかに高速であることがわかったため)。ただし、最初の for ループを並列 foreach ループに変換する方法がそれぞれどのように機能するかはよくわかりません。
特に、データセットの極性を判断したいのですが、多くの異なる極性.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 を実行する必要があるため、データセット全体に対してもそのプロセスの速度を上げる方法、またはそれをループに含める方法を誰かが知っていれば幸いです。
事前にご協力いただきありがとうございます。