我想翻译df " text“列中的文本(使用DeepL),其中每一行都有一个句子。文本不是用一种语言编写的,所以我想要自动检测文本的语言,并将翻译放在一个名为df的新列中。
谢谢
我有DeepL的免费认证密钥,但我不知道如何使用它,我是一个新手。
发布于 2022-03-24 11:46:58
您可以使用DeepL-Python库。
根据文档,您只需省略参数source_lang,它就会尝试用自己的语言来检测语言。
import deepl
translator = deepl.Translator(auth_key)
result = translator.translate_text(text_to_translate)
translated_text = result.text发布于 2022-06-02 14:19:42
我需要为最近的一个项目翻译dataframe中的一篇专栏,并考虑使用DeepL的Python客户端库来分享我的方法,以防有帮助。
import pandas as pd
import deepl
translator = deepl.Translator(auth_key)
d = {'Source': ['This is some English source text.', 'Another sentence in English.']}
df = pd.DataFrame(data=d)
df['Target'] = df['Source'].apply(lambda x: translator.translate_text(x,
target_lang="DE") if type(x) == str else x)如前所述,如果希望source_lang自动检测源语言,可以省略DeepL参数--这就是我在这里所做的。
最后你会:
Source Target
0 'This is some English source text.' 'Dies ist ein englischer Ausgangstext.'
1 'Another sentence in English.' 'Ein weiterer Satz auf Englisch.'( if type(x) == str else x并不是必要的,但如果源文本列中有null或其他非字符串值,则可能会有所帮助。)
发布于 2022-03-24 12:00:26
我无法测试它,因为我没有API键,但是通过阅读自由Deepl API的文档,一切都可以很好地显示出来,比如:
curl https://api.deepl.com/v2/translate \
-d auth_key=[yourAuthKey] \
-d "text=Hello, world!" \
-d "target_lang=DE"文档表明source_lang参数是可选的,如果省略它,API将尝试检测文本的语言并翻译它。
所以在python代码中,应该是
import requests
import json
url = "https://api-free.deepl.com/v2/translate"
data = f"auth_key={yourAuthKey}&text={YourText}&target_lang={LanguageCode}"
resp = requests.post(url, data=data)
translated_text = json.loads(resp.content)
print(translated_text)通过以下方式:
yourAuthKey -您的API密钥。YourText -你希望翻译的文本。LanguageCode -文本应该翻译成的语言代码(参见API )。对于标准库来说,这种情况应该是可以的。
或者你可以使用官方的DeepL Python库让它变得更简单。
https://stackoverflow.com/questions/71601604
复制相似问题