bdtrans 一個命令行下的機器翻譯工具

  • 2019 年 10 月 3 日
  • 筆記

  現如今,機器翻譯技術已經越來越成熟了,儘管從整體來看機器翻譯的結果還不是特別如意,但是也足以應付一般的翻譯需求了。近幾年機器翻譯平台層出不窮,國外比較出名的翻譯平台有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 自動檢測