首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DeepL翻译数据

用DeepL翻译数据
EN

Stack Overflow用户
提问于 2022-03-24 11:24:44
回答 3查看 515关注 0票数 1

我想翻译df " text“列中的文本(使用DeepL),其中每一行都有一个句子。文本不是用一种语言编写的,所以我想要自动检测文本的语言,并将翻译放在一个名为df的新列中。

谢谢

我有DeepL的免费认证密钥,但我不知道如何使用它,我是一个新手。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-24 11:46:58

您可以使用DeepL-Python库

根据文档,您只需省略参数source_lang,它就会尝试用自己的语言来检测语言。

代码语言:javascript
复制
import deepl
translator = deepl.Translator(auth_key)
result = translator.translate_text(text_to_translate)
translated_text = result.text
票数 3
EN

Stack Overflow用户

发布于 2022-06-02 14:19:42

我需要为最近的一个项目翻译dataframe中的一篇专栏,并考虑使用DeepL的Python客户端库来分享我的方法,以防有帮助。

代码语言:javascript
复制
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参数--这就是我在这里所做的。

最后你会:

代码语言:javascript
复制
    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或其他非字符串值,则可能会有所帮助。)

票数 5
EN

Stack Overflow用户

发布于 2022-03-24 12:00:26

我无法测试它,因为我没有API键,但是通过阅读自由Deepl API的文档,一切都可以很好地显示出来,比如:

代码语言:javascript
复制
curl https://api.deepl.com/v2/translate \
    -d auth_key=[yourAuthKey] \
    -d "text=Hello, world!"  \
    -d "target_lang=DE"

文档表明source_lang参数是可选的,如果省略它,API将尝试检测文本的语言并翻译它。

所以在python代码中,应该是

代码语言:javascript
复制
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库让它变得更简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71601604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档