【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

2024-07-11 1026阅读

价格和 API 申请参考:

  1. 免费翻译接口最新最全汇总(百度翻译,腾讯翻译,谷歌翻译,DeepL翻译等…):了解了大部分免费翻译接口的价格情况以及申请的官方地址。
  2. 百度、阿里、腾讯、有道各平台翻译API申请教程:图文并茂地了解了翻译接口的具体申请方式。

测试方式:

  • 我全写成了 Translator 类,这样就能复用 python 库 translate 的测试代码。
  • 调用方式一律都是 Translator(from_lang="en",to_lang="zh").translate(sentence) 的形式。
  • 性能测试:用的是 Python 的第三方库 Pytest
  • 功能测试:主要是针对我自己的翻译需求做的测试,我的翻译需求是翻译目录,我写的处理脚本是分词分句之后逐词逐句翻译,具体翻译了个啥你们可以直接看后文。

    本篇为第一篇,只包含第三方库 translate 和 腾讯 API 的测评。

    下一篇:【笔记】Python3|(二)用 Python 翻译文本的代码与测试结果(有道翻译 API 篇)

    文章目录

      • 0 translate 库
        • 0.1 参考
        • 0.2 安装
        • 0.3 测试代码
        • 0.4 测试结果
          • 0.4.1 性能测试:巨慢
          • 0.4.2 功能测试:Failed
          • 1 腾讯 - 500万字符免费/每月
            • 1.1 参考
            • 1.2 安装
            • 1.3 测试代码
            • 1.4 测试效果
              • 1.4.1 性能测试:效果很好,响应飞快!
              • 1.4.2 功能测试:一些计算机专有的词汇处理得不是很好
              • 1.4.2 API 使用情况:正常,无坑

                0 translate 库

                0.1 参考

                Python语言翻译包translate,支持翻译多语种

                这个第三方库用的是 DeepL 的 API。

                亲测请求了 10 次就用不了了。。。蚌埠住。

                0.2 安装

                pip install --upgrade translate
                

                0.3 测试代码

                from translate import Translator # pip install translate # 极其拉胯难用,因为有次数限制
                # from tencent import Translator
                ####################################################################################################
                #----------------------------------------  Translator  ---------------------------------------------#
                ####################################################################################################
                def isContainAlpha(str_check):
                    return str_check.lower() != str_check.upper()
                def test_simple_translate():
                    print(Translator(from_lang="English",to_lang="Chinese").translate('Hello, world!'))
                

                0.4 测试结果

                0.4.1 性能测试:巨慢

                就翻译个这玩意要 2.89s

                【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

                0.4.2 功能测试:Failed

                因为它翻译 3 次就挂了。

                1 腾讯 - 500万字符免费/每月

                1.1 参考

                参考:

                1. python实现调用腾讯云翻译API
                2. 【玩转腾讯云】【腾讯云机器翻译TMT】机器翻译入门

                腾讯翻译API接口免费翻译额度:500万字符免费/每月;

                超出免费额度价格:58元/百万字符,有字符资源包出售;

                官方介绍:机器翻译 计费概述-购买指南-文档中心-腾讯云

                1.2 安装

                pip install --upgrade tencentcloud-sdk-python
                

                1.3 测试代码

                需要运行的测试代码就不重复贴了,这是 Translator 类定义的代码:

                from tencentcloud.common import credential
                from tencentcloud.common.profile.client_profile import ClientProfile
                from tencentcloud.common.profile.http_profile import HttpProfile
                from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException 
                from tencentcloud.tmt.v20180321 import tmt_client, models 
                SecretId = ""
                SecretKey = ""
                class Translator:
                    def __init__(self, from_lang, to_lang):
                        self.from_lang = from_lang
                        self.to_lang = to_lang
                    def translate(self, text):
                        try: 
                            cred = credential.Credential(SecretId, SecretKey)
                            httpProfile = HttpProfile()
                            httpProfile.endpoint = "tmt.tencentcloudapi.com"
                            clientProfile = ClientProfile()
                            clientProfile.httpProfile = httpProfile
                            client = tmt_client.TmtClient(cred, "ap-beijing", clientProfile) 
                            req = models.TextTranslateRequest()
                            req.SourceText = text
                            req.Source = self.from_lang
                            req.Target = self.to_lang
                            req.ProjectId = 0
                            resp = client.TextTranslate(req) 
                            return resp.TargetText
                        except TencentCloudSDKException as err: 
                            return err
                if __name__ == '__main__':
                    translator = Translator(from_lang="en", to_lang="zh")
                    print(translator.translate("Hello, world!"))
                

                1.4 测试效果

                1.4.1 性能测试:效果很好,响应飞快!

                输出打印时间:1.3s

                【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

                1.4.2 功能测试:一些计算机专有的词汇处理得不是很好

                比如下图的 fixtures,不过其他的常见词汇翻译挺好的,算是能用能看懂了!

                【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

                1.4.2 API 使用情况:正常,无坑

                翻译的文档的具体信息是通过查看 VScode 右下角得到的。

                【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

                • 翻译次数:我翻译的文档是 548 行的目录文件,平均一行翻译了 2~3 次。和后台的请求次数是能对得上的。
                • 文本翻译字符数:我翻译的文档是 26865 字符数的目录文件,输出的结果是 15038 个字符的文件,不过我写的脚本对一些符号做了去除的处理,所以实际参与翻译的字符没那么多。可以看到,它应该是没有把翻译的结果阴险地加到字符数里面的,还算厚道。

                  【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)

                  后续其他篇目敬请期待,若有更新会在本文结尾附上链接。

                  下一篇:【笔记】Python3|(二)用 Python 翻译文本的代码与测试结果(有道翻译 API 篇)

                  本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/138141104。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]