python - AWS 使用 Python 翻译大型 HTML
问题描述
我有一个 HTML 格式的大文本,需要使用 Amazon Translate API 翻译成不同的语言(它需要是 AWS,没有使用其他服务的选项)。
亚马逊每次通话的翻译限制为约 5000 个字符,因此我需要在句子中“拆分”大文本。
在 HTML 中,我有许多标签,例如 DIV、IMG、链接、粗体和斜体标签等。
这是我的实际方法:
- 获取 HTML 文本并通过 Python HTMLParser 传递它
- 如果打开标签是
<p>
获取数据(使用handle_data
函数) - “拆分”总共少于 5000 个字符的句子中的数据
- 翻译每块“少于 5000 个字符”的句子,并将它们合并成一个大的翻译文本
- 用翻译后的文本重建 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
推荐阅读
- r - 在可反应R中的选定行下方插入边框
- javascript - 运行 javascript onload youtube grpr
- javascript - 如何在 socket.io 中为两个用户创建一个独特的房间(房间 ID)?
- arrays - 解析电子表格结构中的简单引用。这是一个链表问题吗?
- opengl - 在OpenGL中将三角形更改为圆形
- c - 如何摆脱C上的“分段错误”?
- node.js - 如何在 typeorm (postgresql) 中进行 INNER JOIN
- python - 当我添加 aa 定义来更改名称时,更改名称不起作用
- python - 如何在 PyCharm 中添加对 reST 评论的交叉引用?
- python - 为什么列表函数和列表文字的行为不同?