在单个文档中翻译多种语言的问题

时间:2019-07-30 10:52:26

标签: python-3.x translate microsoft-cognitive python-docx

我正在使用提供者为Microsoft的translate程序包尝试使用语言翻译代码。输入的文本有2种语言,英语和俄语,我的语言是英语。翻译后的文本不会更改为英语。任何人都可以提供一些输入吗?

from translate import Translator
to_lang = "en"
translator = Translator(provider='microsoft', to_lang=to_lang, secret_access_key=secret)
translator.translate("Elapsed Task Time – время в течение, которого выполнялась задача ")
'Elapsed Task Time – время в течение, которого выполнялась задача '

这是我尝试比较的问题

from googletrans import Translator
translator = Translator()
translator.translate(r.text, dest='en').text

"Elapsed Task Time - the time during which the task was performed"

预期结果

"Elapsed Task Time - the time during which the task was performed"

1 个答案:

答案 0 :(得分:1)

无论出于何种原因,该库中使用的Microsoft翻译器API的(较旧)版本都无法正确地自动检测混合语言。如果您的混合语言包括英语,并且您为另一种语言指定了from_lang,则它将起作用。它总是检测英语。例如,如果您指定from_lang='ru'并翻译为“ it”,则英语部分也将翻译为意大利语。

因此,回到您的情况,这应该可行:

translator = Translator(provider='microsoft', to_lang=to_lang, from_lang='ru', secret_access_key=secret)

也就是说,我建议您查看:https://github.com/MicrosoftTranslator/Text-Translation-API-V3-Python。特别是Translate.py。这样应该可以正常工作,并且使用最新的API(更准确地说,您可以控制哪个API)。