机器翻译:使用小牛翻译API进行中英文翻译实战

   小牛翻译开放平台是2018年工信部106个“国家人工智能与实体经济深度融合创新项目”之一。平台于2018年正式上线,采用最新的神经网络机器翻译技术自主研发,是一个以“机器翻译”为核心服务的开放平台,支持300+种语言互译。除基本的文本翻译能力外,还开放了更多API接口,用户可通过调用以上接口,将各项翻译能力集成到自有应用软件/平台中,帮助用户解决各种翻译问题。

1.小牛翻译系统是由国人完全自主研发以中文为核心的机器翻译系统,采用最新的神经机器翻译理论和技术,应用基自主研发的NiuTensor平台训练的多语种机器翻译引擎,所有核心代码全部由团队自行开发。可以根据用户的需要进行代码底层修改,满足支持国产化操作系统、国产化硬件平台本地部署、领域适应性优化调试等需求。

2.小牛翻译团队核心成员均来自东北大学自然语言处理实验室,该实验室由国内机器翻译领域著名学者姚天顺教授创立,已有40年历史,由业内顶级机器翻译专家朱靖波教授和肖桐博士领衔。团队拥有百余名研发人员,80%成员为硕士和博士学位,承担了包括2022年冬奥会的机器翻译技术等30多项国家级研究项目。

3.API接口:提供通用的HTTP协议的API接口,通过API接口可以将机器翻译能力快速接入到APP、网站及智能设备中,为其提供实时优质的机器翻译能力。

4.文本翻译:系统提供可视化页面,通过复制内容粘贴到翻译栏中快速将少量的多语言文字进行翻译,简单便捷。

5.文档翻译:支持.txt / .docx /.xls / .xlsx / .ppt / .pptx/等多种格式文档翻译,支持批量上传,一键完成翻译,保留原格式

6.术语词典:支持用户自添加术语词典,通过在翻译系统中添加用户自定义术语,保证机器译文中术语翻译的准确性和一致性。

7.翻译记忆:支持人工翻译记忆库扩展,用户可将人工翻译的正确译文实时添加到小牛翻译系统中的翻译记忆库中,避免机器翻译重复犯错。

8.离线翻译本地部署:将机器翻译系统部署到企业内网服务器中,实现本地完成多语言文本信息的翻译,也可以通过API接口将翻译能力集成到企业内部的应用程序中,满足企业对数据安全管控的需要。

9.翻译机解决方案:应用自有模型压缩技术,将原有近2G的翻译模型进行压缩处理,压缩后的模型占用内存小,可在翻译机、翻译笔等多种移动智能小设备中稳定运行,搭配SDK工具包,让小设备在无网/网络不佳状态下依然具备多语言的文字翻译能力。

10.领域定制解决方案:除提供通用的机器翻译引擎外,还提供特定领域机器翻译引擎定制服务,如专利、医药、汽车等领域的机器翻译引擎,满足用户的个性化需求。

11.Office插件:一款安装在MS Office 和 金山WPS上的翻译工具,可在Word、Excel、PPT中实现文字自动翻译,不受文档大小、页数、字数限制,保留文字版式,快速提升办公效率。

12.CAT插件:安装在CAT中的机器翻译工具,可在Trados和MemoQ中使用,支持对标签进行自动处理、机器翻译结果自动修改,以及“译前—译后”自动调整。

小牛翻译实战

1.申请API-KEY

这里我们首先来到小牛翻译控制台小牛翻译 直接点击即可进入网页。

常规进行注册登录

 登录完成后我们到达控制台页面

 点击个人中心,即可看到我们的API-KEY,此时将我们自己的API-KEY进行保存记录

 接下来到服务中心,我们可以看到他支持的服务,在这里我们使用API接口进行一次简单的调用使用

 2.使用Python进行机器翻译实战

首先我们按照官网给的文档写一个讲中文转化到英文的函数代码

