1. 程式人生 > >bdtrans 一個命令列下的機器翻譯工具

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 自動檢測

&n