Python谷歌翻译API错误:如何翻译大量数据

6

我的问题

我想使用一种数据增强方法来处理自然语言处理,即通过回译数据集的方式进行。

基本上,我有一个包含了110万个英文句子的大型数据集(SNLI),我需要做的是:把这些句子翻译成其他语言,再把它们翻译回英语。

我可能需要为多种语言做这个操作。所以我需要 大量 的翻译工作。

我需要一个免费的解决方案。


到目前为止我做了什么

我尝试了几个 Python 翻译模块,但由于 Google 翻译 API 最近的更改,大部分模块都无法正常工作。只有googletrans 似乎可以通过应用这个解决方案来工作。

然而,对于大型数据集,它并不起作用。Google 翻译有一个15K字符的限制(如此处此处此处 所指出)。第一个链接显示了一个所谓的解决方法。


我被卡在哪里了

即使我应用了这个解决方法(在每次迭代中初始化 Translator),它仍然不起作用,并且我得到了以下错误:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我尝试使用代理和其他谷歌翻译网址:

URLS = ['translate.google.com', 'translate.google.co.kr', 'translate.google.ac', 'translate.google.ad', 'translate.google.ae', ...]

proxies = {    'http': '1.243.64.63:48730',   'https': '59.11.98.253:42645', }

t = Translator(service_urls=URLS, proxies=proxies)

但这并没有改变什么。


注意

我的问题可能来自于我正在使用多线程:100个工作线程用于翻译整个数据集。如果它们并行工作,可能会一起使用超过15k个字符。

但我应该使用多线程。如果不这样做,将需要几周时间才能翻译整个数据集...


我的问题

如何修复此错误以便我可以翻译所有句子?

如果不可能,是否有任何免费替代方案,在Python中获取机器翻译(不强制使用Google Translate),用于这样一个大的数据集?


你找到任何解决方案了吗?我也遇到了同样的问题。 - Aqib Hameed
@AqibHameed 不好意思,我找不到... - Astariul
1个回答

0

一百万个字符是相当多的需要翻译的文本。

目前,Google Cloud Translation V3 提供了一个免费配额,您可能想要使用(每月免费1-500,000个字符)。由于这似乎不足以满足您的用例,您可能需要创建多个计费帐户或等待一个月以翻译更多文本。

请查看此链接,了解如何使用Python执行文本翻译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接