google翻译的原理(一种基于google翻译的)(1)

身为码农,避免不了需要看一些大部头的英文图书。对于我这种英文“二把刀”,努努力倒是能看懂。但时间就是金钱,看英文图书的主要目的还是用最小的代价(主要是时间成本),学到最多最新的知识。所以很多英文图书,我也不想抠得太细,领会精神就好了。

这两年google翻译有了很大的进步,虽然翻译的结果跟人工翻译还是差了不少,但如果只想快速浏览知识本身,直接看google翻译的结果倒也凑合(有二义性的还是需要看原文的)。

于是想到了一个“半自动化”的图书翻译方法。

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

第一步:抽取PDF文本

1)在ubuntu下安装pdf转换工具:

apt-get install -y poppler-utils

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

pdftotext <your_book>.pdf -x 0 -W 1000 -y 80 -H 520 -nopgbrk -f <first_page> -l <last_page> <output>.txt

其中<your_book>是英文图书的文件名;<output>是要输出的文本文件名;<first_page>和<last_page>是需要抽取的起始页和结束页号,之所以指定页号区域,是因为google翻译是有长度限制的,所以我们提供的原始内容也不能太多,一两页就好了。

这里的-x, -y是要抽取英文区域距离左上角的坐标的x,y值,-W, -H表示文本区域的宽和高;之所以设置x,y,W,H,是想把页眉页脚部分去掉,否则页眉页脚穿插在正文之中,影响阅读。这里x,y,W,H的值需要根据PDF文件的布局来调整。

pdftotext命令的详细说明,请参阅:

man pdftotext

第二步:手动排版英文内容

这一步就是对照PDF原版,排版纯文本英文内容。例如,第一步抽取出来的文本一般断句是不对的,需要根据原文,重新合并和拆分句子。

第三步:调用google翻译

1)安装python环境

apt-get install -y python3-pip

2) 安装googletrans库

pip3 install googletrans

3) 编写脚本trans.py

#!/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, src='en', dest='zh-cn') print(result.text)

简单解释一下:

service_urls是服务器url列表,国内访问translate.google.cn就行(不用额外的科学上网技术);src是'en',dest是'zh-cn',就是英译汉;翻译结果在result.text中,这里简单地将结果输出到了屏幕,您也可以存入指定的文件。

当然,上述方法只是初步翻译,您可以将翻译的结果合并整理成一本简单的图书,如果有精力的话,再做几遍人工校验,降低二义性,实现“信达雅”。

凡是重复的劳动都应该用计算机来做。其实也没那么容易了。但如果付出20%的劳动能换来80%的成果,做一下也值得。

英文大牛见笑了。每个人的基础不一样,想尽办法去努力的人值得“尊敬”。

,