现如今,机器翻译技术已经越来越成熟了,尽管从整体来看机器翻译的结果还不是特别如意,但是也足以应付一般的翻译需求了。近几年机器翻译平台层出不穷,国外比较出名的翻译平台有Google翻译、必应翻译等,国内比较出名的也有百度翻译、有道翻译等。
中国的百度公司在人工智能层面做的还算是蛮不错的(虽然它的搜索一直以来为人所诟病),笔者经常在Linux下做一些工作,当有翻译需求时不得不打开浏览器,进入百度翻译官网去翻译一些句子,这样显然是有些麻烦,我想如果百度翻译肯提供一个API的话就好了,这样我就能做一个在终端下调用API的小工具。
笔者尝试登录百度翻译的开发者平台,发现百度翻译果然提供了API,于是笔者便用Python脚本语言写了一个命令行下的调用百度翻译工具,将其命名为bdtrans
虽然笔者是在Linux下写的这个工具,但是其它平台也是支持的(前提是你的计算机上安装了一个python3的解释器),它所依赖的第三方包只有setuptools与prompt_toolkit.
你可以将其当作一个pyhton包,在自己的脚本文件中导入并使用它,或者在python解释器中使用它,也可以将其完全当作一个命令行下的小工具,甚至启动交互式的翻译环境交互式翻译句子,它也支持从文件中读取翻译内容,并将翻译结果存储进文件中去,下面笔者简要介绍一下工具的使用。
安装
你可以使用Python包管理工具来安装它:pip install bdtrans
你也可以下载源码包,解压后运行安装文件:python setup.py insatll
Github开源地址:/zsimline/bdtrans
使用方式
首先,你应该去百度翻译的官网上注册一个账户,并按照官网上的指导并申请一个百度翻译API的AppID与秘钥。
当你首次尝试导入bdtrans包,或者在命令行工具下使用它时,它将会指引你输AppID、秘钥、默认的翻译规则等信息,并在输入完成后在你的用户目录下生成一个名为.bdtrans的配置文件,之后你就可以直接使用它而无需再次输入AppID等相关信息了。
需要注意的是,百度翻译限制调用API的频率为1s/次,所以请不要在1s内调用多次API
模块函数
trans(words, source_lang=None, target_lang=None, reverse=False)
作用:翻译用户给定的句子,输出翻译结果
>>> import bdtrans>>> bdtrans.trans('Hello, boy!','en','zh')>>> 你好,男孩!
io_trans(input_file, output_file=None, quiet=False)
作用:从文件中读取翻译内容,如果指定了输出文件,翻译结果将被存储到输出文件中
set_lang(source_lang, target_lang)
作用:设置源语言代码与目标语言代码
save(file_name)
作用:保存翻译结果到文件中
reverse_lang()
作用:反转源语言与目标语言
list_langs()
作用:打印目前支持的语言列表
display_rules
作用:显示当前的语言翻译规则
change_appid()
作用:按照向导改变配置文件中的AppID
change_lang()
作用:按照向导改变配置文件中的默认翻译规则
initialize_app()
作用:按照向导初始化APP
命令行工具
可以直接在命令行下使用它,最重要的是你可以使用 “bdtrans -S” 进入交互式的翻译环境。
bdtrans [选项] 待翻译文本
选项
交互环境下的选项
user@host:$ bdtrans 德玛西亚万岁user@host:$ Long live Demasiauser@host:$ bdtrans -t ara 德玛西亚万岁user@host:$ فيفا دي مارسياuser@host:$ bdtrans -s zh 德玛西亚万岁user@host:$ 不可以只指定源语言!
在交互环境下可以使用 =code 来临时的指定目标语言,此时源语言将自动的被指定为auto, 例如 ” =zh hello world ”
>=th 你在地球嗑瓜子คุณใช้เมล็ดแตงโมบนโลก>=jp 我在月球吃西瓜月でスイカを食べます