代码之家  ›  专栏  ›  技术社区  ›  Maksim Khaitovich

通过googletranslate批量翻译一大组记录

  •  1
  • Maksim Khaitovich  · 技术社区  · 7 年前

    我需要翻译一个相当大的一套记录,从各种语言(语言是不知道提前)到英语。这一套大约有3百万张唱片,每一张唱片都是很短的文字。它不是详细的文本,大部分只是项目描述。类似于“诺基亚Black的移动路由器3G”,用各种语言编写(虽然没有太多异国情调,但主要是德语、法语、阿拉伯语、俄语等)。我也不知道每个记录是用哪种语言写的,所以我需要依靠自动语言检测。

    到目前为止,我能够通过使用 Google Cloud API

    它相当简单,我只需一次将一条记录传递给API,而无需指定源语言,而且它能够根据需要正确地翻译记录。

    这里的问题是,这个过程非常缓慢。我们提取单个文本字符串,连接到API,将其发送过来,得到结果并存储。每个记录处理在与API通信时都会带来很大的开销,当您执行数百万条记录的翻译时,需要很长的时间。

    我想知道有没有办法批量执行这个操作?也许一次发送大量字符串记录进行翻译,以减少与googleapi通信的开销?或者有什么方法可以直接上传一个文件到Google,里面有我需要翻译的所有记录,然后在有结果的时候下载?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Armin_SC    7 年前

    我认为 云翻译API GCP Client Libraries ,它将文本字符串连接到单个分隔字符串记录中;这样,可以在同一调用中转换多个值。将完整字符串转换为所需语言后,可以根据分隔符值将其拆分,以获得分隔的文本字符串数组。请记住,建议 send less than 5000 per request

    如果此解决方案不能满足您当前的需要,您可以使用 发送反馈 按钮,位于 service public documentation ,以及看看 Issue Tracker raise a Translation API feature request 并将此功能通知Google。

        2
  •  1
  •   Komsit Prakobphol    5 年前

    现在googletranslate提供了批处理请求API,它接受云存储上的文件 https://cloud.google.com/translate/docs/advanced/batch-translation