首页 > 解决方案 > AWS 使用 Python 翻译大型 HTML

问题描述

我有一个 HTML 格式的大文本,需要使用 Amazon Translate API 翻译成不同的语言(它需要是 AWS,没有使用其他服务的选项)。

亚马逊每次通话的翻译限制为约 5000 个字符,因此我需要在句子中“拆分”大文本。

在 HTML 中,我有许多标签,例如 DIV、IMG、链接、粗体和斜体标签等。

这是我的实际方法:

  1. 获取 HTML 文本并通过 Python HTMLParser 传递它
  2. 如果打开标签是<p>获取数据(使用handle_data函数)
  3. “拆分”总共少于 5000 个字符的句子中的数据
  4. 翻译每块“少于 5000 个字符”的句子,并将它们合并成一个大的翻译文本
  5. 用翻译后的文本重建 HTML

这里的问题是我不知道如何重建 HTML,并<a>, <b>, <i>, <img>识别<p>.

还有其他方法或解决方案吗?

如果您有示例代码,那就太好了,因为我不知道如何覆盖handle解析器的功能

提前致谢。

标签: pythonhtmlamazon-web-servicestranslation

解决方案


对于指定的用例,当它是一个单一的,不是很大的文件,并且您需要立即响应时,translate_text方法应该没问题。

如果您有许多 HTML 文件,您可以使用批量翻译作业StartTextTranslationJob

  1. 将一组文档存储在 Amazon S3 存储桶内的输入文件夹中。
  2. 开始批量翻译作业。
  3. 作为您请求的一部分,为 Amazon Translate 提供一个 IAM 角色,该角色对输入 Amazon S3 文件夹具有读取权限。该角色还必须具有对输出 Amazon S3 存储桶的读写访问权限。
  4. 监控批量翻译作业的进度。
  5. 从指定的输出存储桶中检索批量翻译作业的结果。

在此处查看更多信息 https://docs.aws.amazon.com/translate/latest/dg/async.html


推荐阅读