python googletrans翻译超长文本(长度大于15k)

在所有的免费Python翻译接口中,googletrans无疑是最便捷最准确的,而且最重要的是它请求接口基本是免费的(有每秒请求次数限制,除非你海量请求,否则不会触发限制)。在平日的使用中,我发现googletrans接口实际上对输入字符串的长度是有限制的(最大长度不能超过15k),所以在使用中,为了安全,要处理这个case。

BB less,show me the code:

from googletrans import Translator
translator = Translator()

# 处理query(翻译文本)超过Googletrans要求长度的问题,googletrans要求最大长度为15k,为了保守起见,从13k之后进行文本切割
if len(query) > 13000:
    query_segments = []
    while len(query) >= 13000:
        segment_pos = query[13000:].find('\n')  # \n切割文本
        query_segments.append(query[:13000 + segment_pos])
        query = query[13000 + segment_pos:]
    print(f"翻译结果超长,将结果分成`{len(query_segments)}`段!")
else:
    query_segments = [query]
# 开始翻译,将翻译结果拼接到一起
_r = ''.join([_zh_res.text for _zh_res in translator.translate(query_segments, dest='zh-CN')])

如上所示,我这是个英译汉的示例,query就是待翻译的英文。我只用了简单的换行符(\n)进行文本切割,可按照实际情况来更聪明的切割文本。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_illusion_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值