一種基於google翻譯的“半自動化”圖書翻譯方法


一種基於google翻譯的“半自動化”圖書翻譯方法

身為碼農,避免不了需要看一些大部頭的英文圖書。對於我這種英文“二把刀”,努努力倒是能看懂。但時間就是金錢,看英文圖書的主要目的還是用最小的代價(主要是時間成本),學到最多最新的知識。所以很多英文圖書,我也不想摳得太細,領會精神就好了。

這兩年google翻譯有了很大的進步,雖然翻譯的結果跟人工翻譯還是差了不少,但如果只想快速瀏覽知識本身,直接看google翻譯的結果倒也湊合(有二義性的還是需要看原文的)。

於是想到了一個“半自動化”的圖書翻譯方法。

我要看的英文圖書是PDF格式的,首先需要抽取其中的英文文本。

第一步:抽取PDF文本

1)在ubuntu下安裝pdf轉換工具:

<code>apt-get install -y poppler-utils/<code>

2)抽取英文文本的命令:

<code>pdftotext <your>.pdf -x 0 -W 1000 -y 80 -H 520 -nopgbrk -f <first> -l <last> <output>.txt/<output>/<last>/<first>/<your>/<code>

其中<your>是英文圖書的文件名;<output>是要輸出的文本文件名;<first>和<last>是需要抽取的起始頁和結束頁號,之所以指定頁號區域,是因為google翻譯是有長度限制的,所以我們提供的原始內容也不能太多,一兩頁就好了。/<last>/<first>/<output>/<your>

這裡的-x, -y是要抽取英文區域距離左上角的座標的x,y值,-W, -H表示文本區域的寬和高;之所以設置x,y,W,H,是想把頁眉頁腳部分去掉,否則頁眉頁腳穿插在正文之中,影響閱讀。這裡x,y,W,H的值需要根據PDF文件的佈局來調整。

pdftotext命令的詳細說明,請參閱:

<code>man pdftotext/<code>

第二步:手動排版英文內容

這一步就是對照PDF原版,排版純文本英文內容。例如,第一步抽取出來的文本一般斷句是不對的,需要根據原文,重新合併和拆分句子。

第三步:調用google翻譯

1)安裝python環境

<code>apt-get install -y python3-pip/<code>

2) 安裝googletrans庫

<code>pip3 install googletrans/<code>

3) 編寫腳本trans.py

<code>#!/usr/bin/env python3
import googletrans
from googletrans import Translator
translator = Translator(service_urls=['translate.google.cn'])

file=open('output.txt','r')
origin=file.read()
result = translator.translate(origin, class="lazy" src="//p2.ttnews.xyz/loading.gif" data-original='en', dest='zh-cn')
print(result.text)/<code>

簡單解釋一下:

service_urls是服務器url列表,國內訪問translate.google.cn就行(不用額外的科學上網技術);src是'en',dest是'zh-cn',就是英譯漢;翻譯結果在result.text中,這裡簡單地將結果輸出到了屏幕,您也可以存入指定的文件。

當然,上述方法只是初步翻譯,您可以將翻譯的結果合併整理成一本簡單的圖書,如果有精力的話,再做幾遍人工校驗,降低二義性,實現“信達雅”。

凡是重複的勞動都應該用計算機來做。其實也沒那麼容易了。但如果付出20%的勞動能換來80%的成果,做一下也值得。

英文大牛見笑了。每個人的基礎不一樣,想盡辦法去努力的人值得“尊敬”。


分享到:


相關文章: