我有一个 HTML 格式的大文本需要使用 Amazon Translate API 翻译成不同的语言(它需要是 AWS,不能选择使用其他服务)。
亚马逊限制每次通话翻译约 5000 个字符,因此我需要在句子中“拆分”大文本。
在 HTML 中我有很多标签,如 DIV、IMG、链接、粗体和斜体标签等。
这是我的实际做法:
- 获取 HTML 文本并通过 Python HTMLParser 传递它
- 如果打开的标签是
<p>
获取数据(使用handle_data
函数) - 将少于5000个字符的句子中的数据“拆分”
- 翻译“少于 5000 个字符”的每个句子 block ,并将它们连接成一个大的翻译文本
- 用翻译后的文本重建 HTML
这里的问题是我不知道如何重建 HTML,并识别像 <a>, <b>, <i>, <img>
这样的标签。等在 <p>
内.
还有其他方法或解决方案吗?
如果您有示例代码,那会很好,因为我不知道如何覆盖 handle
解析器的功能
提前致谢。
最佳答案
对于指定的用例,当它是一个单一的、不是很大的文件,并且您需要立即响应时,translate_text
方法应该没问题。
如果您有很多 HTML 文件,您可以使用 StartTextTranslationJob
的批量翻译作业
- 将一组文档存储在 Amazon S3 内的输入文件夹中 桶。
- 开始批量翻译工作。
- 作为您请求的一部分,为 Amazon Translate 提供 IAM 角色 具有对输入 Amazon S3 文件夹的读取权限。角色必须 还具有对输出 Amazon S3 存储桶的读写访问权限。
- 监控批量翻译工作的进度。
- 从指定的检索批量翻译作业的结果 输出桶。
在这里查看更多 https://docs.aws.amazon.com/translate/latest/dg/async.html
关于python - AWS Translate 使用 Python 的大型 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61600358/