def translate_large(sentence, src_lan, tgt_lan, apikey):
    url = 'https://api.niutrans.com/NiuTransServer/translation'
    data = {"from": src_lan, "to": tgt_lan, "apikey": apikey, "src_text":sentence}
    body = urllib.parse.urlencode(data).encode('UTF-8')
    r = urllib.request.Request(url, body)
    with urllib.request.urlopen(r) as req:
        data = req.read()
        result_dict = json.loads(data)

        return result_dict['tgt_text']

接下来我们写入一段文字来调用它将中文翻译为英文

    txt = '红海早过了,船在印度洋面上开驶着,但是太阳依然不饶人地迟落早起,侵占去大部分的夜。夜仿佛纸浸了油变成半透明体;它给太阳拥抱住了,分不出身来,也许是给太阳陶醉了,所以夕照晚霞褪后的夜色也带着酡红。到红消醉醒, 船舱里的睡人也一身腻汗地醒来, 洗了澡赶到甲板上吹海风, 是一开始。这是七月下旬, 合中国旧历的三伏,一年中最热的时候。在中国热得更比常年利害, 事后大家都说是兵戈之象,因为这就是民国二十六年[一九三七年】。'
    r = translate_large(txt, U_src_lan, U_tgt_lan, appid)

这里运行后我们可以看一下结果:显然已经翻译为英文了

 最后这里附上完整的代码,供大家直接复现

# coding:utf-8
import json
import urllib
from urllib import request
import sys
def translate(sentence,src_lan,tgt_lan,apikey):
    url ='http://api.niutrans.com/NiuTransServer/translation?&'
    data = {"from":src_lan, "to":tgt_lan,"apikey":apikey,"src_text":sentence}
    dataT = urllib.parse.urlencode(data)
    reqStr = url + dataT
    print("使用get方式, 参数附加在url中:")
    print(reqStr)
    with urllib.request.urlopen(reqStr) as req:
        data = req.read()
        print('返回JSON数据样例:')
        print(data)
        result_dict = json.loads(data)
    return result_dict['tgt_text']
def translate_large(sentence, src_lan, tgt_lan, apikey):
    url = 'https://api.niutrans.com/NiuTransServer/translation'
    data = {"from": src_lan, "to": tgt_lan, "apikey": apikey, "src_text":sentence}
    body = urllib.parse.urlencode(data).encode('UTF-8')
    r = urllib.request.Request(url, body)
    with urllib.request.urlopen(r) as req:
        data = req.read()
        result_dict = json.loads(data)

        return result_dict['tgt_text']
if __name__== "__main__":
    appid = '5590ea3a75f0e292b6e8f09f3015a9e9'
    U_src_lan= 'zh'
    U_tgt_lan = 'en'
    txt = '世界你好。'
    print(translate(txt, U_src_lan, U_tgt_lan, appid))
    txt = '红海早过了,船在印度洋面上开驶着,但是太阳依然不饶人地迟落早起,侵占去大部分的夜。夜仿佛纸浸了油变成半透明体;它给太阳拥抱住了,分不出身来,也许是给太阳陶醉了,所以夕照晚霞褪后的夜色也带着酡红。到红消醉醒, 船舱里的睡人也一身腻汗地醒来, 洗了澡赶到甲板上吹海风, 是一开始。这是七月下旬, 合中国旧历的三伏,一年中最热的时候。在中国热得更比常年利害, 事后大家都说是兵戈之象,因为这就是民国二十六年[一九三七年】。'
    r = translate_large(txt, U_src_lan, U_tgt_lan, appid)
    print(r)

运行效果图:

在此code中,我们需要注意将appid改为自己上文申请的appid,文中作者将自己的appid也附在其中,大家可以尝试,但是会有次数限制。

小牛翻译中可以支持388种语言,大家可以参考文档来进行尝试翻译为其他的语言。

这里是其中可以支持的部分语言,官方开发文档的入口可以点击这里小牛翻译开发文档

猜你喜欢

转载自blog.csdn.net/weixin_51672245/article/details/130396657