1
這裏,我試圖通過在R中使用並行處理來翻譯文本的語言。這是我第一次使用並行處理。我的代碼是:R中的並行處理器
install.packages("RYandexTranslate")
install.packages("textcat")
install.packages("plyr")
install.packages("parallel")
library("RYandexTranslate")
library("textcat")
library("dplyr")
library("parallel")
api_key <- "trnsl.1.1.20160707T103515Z.90fa575d702ae81e.6ec78e064eb94a1c00a9bc506c615f223cf0cf5b"
cl <- makeCluster(4)
Query_L_German <- c("5 euro muenze stempelglanz","2 euro muenzen uebersicht")
Par_Conversion <- function(QUery_L_German)
{
for(i in 1:length(Query_L_German))
{
x <- translate(api_key,Query_L_German[i], "de-en")$text
return(x)
}
}
a <- length(Query_L_German)
parLapply(cl, seq(a), function(i,Query_L_German,Par_Conversion)
for(i in 1:length(Query_L_German)){
x <- Par_Conversion(Query_L_German)
return(x)
}, Query_L_German, Par_Conversion)
不過,我收到以下錯誤:
Error in checkForRemoteErrors(val) : 3 nodes produced errors; first error: object 'Query_L_German' not found
感謝丹尼爾,指出了這一點。我已經更新了代碼。你可以請現在看看它 – Akshay
@Akshay好的。我現在可以重現它。請看我編輯的答案。希望現在解決。問候,丹尼爾 – Daniel
謝謝丹尼爾,能否請你解釋一下這個parLapply()是如何工作的。在上面的代碼中,我可以直接使用Par_Conversion函數,也可以在parLApply()中使用此函數,但在使用parLapply()時,我看不到任何重大的執行時間改進。是否有必要將列表作爲輸入傳遞給此函數? parLapply()函數中'seq()'參數的作用是什麼? – Akshay