gpt4 book ai didi

python - 如何在 R 中使用带有网状包的 Python 代码构建 lapply 风格的函数?

转载 作者:行者123 更新时间:2023-12-04 02:26:51 24 4
gpt4 key购买 nike

我在 R 中用 Python 代码构建了一个简单的翻译函数。它适用于一根弦。但是应该如何将它应用于字符串列表?

string <- c("cat")
string <- c("cat", "dog")
translations.df <- TranslateEnglishStringToFrenchString(string)
View(translations.df)

TranslateEnglishStringToFrenchString <- function(string){
functionToApply <- function(string){
reticulate::py_run_string("from deep_translator import GoogleTranslator")
reticulate::py_run_string("translatedString = GoogleTranslator(source='en', target='fr').translate(r.string)")
translatedString <- py$translatedString
.df <- data.frame(string, translatedString)
return(.df)
}
toReturn.df <- do.call(rbind, lapply(string, functionToApply))
return(toReturn.df)
}

目前,它返回以下错误:

py_run_string_impl(code, local, convert) 错误:NotValidPayload: ['cat', 'dog'] --> text必须是最大5000字符的有效文本,否则无法翻译

不过,这里显然不是最大字符数的问题......

非常感谢您的帮助!

最佳答案

此版本在我的计算机上使用名为“rprog”的 conda 环境运行。

library(reticulate)
use_condaenv("rprog", required = TRUE)
py_run_string(
"
from deep_translator import GoogleTranslator
def google_translator(string):
return GoogleTranslator(source='en', target='fr').translate(string)
"
)
lapply(c("hello", "coffee"), py$google_translator)

[[1]]
[1] "Bonjour"

[[2]]
[1] "café"

重要的是调用library(reticulate)。否则,对象 py 不可用,您无法访问 Python 对象。

您创建一个 Python 函数,然后从 R 中调用该函数,而不是调用 R 函数。

关于python - 如何在 R 中使用带有网状包的 Python 代码构建 lapply 风格的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66837555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com