bdtrans 一个命令行下的机器翻译工具
现如今,机器翻译技术已经越来越成熟了,尽管从整体来看机器翻译的结果还不是特别如意,但是也足以应付一般的翻译需求了。近几年机器翻译平台层出不穷,国外比较出名的翻译平台有Google翻译、必应翻译等,国内比较出名的也有百度翻译、有道翻译等。
中国的百度公司在人工智能层面做的还算是蛮不错的(虽然它的搜索一直以来为人所诟病),笔者经常在Linux下做一些工作,当有翻译需求时不得不打开浏览器,进入百度翻译官网去翻译一些句子,这样显然是有些麻烦,我想如果百度翻译肯提供一个API的话就好了,这样我就能做一个在终端下调用API的小工具。
笔者尝试登录百度翻译的开发者平台,发现百度翻译果然提供了API,于是笔者便用Python脚本语言写了一个命令行下的调用百度翻译工具,将其命名为 bdtrans
虽然笔者是在Linux下写的这个工具,但是其它平台也是支持的(前提是你的计算机上安装了一个python3的解释器),它所依赖的第三方包只有setuptools与prompt_toolkit.
你可以将其当作一个pyhton包,在自己的脚本文件中导入并使用它,或者在python解释器中使用它,也可以将其完全当作一个命令行下的小工具,甚至启动交互式的翻译环境交互式翻译句子,它也支持从文件中读取翻译内容,并将翻译结果存储进文件中去,下面笔者简要介绍一下工具的使用。
安装
你可以使用Python包管理工具来安装它: pip install bdtrans
你也可以下载源码包,解压后运行安装文件: python setup.py insatll
Github开源地址:https://github.com/zsimline/bdtrans
使用方式
首先,你应该去百度翻译的官网上注册一个账户,并按照官网上的指导并申请一个百度翻译API的AppID与秘钥。
当你首次尝试导入bdtrans包,或者在命令行工具下使用它时,它将会指引你输AppID、秘钥、默认的翻译规则等信息,并在输入完成后在你的用户目录下生成一个名为.bdtrans的配置文件,之后你就可以直接使用它而无需再次输入AppID等相关信息了。
需要注意的是,百度翻译限制调用API的频率为1s/次,所以请不要在1s内调用多次API
模块函数
trans(words, source_lang=None, target_lang=None, reverse=False)
作用:翻译用户给定的句子,输出翻译结果
参数 | 含义 |
---|---|
words | 你想要翻译的句子 |
source_lang | 源语言代码(非必须) |
target_lang | 目标语言代码(非必须) |
reverse | 是否反转源语言与目标语言 |
>>> import bdtrans
>>> bdtrans.trans('Hello, boy!','en','zh')
>>> 你好,男孩!
io_trans(input_file, output_file=None, quiet=False)
作用:从文件中读取翻译内容,如果指定了输出文件,翻译结果将被存储到输出文件中
参数 | 含义 |
---|---|
input_file | 输入的文件名 |
output_file | 输出的文件名 |
quiet | 是否关闭控制台输出 |
set_lang(source_lang, target_lang)
作用:设置源语言代码与目标语言代码
参数 | 含义 |
---|---|
source_lang | 源语言代码 |
target_lang | 目标语言代码 |
save(file_name)
作用:保存翻译结果到文件中
参数 | 含义 |
---|---|
file_name | 保存的文件名 |
reverse_lang()
作用:反转源语言与目标语言
list_langs()
作用:打印目前支持的语言列表
display_rules
作用:显示当前的语言翻译规则
change_appid()
作用:按照向导改变配置文件中的AppID
change_lang()
作用:按照向导改变配置文件中的默认翻译规则
initialize_app()
作用:按照向导初始化APP
命令行工具
可以直接在命令行下使用它,最重要的是你可以使用 “bdtrans -S” 进入交互式的翻译环境。
bdtrans [选项] 待翻译文本
选项
选项 | 含义 |
---|---|
-h, –help | 显示帮助消息 |
-v, –version | 显示程序版本 |
-l, –list | 打印语言列表 |
-S, –shell | 启动交互式翻译环境 |
-s code, –source code | 指定源语言 |
-t code, –target code | 指定目标语言 |
-i filename, –input filename | 指定输入文件 |
-o filename, –output filename | 指定输出文件 |
–init | 按照向导初始化APP |
–changeinfo | 改变配置文件中的AppID |
–changelang | 改变配置文件中的翻译规则 |
交互环境下的选项
选项 | 含义 |
---|---|
/reve | 反转源语言与目标语言 |
/rule | 显示当前的翻译规则 |
/list | 打印支持的语言列表 |
/help | 显示帮助信息 |
/quit | 退出交互环境 |
/save filename | 保存翻译结果 |
/setlang source_lang target_lang | 设置源语言与目标语言 |
user@host:$ bdtrans 德玛西亚万岁
user@host:$ Long live Demasia
user@host:$ bdtrans -t ara 德玛西亚万岁
user@host:$ فيفا دي مارسيا
user@host:$ bdtrans -s zh 德玛西亚万岁
user@host:$ 不可以只指定源语言!
在交互环境下可以使用 =code 来临时的指定目标语言,此时源语言将自动的被指定为auto, 例如 ” =zh hello world ”
>=th 你在地球嗑瓜子
คุณใช้เมล็ดแตงโมบนโลก
>=jp 我在月球吃西瓜
月でスイカを食べます
支持的语言列表
语言代码 | 语言 |
---|---|
zh | 中文 |
en | 英语 |
yue | 粤语 |
wyw | 文言文 |
jp | 日语 |
kor | 韩语 |
fra | 法语 |
spa | 西班牙语 |
th | 泰语 |
ara | 阿拉伯语 |
ru | 俄语 |
pt | 葡萄牙语 |
de | 德语 |
it | 意大利语 |
el | 希腊语 |
nl | 荷兰语 |
pl | 波兰语 |
bul | 保加利亚语 |
est | 爱沙尼亚语 |
dan | 丹麦语 |
fin | 芬兰语 |
cs | 捷克语 |
rom | 罗马尼亚语 |
slo | 斯洛文尼亚语 |
swe | 瑞典语 |
hu | 匈牙利语 |
cht | 繁体中文 |
vie | 越南语 |
auto | 自动检测 |
bdtrans 一个命令行下的机器翻译工具的更多相关文章
- Linux系统——28个命令行下的工具
Unix/Linux下的28个命令行下的工具 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不 ...
- 命令行的全文搜索工具--ack
想必大家在命令行环境下工作时候,一定有想要查找当前目录下的源代码文件中的某些字符的需求,这时候如果使用传统方案,你可能需要输入一长串的命令,比如这样: 1. grep -R 'string' dir/ ...
- dict-命令行下中英文翻译工具
命令行下中英文翻译工具(Chinese and English translation tools in the command line) 安装(Install) ubuntu 安装 pip sud ...
- [Shell学习笔记] 命令行下的高级网络工具cURL命令
原文: http://www.1987.name/365.html Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯 ...
- 用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具
用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具 前言 上周,同事抱怨说 react 怎么不能像 angular 那样,使用命令行工具来生成一个组件.对呀,平时工作时,想要创建 ...
- Linux 命令行下搜索工具大盘点,效率提高不止一倍!
在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令.grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂. 于是,为了简化 grep ...
- GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...
- 十分钟通过 NPM 创建一个命令行工具
大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...
- python:执行一个命令行N次
经常希望可以执行一个命令行N次...windows下没有现成的工具(有?推荐给我!) 用python写一个... #!/usr/bin/evn python #coding: utf-8 " ...
随机推荐
- java的System.currentTimeMillis()和System.nanoTime
纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之一,即等于10的负9次方秒.常用作 内存读写速度的单位,其前面数字越小则表示速度越快. 1纳秒=1000 皮秒 1纳秒 = ...
- win7 磁盘碎片整理
最近每天早上开机,都出现开机正常,但是所有软件都没法点开,性能特别差: 咨询了运维小伙伴,提示可以整理下电脑磁盘碎片试试.那么如何整理呢,如下详细说明 1.先整理C盘,打开我的电脑,在C盘上,右击-- ...
- centos7上搭建zookeeper集群
1.下载zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/ 可以登录这个网站下载,然后上传到 centos上 修改成自己需要的版本 , ...
- hdoj 4762 Cut the Cake
题意很简单就不说了. 解题的关键就是这个公式 answer=n/(m^(n-1)); 要用到大数的乘法.然后java水过. import java.util.*; import java.math.* ...
- Golang版本的rocksdb-对gorocksdb的封装
rocksdb的优秀特性不用多说,但是它是用c++语言写的,就是这一个特点就把很多人拦住了.虽然rocksdb官方也有Java版本,但是Golang的发展速度让人不容小觑,而且由于golang原生对高 ...
- windows下hexo+github搭建个人博客
网上利用hexo搭建博客的教程非常多,大部分内容都大同小异,选择一篇合适的参考,跟着一步一步来即可. 但是,很多博客由于发布时间较为久远等问题,其中某些操作在现在已不再适用,从而导致类似于我这样的小白 ...
- idea 2018.3.4安装破解
电脑环境:win10 64位 1.idea官网下载: 链接:https://www.jetbrains.com/idea/,如下图: 2.JDK官网下载: 链接:https://www.oracle. ...
- java 购物商城小项目训练
java web 模拟购物车练习(项目一) 首页(index.jsp) <div align="center" class="index"> < ...
- Git使用(码云)
1.安装git软件(码云/GitHub) 2.码云注册,保存代码 3.创建代码托管仓库,仓库名相当于码云上的文件夹 4.写作业并提交 在作业文件夹上,右键选择‘get bash here’ 在黑框里输 ...
- 《统计学习方法》极简笔记P2:感知机数学推导
感知机模型 输入空间是$\chi\subseteq\mathbb{R}^n$,输出空间是$y={+1,-1}$ 感知机定义为:$f(x)=sign(wx+b)$ 感知机学习策略 输入空间任一点$x_0 ...