吐槽一下中文版的翻译问题
![](https://img9.doubanio.com/icon/u257925095-4.jpg)
这篇书评可能有关键情节透露
很难相信,这个版本从2007年12月第1次印刷开始,至今都第17次印刷(2021年9月)了都没有人指出这个版本糟糕的翻译问题。不是我吹毛求疵,作为一本专业性很强的理工科教材,出现这种严重影响阅读体验的低级翻译错误本就不应该。所以,对于这个版本在200多人的评价下能拿到9.1分的高分这件事我表示并不能理解。也许是大家实在是太宽容了,抑或是大佬们都拥有自动纠正错误翻译的功能从而没有受到太多来自错误翻译带来的影响因而没有意识到这个问题。但不管怎么样,对于我个人来说我的阅读体验是实实在在地受到了这些错误翻译的影响的,因此无论如何都要将这些翻译错误记录下来,一方面用于宣泄不满,另一方面用于警示后来者:对于那些还未开始读此书,有意向要读此书的人,我的建议是,有能力的直接去读英文版,没有能力的就中英对照着阅读;对于那些已经开始阅读此书却觉得此书难以理解的人,先别急着怀疑自己的智商或者是怀疑书写得不够基础,来这里检索一下你读不懂的页码,说不定你就会发现这其实是翻译错误带来的阅读困难,所以看不懂并不是你的错。以下列出的某些翻译错误也许可能在大多数人看来显得有些过于钻牛角尖了,但出于学习与记录目的,我还是选择全部保留了下来。比如下面第一条我就指出了本书对爱因斯坦名言的翻译错误,尽管这句爱因斯坦名言跟本书的核心内容毫无关联,但还是像凑数一样加了进来,本质上还是为了做一个相对全面的记录。所以如果各位看官发现我指出的某些翻译错误太过牵强,或者觉得“某些地方翻译得虽有瑕疵,但能理解就好,不需要那么抠字眼”,那么不必纠结,只需跳过即可,因为前面我也说了,我的打击范围很广,什么鸡毛蒜皮的小事都不会放过,因此某些翻译错误即使无关紧要,我也会一视同仁,一并指出。下面就来对这些翻译错误问题逐个吐槽一番。仅供娱乐。
(1)第1版前言
【中文版译文】:
正如爱因斯坦所说:“凡事应该尽可能使其简单到不能再简单为止。”
【英文版原文】:
As Einstein said, “Everything should be made as simple as possible, but no simpler.”
【吐槽】:
虽然这句所谓的爱因斯坦名言经过网友考证发现爱因斯坦并没有说过这句话(详细的考证细节请参考: Everything Should Be Made as Simple as Possible, But Not Simpler – Quote Investigator ),但这句话无论是不是爱因斯坦说的,其重点也并没有被翻译出来。据考证,在爱因斯坦说过的话里,最接近这句话的应该是下面这句:
It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.
大致翻译是:
不可否认,所有理论的最终目标是使得不可简化的元素尽可能地简单并且尽可能地少,但不能简单到不得不放弃对单一经验数据的充分描述的地步。
因此,原文的翻译也应该尽可能地在结构上去契合爱因斯坦的原话,把一部分重点放到表转折的“but”上,将其翻译为:“凡事应该力求尽可能地简单,但不能简单过头了”。原翻译只强调了要不择手段地简单,但没有强调不能简单过头,可以说原翻译对原文是造成了一定的曲解的。
【建议翻译】:
正如爱因斯坦所说:“凡事应该力求尽可能地简单,但不能简单过头了。”
(2)第1章,第1页
【中文版译文】:
信息论解答了通信理论中的两个基本问题:临界数据压缩的值(答案:熵H)和临界通信传输速率的值(答案:信道容量C)。
【英文版原文】:
Information theory answers two fundamental questions in communication theory: What is the ultimate data compression (answer: the entropy H), and what is the ultimate transmission rate of communication (answer: the channel capacity C).
【吐槽】:
我不知道为什么要把“ultimate”翻译成“临界”,我第一次读到这句话的时候压根不知道这句话在说什么。按照通常最习惯的用法,“临界”应该用来表示的是两种状态之间互相转化的那个交界线,一旦过了这个交界线,就会由一个状态转换成另一个状态,强调的是一种中间状态。而原文在这里想表达的是什么?原文在这里想表达的是数据压缩的极限和通信传输速率的极限在哪里,强调的是理论上我能达到的最佳数据压缩值和最快传输速率。因此,在这种情况下显然把它们翻译成“数据压缩的极限值”和“通信传输速率的极限值”要更精准也更好理解一些。
【建议翻译】:
信息论解答了通信理论中的两个基本问题:数据压缩的极限值(答案:熵H)和通信传输速率的极限值(答案:信道容量C)。
(3)第1章图1-1和图1-2,第1页
【中文版译文】:
![](https://img3.doubanio.com/view/thing_review/l/public/p7530467.jpg)
![](https://img1.doubanio.com/view/thing_review/l/public/p7530479.jpg)
【英文版原文】:
![](https://img3.doubanio.com/view/thing_review/l/public/p7530457.jpg)
![](https://img3.doubanio.com/view/thing_review/l/public/p7530403.jpg)
【吐槽】:
问题和第(2)条一样,只不过这次是把“limit”翻译成了“临界值”。同样地,出于和(2)相同的理由,我依然建议把它们都翻译成“极限值”。
【建议翻译】:
通信理论中的极限值;数据压缩极限值;数据传输极限值
(4)第1章例1.1.4,第4页
【中文版译文】:
但是,如果考虑一系列传输,那么任何信道看起来都会像此例一样,并且均可以识别出输入序列集合(码字集)的一个子集,其传输信息的方式是:对应于每个码字的所有可能输出序列构成的集合近似不相交。
【英文版原文】:
But if we consider a sequence of transmissions, all channels look like this example and we can then identify a subset of the input sequences (the codewords) that can be used to transmit information over the channel in such a way that the sets of possible output sequences associated with each of the codewords are approximately disjoint.
【吐槽】:
这句翻译实在是无力吐槽,我前前后后反反复复读了好多遍都读不明白是什么意思,仔细对比了原文并参考了上下文才勉强看懂。如果你能看懂英文原文的话就会发现,这句翻译完全是按照英文的语序去翻译的,所以完完全全把原文的逻辑都给搞乱了,这种翻译你能看得懂就怪了。其实这句话的大致意思就是:如果想要在本例中的信道上传输信息,我们可以通过这样一种方式——精心布置每个码字所对应的所有可能输出序列的集合,使它们之间几乎不产生交集——这样就可以识别出输入序列的一个子集,通过这个子集我们就可以在这个信道上准确地传输信息。我这里给出的翻译可能不是最佳的,但至少意思在上下文里是通的,也能保证大多数人都能读得懂。
【建议翻译】:
如果我们考虑一串传输序列,并且所有信道都看起来与本例一致,那么我们就可以通过这样一种方式——使每个码字对应的所有可能输出序列的集合之间几乎无交集——来识别出输入序列的一个子集,通过这个子集我们就可以在这个信道上传输信息。
(5)第2章2.1节,第8页
【中文版译文】:
设X是一个离散型随机变量,其字母表(即概率论中的取值空间)为𝓧,概率密度函数p(x)=Pr(X=x), x∈𝓧.
【英文版原文】:
Let X be a discrete random variable with alphabet 𝓧 and probability mass function p(x) = Pr{X = x}, x∈𝓧.
【吐槽】:
把“probability mass function”翻译成“概率密度函数”严格来说其实是不对的,“probability mass function”通常翻译为“概率质量函数”,它与概率密度函数的区别是它描述的是离散型随机变量的概率分布,其每一个值都可直接看作是概率;而概率密度函数描述的是连续型随机变量的概率分布,其每一个值是概率密度而不是概率,需要在一段区间上积分后才能变成概率。
【建议翻译】:
设X是一个离散型随机变量,其字母表(即概率论中的取值空间)为𝓧,概率质量函数为p(x)=Pr(X=x), x∈𝓧.
(6)第2章2.1节,第8页
【中文版译文】:
为方便起见,记概率密度函数p(x)以代替p_{X}(x)。
【英文版原文】:
We denote the probability mass function by p(x) rather than p_{X}(x), for convenience.
【吐槽】:
前文并没有出现过p_{X}(x),所以这句翻译突然来一句为了方便用p(x)代替p_{X}(x)来表示概率质量函数显得莫名其妙,所以更合适的翻译应该是:这里我们将概率质量函数表示为p(x)而不是p_{X}(x)是为了方便。这样的翻译更符合语境。
【建议翻译】:
这里我们将概率质量函数表示为p(x)而不是p_{X}(x)只是为了方便。
(7)第2章2.2节例2.2.1,第10页
【中文版译文】:
X的边际分布为(1/2,1/4,1/8,1/8),Y的边际分布为(1/4,1/4,1/4,1/4),因而H(X)=7/4比特,H(Y)=2比特。
【英文版原文】:
The marginal distribution of X is (1/2,1/4,1/8,1/8) and the marginal distribution
of Y is (1/4,1/4,1/4,1/4), and hence H(X) = 7/4 bits and H(Y) = 2 bits.
【吐槽】:
“marginal distribution”通常翻译为“边缘分布”而不是“边际分布”。当然,这只是一个翻译习惯问题,确实也有人翻译成边际分布的,但是少之又少。所以至少应该与大多数人接触到术语保持一致。另外,根据术语在线的查询结果( 术语在线—权威的术语知识服务平台 (termonline.cn) ),该名词也应该翻译成边缘分布而不是边际分布。
【建议翻译】:
X的边缘分布为(1/2,1/4,1/8,1/8),Y的边缘分布为(1/4,1/4,1/4,1/4),因而H(X)=7/4比特,H(Y)=2比特。
(8)第2章2.6节,第14页
【中文版译文】:
若对于任意的x1,x2 ∈ (a, b),及0 ≤ λ ≤ 1,满足
f (λx1 + (1−λ)x2) ≤ λf(x1) + (1−λ)f(x2).
则称函数f(x)在区间(a, b)上是凸的(convex)。如果仅当λ=0或λ=1,上式成立,则称函数f是严格凸的(strictly convex)。
【英文版原文】:
A function f(x) is said to be convex over an interval (a, b) if for every x1, x2 ∈ (a, b) and 0 ≤ λ ≤ 1,
f(λx1 + (1−λ)x2) ≤ λf(x1) + (1−λ)f(x2).
A function f is said to be strictly convex if equality holds only if λ = 0 or λ = 1.
【吐槽】:
问题出在对严格凸函数的定义上。原文明明是“equality holds only if λ = 0 or λ = 1”,说的是“仅当λ=0或λ=1时,上式的等号成立”,结果译文成了“仅当λ=0或λ=1,上式成立”,那按照翻译的这个逻辑的话λ取其他值(不取0和1)的时候上式的小于等于号(≤)就变成大于号(>)了喽?那这不变成严格凹函数的定义了吗?所以正确的翻译应该是:如果仅当λ=0或λ=1时,上式的等号才成立,则称函数f是严格凸的(strictly convex)。
【建议翻译】:
若对于任意的x1,x2 ∈ (a, b),及0 ≤ λ ≤ 1,满足
f (λx1 + (1−λ)x2) ≤ λf(x1) + (1−λ)f(x2).
则称函数f(x)在区间(a, b)上是凸的(convex)。如果仅当λ=0或λ=1时,上式的等号才成立,则称函数f是严格凸的(strictly convex)。
(9)第2章2.6节定理2.6.1,第14页
【中文版译文】:
如果函数f在某个区间上存在非负(正)的二阶导数,则f为该区间的凸函数(严格凸函数)。
【英文版原文】:
If the function f has a second derivative that is non-negative (positive) over an interval, the function is convex (strictly convex) over that interval.
【吐槽】:
十分离谱的翻译。按照这个翻译,我是不是可以理解成,函数在区间上只要“存在”非负的二阶导那这个函数就是凸函数?显然不是这样的。作为数学上一个比较基本且常见的概念,只要稍微查一查什么是凸函数就能大概知道这句话应该怎么翻。那么是不是原文就写错了呢?显然也不是。我们看看原文,原文分明写的是“non-negative (positive) over an interval”,即在整个区间上都是非负的。可能是原文中的“has a”对译者产生了干扰,但就算如此,哪怕是原文本身就错了,通过比较一下其他数学书上对凸函数的定义也能马上发现问题并纠正,在译文里纠正错误怎么也比照搬原文的错误要好,实在不行加个注释也行呀。
【建议翻译】:
如果函数f在整个区间上具有非负的(正的)二阶导数,则f在该区间上是凸函数(严格凸函数)。
(10)第2章2.6节定理2.6.3,第15页
【中文版译文】:
另外,只有当\sum_{x\in A}{q(x)}=\sum_{x\in \mathcal{X}}{q(x)}=1时,式(2-87)中的等号才成立,这表明c=1。
【英文版原文】:
We have equality in (2.87) only if \sum_{x\in A}{q(x)}=\sum_{x\in \mathcal{X}}{q(x)}=1, which implies that c = 1.
【吐槽】:
这又是由于没有处理好中文语序和英文语序的差异而导致的误译,当中文译文把only if(只有当)的条件语句提到前面来,而which implies that c = 1(这表明c=1)却依然留在后面时,整个句子的意思就完全变了。原文本来想说明的是only if后面所跟着的条件蕴含了c=1,但语序变了之后就变成了整个推理过程(only if <=> 式(2-87)中的等号才成立)蕴含了c=1,这就完全变成了一个荒谬的句子。如果您没法体会这种荒谬的话,我可以造个句子让您体会一下。假设我想表达这么个意思:“只有当外面下起暴雨,外面积了很多水的时候,他才会开船出门”。但我却表达成了这样:“只有当外面下起暴雨的时候,他才会开船出门,这表明外面积了很多水”。感受到这个句子的荒谬了吗?
【建议翻译】:
另外,只有当\sum_{x\in A}{q(x)}=\sum_{x\in \mathcal{X}}{q(x)}=1,也就是说c=1时,式(2-87)中的等号才成立。
(11)第2章2.7节定理2.7.1的证明,第17页
【中文版翻译】:
由于对任意的正数t有f"(t)=(1/t)(loge)>0,可知函数f(t)=tlogt严格凸。
【英文版原文】:
The function f(t)=tlogt is strictly convex, since f"(t)=(1/t)loge>0 for all positive t.
【吐槽】:
如果没有上下文,你初次看这句翻译的时候可能觉得没什么问题,但如果我告诉你,在这句话之前从来没有对f(t)这个函数做过任何定义,你就会为这句话怎么突然冒出个f"(t)=(1/t)(loge)>0感到奇怪了。为什么会这样呢?看一下英文原文就清楚了,原文是先说结论后说原因的,恰好与中文翻译的语序是相反的。所以原文先提f(t)=tlogt,再提f(t)的二阶导,就不会有任何突兀感,是逻辑上自然的语序,而中文非得把它反过来说,把一个本来并不难理解的句子搞成了一个莫名其妙的病句。
【建议翻译】:
函数f(t)=tlogt是严格凸的,因为对任意的正数t都有 f"(t)=(1/t)loge>0。
(12)第2章2.8节,第18页
【中文版翻译】:
数据处理不等式可以说明,不存在对数据的优良操作能使从数据中所获得的推理得到改善。
【英文版原文】:
The data-processing inequality can be used to show that no clever manipulation of the data can improve the inferences that can be made from the data.
【吐槽】:
我说啊,原文的“clever”直接翻译成“聪明的”不行吗?非得自作聪明地翻译成“优良”,根本词不达意。这里的意思明显是想说,你再怎么聪明也不可能找到一种投机取巧的操作方法无中生有地从数据中压榨出并不存在的信息。
【建议翻译】:
数据处理不等式可以用来说明,不存在那种聪明的操作方法——使用这种操作方法对数据进行处理后能使从数据中推理得到的信息量得到提升。
(13)第3章,第32页
【中文版翻译】:
这是一个自引用的问题,但仍然是可以明确定义的。
【英文版原文】:
This is insidiously self-referential, but well defined nonetheless.
【吐槽】:
如果你到百度去搜索一下“自引用”,你就会发现这是一个编程语言(如C++)领域内的用语,跟原书想表达的意思差得十万八千里。明明self-reference在前文中(第7页中)被正确翻译成了“自指涉”,怎么这里就不统一了呢?
【建议翻译】:
这其中隐藏着某种不易发现的自我指涉,但仍然是可以明确定义的。
(14)第3章3.2节,第34页
【中文版翻译】:
在所有这些序列的前面加0,表示A^{(n)}_{\epsilon}中的每个序列需要的总长度≤n(H+\epsilon)+2比特。
【英文版原文】:
We prefix all these sequences by a 0, giving a total length of ≤n(H+\epsilon)+2
bits to represent each sequence in A^{(n)}_{\epsilon}.
【吐槽】:
在序列前面加0,每个序列的长度确实从≤n(H+\epsilon)+1比特增加到了≤n(H+\epsilon)+2比特,但,为什么要加0?这个翻译根本没有表达清楚,甚至还传达出了“加0就是为了让序列长度增加到≤n(H+\epsilon)+2比特”这种完全让人费解的无厘头意图。所以这句话原本到底想表达什么意思?看看英文版原文就知道了,加0其实是为了表示这个序列是典型集中的元素(相应地,从后文中可以得知,加1则是用来表示这串序列是非典型集中的元素)。至于中文版为什么会翻译成这副莫名其妙的样子,我反正是猜不出来。
【建议翻译】:
在所有这些序列的前面加0,以表示这些序列是A^{(n)}_{\epsilon}中的序列,此时每个序列的总长度增加到≤n(H+\epsilon)+2比特。
(15)第4章4.1节,第41页
【中文版翻译】:
若马尔可夫链可以从任意状态经过有限步转移到另一任意状态,且其转移概率为正,则称此马尔可夫链是不可约的。
【英文版原文】:
If it is possible to go with positive probability from any state of the Markov chain to any other state in a finite number of steps, the Markov chain is said to be irreducible.
【吐槽】:
中文翻译中,“且其转移概率为正”中的“且”字在其所处的语境中用得莫名其妙,马尔可夫链能从一个状态转移到另一个状态就说明其转移概率必定为正而不可能为零,加一句“且其转移概率为正”就是在煞有介事地说了一句废话。要想把这句改通顺很简单,只要把“且”字改为“也就是说”即可,这么改可以表明这一句是前一句的自然推论,而不是一个独立的新条件。不过,通过查看英语原文可以发现,原文并不是这样的表达方式,原文直译的结果是:如果马尔可夫链可以通过正的转移概率从任意状态转移到另一任意状态,则称此马尔可夫链是不可约的。所以将其直译出来其实也并不妨碍理解,而中文翻译非要多此一举将其调整成了一句病句,这种奇怪的行为简直令人费解。
【建议翻译】:
如果马尔可夫链可以通过正的转移概率从任意状态转移到另一任意状态,则称此马尔可夫链是不可约的。
(16)第4章4.1节,第42页
【中文版翻译】:
对于平稳分布,穿越状态转移图中任意割集的网络概率流必为0。
【英文版原文】:
For the stationary distribution, the net probability flow across any cut set in the state transition graph is zero.
【吐槽】:
中文翻译把“net probability flow”翻译成了“网络概率流”,虽然“net”一词确实有“网络”的意思,但此处显然不是取“网络”之意,而是取“净”之意,放在原文里就是指图中的概率流在两个状态之间一来一回、一进一出,互相抵消,最终的「净流量」就为零。中文翻译成“网络概率流”就变得意义模糊了,“网络”一词在这里出现得也很突兀,也很难说割集可以构成一个网络,一般没这么说的。
【建议翻译】:
对于平稳分布,穿过状态转移图中任意割集的净概率流必为0。
(17)第4章4.1节,第42页
【中文版翻译】:
如果该马尔可夫链的初始状态服从平稳分布,则导出的过程是平稳的。
【英文版原文】:
If the Markov chain has an initial state drawn according to the stationary distribution, the resulting process will be stationary.
【吐槽】:
什么叫“导出的过程是平稳的”?“导出”是何意?我们来看看英文,哦,是“resulting”啊。原文就是想表达一种“由前者产生的后果”的含义,那“导出”一词实在是词不达义,虽然我找不到十分贴切的词来替换它,但把它换成“后续”、“随之而来”或者“由此产生”都比“导出”要好得多。
【建议翻译】:
如果该马尔可夫链的初始状态服从平稳分布,则由此引发的随机过程就会是平稳的。
(18)第4章4.1节,第42页
【中文版翻译】:
由于Xi之间存在着相关性,要将问题说清楚,还需费一番功夫。
【英文版原文】:
The dependence among the Xi’s will take a steady toll.
【吐槽】:
单看这句翻译很多人可能会觉得很正常,也没有什么让人疑惑的地方,但对比英文原文后我就惊呆了,这句中文翻译属实是过分地自由发挥了。虽说翻译确实也是一种创作,但没让你把作者一脚踢开,抢过笔来自己写啊。原文的意思是“Xi之间的相关性会带来持续的影响(因而此马尔可夫链的熵增速率并不等于每个状态的熵)”。我估计是译者不懂“take a steady toll”是什么意思,为了把句子翻译通顺就自己根据上下文胡编了一句。
【建议翻译】:
Xi之间的相关性会带来持续的影响。
(19)第4章4.3节,第45页
【中文版翻译】:
此平稳分布有个很有趣的局部性质:它仅依赖于总权重以及与该节点相连的所有的边权重之和,因而若改变图中某些部分的权重,但保持总权重为常数,平稳分布不会有所改变。
【英文版原文】:
This stationary distribution has an interesting property of locality: It depends only on the total weight and the weight of edges connected to the node and hence does not change if the weights in some other part of the graph are changed while keeping the total weight constant.
【吐槽】:
按照中文翻译,只要你保持总权重不变,内部的权重可以随便调整,也对平稳分布没有影响。如果原文真是这样的话,那这句话就错得离谱了,因为这条性质都说了,「它」不仅和总权重有关,还和连接节点的所有边的权重之和有关。所以你如果随便“改变图中某些部分的权重”,是不能保证某些节点的平稳概率不发生变化的。问题出在哪呢?问题出在中文翻译漏掉了原文中的“other”一词,所以原文并不是“改变图中某些部分的权重”,而是“改变图中其他部分的权重”,这里的“其他”是相对于某个节点来说的,只要你改变的是与此节点无关的其他部位的权重,就能保证该节点的各边权重之和不变,也就能保证该节点的平稳概率不变。因此这条性质其实是针对某节点的平稳概率的,而不是平稳分布。当然,这个锅我觉得英文原文也要背一部分,因为原文里的“it”实在是有点指代不明,很容易让人误以为指的是“平稳分布”,但实际上指的是“某个节点的平稳概率”。另外,这句话也只有针对“某个节点的平稳概率”成立,才能与前面说的“局部性质”相呼应。
【建议翻译】:
此平稳分布有个很有趣的局部性质:由于单个节点的平稳概率仅依赖于总权重以及与该节点相连的所有边的权重之和,因而若改变图中其他部分的权重,同时保持总权重恒定不变,则该节点的平稳概率不会改变。
(20)第4章4.3节,第46页
【中文版翻译】:
熵率的这个答案是如此的简洁以致令人颇为费解。
【英文版原文】:
This answer for the entropy rate is so simple that it is almost misleading.
【吐槽】:
把“misleading”翻译成“费解”也让我颇为费解。
【建议翻译】:
熵率的这个答案是如此的简单以至于有很强的误导性。
(21)第4章习题4.3,第50页
【中文版翻译】:
对于洗牌操作T的任何分布和扑克牌的排列X的任意分布,有……
【英文版原文】:
Argue that for any distribution on shuffles T and any distribution on card positions X that...
【吐槽】:
我挺奇怪这句翻译的,作为一个习题,竟然整道题目都没有提出问题,也没有告诉读者这道习题要让读者干什么。看看英文就可以发现,原来整句话前面还有两个单词“Argue that”,是让你详细论证下面的证明过程呢。我猜测这道题目是让你写下证明中每一步的依据,以加强证明过程的易读性和说服力。
【建议翻译】:
试论证对于洗牌操作T的任何分布和扑克牌的排列X的任意分布,有……
(22)第5章5.1节,第59页
【中文版翻译】:
例如,C(红)=00,C(蓝)=11是𝓧={红,蓝}关于字母表𝓓={0,1}的一个信源编码。
【英文版原文】:
For example, C(red) = 00, C(blue) = 11 is a source code for 𝓧 = {red, blue} with alphabet 𝓓 = {0, 1}.
【吐槽】:
“关于”这个词用在这里的表达力度实在是太弱了,完全体现不出字母表(其实我一直搞不懂作者为什么要选用alphabet来指代取值空间,起初我以为这是业界的一个约定俗成的规范,但在经过网上的一通搜索之后却一无所获,并未找到alphabet除语言里的字母表外的其他用法,所以至今我仍为此感到疑惑)在信源编码中的地位,而英文表达明显而直接,所以直接翻译出来明明意思表达得更精确而译者却偏偏选择了一个非常虚的表达方式,丢掉了原文所隐含的“字母表是用来给信源进行编码的字符元素”这层信息,我不知道是不是因为译者忘了“with”有“使用”这样一个实意之存在了。
【建议翻译】:
例如,C(红)=00,C(蓝)=11是使用字母表𝓓={0,1}对𝓧={红,蓝}的一个信源编码。
(23)第5章5.2节,第62页
【中文版翻译】:
在树中li层的码字拥有lmax层中的D^{lmax-li}个后代。所有这样的后代集不相交。
【英文版原文】:
A codeword at level li has D^{lmax−li} descendants at level lmax. Each of these descendant sets must be disjoint.
【吐槽】:
虽然这里的中文翻译不能说是错的,但至少肯定是有歧义的。这里需要注意,文中的后代并不是指lmax层的后代,看英文原文其实很容易看出来这一点,而看中文翻译却会引起歧义,容易让人误以为lmax层的后代被li层所拥有,就算有人能正确理解这句话的意思,这句话的表达方式也是别扭得不行。其实吧,只要稍微调整一下语序这句话就基本上变得语义清晰无歧义了:“在树中li层的码字在lmax层拥有D^{lmax-li}个后代”。
【建议翻译】:
li层中的每个码字在lmax层都拥有D^{lmax-li}个后代。每个这样的后代集之间都不相交。
(24)第5章5.3节,第63页
【中文版翻译】:
关于li求微分,可得……
【英文版原文】:
Differentiating with respect to li , we obtain...
【吐槽】:
这明显是个求导的过程,哪来的求微分呢(公式懒得打了,自己看原书)?而且,英文单词Differentiate本身的含义也是求导(参见 Differentiate Definition & Meaning - Merriam-Webster ),微分对应的英文应该是differential(参见 Differential Definition & Meaning - Merriam-Webster )。
【建议翻译】:
对li求导,可得……
(25)第5章5.4节,第64页
【中文版翻译】:
定理5.4.1说明,实际最优码的期望长度比熵大,但不会超过1比特的附加位,这是由于logD(1/pi)并非总是整数造成的。
【英文版原文】:
In Theorem 5.4.1 there is an overhead that is at most 1 bit, due to the fact that log 1 pi is not always an integer.
【吐槽】:
虽然把overhead翻译成附加位也不是不能理解,但“位”通常都是按整数使用的,附加位给人一种多了整整一位的感觉,而overhead想表达的是为了凑个整而不得不增加的一个非整数的额外长度,与“附加位”的表达有一种微妙的差别,所以换做是我来翻译的话我宁愿将其翻译成“额外的长度开销”。
【建议翻译】:
定理5.4.1说明,实际最优码的期望长度比熵大,但不会超过1比特的额外长度开销,这是由于logD(1/pi)并非总是整数造成的。
(26)第5章5.4节,第64页
【中文版翻译】:
通过扩展,对多字符进行分组编码可以缩减这个每字符附加位。
【英文版原文】:
We can reduce the overhead per symbol by spreading it out over many symbols.
【吐槽】:
整句话中,除了上一条提到的“附加位”以外,“通过扩展,对多字符进行分组编码”这一部分我认为也翻译得欠佳。首先,这一部分与原文的意思显然差距过大,通过查看上下文可知,这是根据后文的意思所进行的改编。当然,如果改编得合理的话也不是不可以,本书多处就对原文做出了改编,大多数都改得不错,但这里的改编我不敢苟同。主要有两点,第一,这里的“扩展”二字表意不明,估计是对spreading it out的误译,冷不丁地出现这两个字只会让人看了一头雾水。第二,接下来的“对多字符进行分组编码”这一句是原文没有的,是译者自己改编的,显然是把后面提到的方法以一种“剧透”的手法挪到了前面来说了,虽然表面意思上没有错,但我不建议这种改编,理由是它把原文所提到的深刻思想给掩盖住了,而正是这个思想催生了那个方法。这样的改编相当于直接提出方法,却不提该方法的思想来源,这完全不利于读者对该方法本质的把握,因此在我看来这实在是暴殄天物。而且这样的改编还与下一句开头的“根据这一思路”发生冲突,从而使得这几句的行文变得十分不连贯。
【建议翻译】:
我们可以通过把单个字符所产生的额外长度开销分摊到多个字符中来缩减其中每个字符的额外长度开销。
(27)第5章5.4节,第65页
【中文版翻译】:
对于定义熵率概念的必要性,上述定理提供了另一个理由:它是最简洁描述该过程所需的每字符期望比特数。
【英文版原文】:
This theorem provides another justification for the definition of entropy rate—it is the expected number of bits per symbol required to describe the process.
【吐槽】:
原文根本没有跟“最简洁”这个词能对应得上的表达,请不要画蛇添足。
【建议翻译】:
上述定理为定义熵率概念的必要性提供了另一个理由:它是描述随机过程所需的每字符期望比特数。
(28)第5章5.4节,第65页
【中文版翻译】:
最后讨论当面对的对象是非真实分布时,期望描述长度会变得怎样?
【英文版原文】:
Finally, we ask what happens to the expected description length if the code is designed for the wrong distribution.
【吐槽】:
对于这里的翻译,译者也许有他自己的想法,但他也许没有考虑到这里凭空出现“对象”二字只会使表意变得模糊不清。其实原文本来的意思就够清晰了,直译即可,不必自己加戏把人搞糊涂。所以翻译的时候做适当的改编可以,但请在不搞懵读者的前提下进行。
【建议翻译】:
最后,我们希望知道,如果编码并不是基于真实分布而设计的,那么期望描述长度会有什么变化?
(29)第5章5.5节,第66页
【中文版翻译】:
而唯一可译码类包含所有即时码。因此,如果在所有的唯一可译码中将码字长度L最小化,那么有希望得到一个更小的期望码长。
【英文版原文】:
The class of uniquely decodable codes is larger than the class of instantaneous codes, so one expects to achieve a lower expected codeword length if L is minimized over all uniquely decodable codes.
【吐槽】:
这一句还在说着“有希望”,下一句就变成“不可能”了(下一句不摘抄了,自己看书),简直自相矛盾。此处对应的原文应该是one expects,指的是某些人的主观期望,而不是“有希望”,这两种意思差得远了。这里的实际意思其实跟字面看起来的意思大差不差,其实就是说,由于唯一可译码的范围比即时码的范围要大,包含了所有的即时码,所以有些人可能会满怀期待地认为,只要在所有的唯一可译码中将码字长度L最小化,就能得到一个更小的期望码长。当然,也可以在原译文上稍做修改,加上一个“似乎”就可以让整句译文贴近原文的意思(具体翻译如下)。
【建议翻译】:
由于唯一可译码的范围比即时码的范围要大,包含了所有的即时码,所以,如果在所有的唯一可译码中将码字长度L最小化,似乎就有望能得到一个更小的期望码长。
(30)第5章5.5节,第67页
【中文版翻译】:
对唯一可译码与即时码而言,码字长度集是一样的。
【英文版原文】:
The set of achievable codeword lengths is the same for uniquely decodable and instantaneous codes.
【吐槽】:
achievable 需要翻译出来,用来表示所有可能的码字长度集都相同。
【建议翻译】:
对于唯一可译码与即时码来说,它们各自可实现的码字长度集是相同的。
(31)第5章5.7节,第69页
【中文版翻译】:
然而,由赫夫曼编码确定的最优问题方案要求对于任一问题,存在某个集合A ⊆ {1,2,...,m},使该问题具有形式“X∈A吗?”。
【英文版原文】:
However, Huffman codes ask arbitrary questions of the form “Is X ∈ A?” for any set A ⊆ {1,2,...,m}.
【吐槽】:
说实话,这句话我对照着原文并把它放在上下文里阅读也拿不准它到底是什么意思。所以它到底想表达什么?为什么要在这一句开头出现转折?我到现在也给不出一个准确答案。有可能这句话已经超出了我的水平范围,也有可能原文本身就有问题(所以有时候翻译得不好原作者也不是一点责任也没有)。所以现在我只能大致猜测一下这句话可能想表达的意思。原文中有一个词arbitrary十分关键,再结合上下文可以初步推断出,这里想表达的是赫夫曼编码所对应的问题集是十分任意的(arbitrary),你可以问X属不属于一个随意挑选的字符集合,相比之下,切片码所对应的问题集则有一定的限制,你只能问X大不大于(或小不小于)某一个数。基于这一猜测,我给出如下翻译。
【建议翻译】:
然而,赫夫曼编码对应的问题集可以十分之任意,它能问的问题可以具有“X∈A吗?”这样的形式,其中A可以是满足条件A ⊆ {1,2,...,m}的任意一个集合。
(32)第5章5.7节,第69页
【中文版翻译】:
如果选取由赫夫曼编码所得到的码字长度(由引理5.8.1知 l1 ≤ l2 ≤ ... ≤lm ),并且用它们来分配字符到编码树上,使得每个码长对应着编码树的一个层,在对应的层上,将首达节点处标示上对应的字符,由此方法可构造出另一个最优码。
【英文版原文】:
If we take the codeword lengths (l1 ≤ l2 ≤ ··· ≤ lm, by Lemma 5.8.1) derived from the
Huffman code and use them to assign the symbols to the code tree by taking the first available node at the corresponding level, we will construct another optimal code.
【吐槽】:
这句翻译整体上没有什么问题,就是“首达节点”这个词翻得不够准确。原文这里是the first available node,即第一个可用节点,“可用”很重要,原翻译给人一种“第一个达到的节点”的感觉,这显然就与原意不搭噶了。其实我觉得原作者在这里直接不加定义地使用the first available node是不妥当的,即使你能看懂英文,你也得使劲地通过后面的例子间接地猜the first available node到底是什么意思。以下是我猜出来的意思:什么是“可用”呢?当你把某个节点分配给某个字符之后,也就是用这个节点给某个字符编码之后,这个节点之前途经的所有节点以及其后所有的分支节点都不可用了,你只能用剩下的其他节点给其他字符编码;那什么是“第一个”呢?如果编码树分支时总是把0写在上面,1写在下面,那么同一层的“第一个”节点就代表同一层中最靠上的节点。
说到这里,我想跑个题,说一个与翻译无关的问题,吐槽一下原书的叙述方式。这本书之所以这么难看,我觉得除了翻译以外,原书的叙述方式、概念引出的编排方式等绝对是导致其难看的原因之一。其实这本书对数学基础的要求一点也不高,把它当成一本基础书是绝对可以的(对于这一点,我与某些觉得此书算不上基础书的评论的观点恰好相反)。只是书中的许多概念的引出方式十分让人疑惑,比如马尔可夫链这个概念的引出,你敢相信这同一个概念前后竟然分别经历了两次截然不同的定义吗?尽管这两种定义本质是相容的,但作者在进行第二次定义的时候却丝毫不提它与第一次定义之间的联系,就这么十分突兀地出现了,给人一种与前面章节之间强烈的割裂感,仿佛在看另一本书一样。另外一个概念是香农码,香农码这个本就应该在书中正式定义的概念作者竟然完全没有正式定义过,就这么理所应当地在书里到处使用,而我只能从作者的字里行间推测它的确切定义。还有一个概念是赫夫曼码,作者尽管用了一个小节的篇幅来引入赫夫曼码,但我却不得不上网查资料才真正搞明白赫夫曼码到底是怎么操作的,原文就算有例子有图表也看得我一头雾水,这让我产生一种作者在本书某些方面的写作上十分之敷衍的感觉。
【建议翻译】:
如果选取由赫夫曼编码所得到的码字长度(由引理5.8.1知 l1 ≤ l2 ≤ ... ≤lm ),其中每个码字长度都对应着编码树上的一个层,通过使用对应层上的第一个可用节点来编码对应的字符,来将所有字符分配到编码树上,那么我们将由此方法构造出另一个最优码。
(33)第5章5.8节,第70页
【中文版翻译】:
回忆最优码的定义可知,当\sum p_i l_i 达最小时,编码是最优的。
【英文版原文】:
Recall that a code is optimal if \sum p_i l_i is minimal.
【吐槽】:
最优码从未定义过,我要怎么回忆它的定义呢?况且,这里原文也没让你回忆它的定义,它只是让你回想一下什么样的编码是最优的。
说到这里,我又要吐槽一下原书的这种行文方式,和上一个条目已经吐槽过的一样,原书的某些概念定义往往都需要读者自己去猜,就是不肯好好写一条正式的定义,所以原书的这种知识点的编排方式十分败好感,哪怕撇开翻译单看原书,这本书也实在难说是一本好书。
【建议翻译】:
回想一下什么样的编码是最优的?答案是,当 \sum p_i l_i 最小时,编码是最优的。
(34)第5章5.8节,第71页
【中文版翻译】:
如果存在长度最长的码字,则删除码字的最后一位,所得的码字仍满足前缀性质。
【英文版原文】:
If there is a maximal-length codeword without a sibling, we can delete the last bit of the codeword and still satisfy the prefix property.
【吐槽】:
简直是闭着眼翻译的典范,不仅没看到原文中的“without a sibling”,连译文逻辑出问题了也看不出来。请问什么时候不存在长度最长的码字?删除最后一位不还是有长度最长的码字吗?你要删到什么时候才停下来?直到把编码树都删光为止是吗?可能译者把它理解成了存在唯一最长的码字,但这条性质在上面就已经说过了,这里不可能再说一遍,我就是读到这里发现同一个性质说了两遍才发现这里的翻译问题的。那么,原文是想表达什么意思呢?原文想说的是,如果一个码字没有兄弟节点,我们就可以对其进行修剪,修剪完后依然是无前缀的。其实原文这里也有错误,因为只要没有兄弟节点,我们就可以对其进行修剪,无论它是不是maximal-length。我不知道是不是这一点对译者造成了干扰。
【建议翻译】:
如果存在没有兄弟节点的码字,则删除该码字的最后一位,所得的码字仍满足前缀性质。
(35)第5章5.8节,第71页
【中文版翻译】:
此时,我们交换两个最长的码字使得具有最小概率的信源字符对应于树上的两个兄弟。
【英文版原文】:
Now we can exchange the longest codewords so that the two lowest-probability source symbols are associated with two siblings on the tree.
【吐槽】:
原文可没说只交换“两个”码字,虽然只在其中两个最长码字之间交换一次便可以达到这个目的,但这样的表述方式未免会让人疑惑——如果两个码字不是兄弟,那么仅在它们之间进行交换后怎么可能就变成兄弟了呢?所以这里的翻译个人建议对交换的对象进行模糊化处理。
【建议翻译】:
此时,我们在最长的那些码字中间进行内部交换,使得具有最小概率的信源字符对应于树上的两个兄弟。
(36)第5章5.8节,第71页
【中文版翻译】:
首先,通过扩展p'的最优码构造出p的码,然后将p的典则最优码精简,构造出赫夫曼合并p'的码。
【英文版原文】:
First, we expand an optimal code for p' to construct a code for p, and then we condense an optimal canonical code for p to construct a code for the Huffman reduction p' .
【吐槽】:
关键在于对“expand ”和“condense ”这两个词的翻译,译文将它们分别翻译成“扩展”和“精简”,这未免过于抽象。通过参考后文,我推荐将它们分别翻译成“展开”和“缩并”。对于没有进行过任何精确定义的词,我个人的建议都是把他们翻译得越能“顾名思义”就越好。
【建议翻译】:
首先,通过将p'的最优码展开,构造出p的编码,然后将p的典则最优码进行缩并,构造出赫夫曼合并p'的编码。
(37)第5章5.9节,第74页
【中文版翻译】:
在此例中,由于分布不是二进制的,所以F(x)的二进制表示可能有无穷位数字。
【英文版原文】:
In this case, since the distribution is not dyadic, the representation of F(x) in binary may have an infinite number of bits.
【吐槽】:
二进制是一种表示方法,所以一个分布怎么可能是二进制的呢?难道是分布里的各种概率必须写成二进制吗?写成十进制、十六进制就不行吗?查看原文就会发现根本不是这个意思,原文这里的用词是“dyadic”,与后面真正对应于二进制的“binary”是完全不同源的两个词。所以,说一个分布是dyadic到底是什么意思呢?按照我的个人理解,一个分布是dyadic的,意思是说,里面的概率取值总是按照对1进行对半分的分配方式,比如说你可以有1/2的概率,也可以继续对半分,有1/4的概率,或者是对这些概率进行加和,比如3/4。但1/3就不可以,因为它不是对半分的形式。所以这里我建议将dyadic翻译成“二分的”。
另外,原文没有对dyadic进行过解释,我不知道是否存在某些更基础的前置知识对其进行过相关讨论,如果没有的话,我认为这依然是作者对概念编排的态度过于随意导致的,这持续降低着我对这本书的评价。
【建议翻译】:
在此例中,由于分布不是二分的,所以F(x)的二进制表示可能有无穷多位小数。
(38)第5章5.10节,第75页
【中文版翻译】:
由Kraft不等式得到\sum {2^{-l'(x)}} \le 1。
【英文版原文】:
since \sum {2^{-l'(x)}} \le 1 by the Kraft inequality.
【吐槽】:
这句话上头是一连串的等式和不等式,结果完事后到这里突然冷不丁来这一句,简直不明所以。看看原文这句开头有个since,是“因为”的意思,代表对前面的不等式的补充说明,解释为什么会有这样的不等式。
【建议翻译】:
最后一个不等号是因为根据Kraft不等式有\sum {2^{-l'(x)}} \le 1。
(39)第5章5.10节,第76页
【中文版翻译】:
由此,我们证明了在某类判别准则下,香农码l(x)=\left \lceil \log{\frac{1}{p(x)}} \right \rceil 是最优的;
【英文版原文】:
Hence we have shown that Shannon coding l(x)=\left \lceil \log{\frac{1}{p(x)}} \right \rceil is optimal under a variety of criteria.
【吐槽】:
a variety of 不是“某类”的意思,而是“各种各样”的意思。翻译完要多多通读上下文,才能避免这种前后逻辑不连贯的翻译。
【建议翻译】:
由此,我们证明了在各种判别准则下,香农码l(x)=\left \lceil \log{\frac{1}{p(x)}} \right \rceil 都是最优的;
(40)第5章5.11节,第77页
【中文版翻译】:
许多叶子用相同的输出字符标记,即所有这些叶子的总概率应等于输出字符的希望概率。
【英文版原文】:
Many leaves may be labeled with the same output symbol—the total probability of all these leaves should equal the desired probability of the output symbol.
【吐槽】:
这句话读起来给人一种必然性,即必然会有许多叶子用相同的输出字符标记,但这显然与实际情况不符,看看原文就知道译者把may这个词给漏翻了。
【建议翻译】:
可能会有多个叶子用相同的输出字符标记,这些叶子的总概率应等于输出字符的希望概率。
(41)第5章历史回顾,第90页
【中文版翻译】:
他在论文中说明了一个简单的编码构造过程(见习题5.28所述),这对费诺的影响很大,现在这个方法已称为香农-费诺编码构造程序。
【英文版原文】:
He described a simple code construction procedure (described in Problem 5.5.28), which he attributed to Fano. This method is now called the Shannon–Fano code construction procedure.
【吐槽】:
这翻译简直离谱,稍微查一下attribute to 是什么意思也不会翻译成这样。况且这样翻译上下文的逻辑根本就不通嘛,这个编码对费诺影响很大,怎么就导致这个编码以费诺的名字命名了呢?
【建议翻译】:
他在论文中描述了一个简单的编码构造程序(如习题5.28所述),他将这个程序归功于费诺。这个方法现在被称为香农-费诺编码构造程序。
(42)第5章历史回顾,第90页
【中文版翻译】:
算术编码程序对于Elias所论述的香农-费诺编码(未发表)起着根本性的作用,且Jelinek[297]对此进行了分析。
【英文版原文】:
The arithmetic coding procedure has its roots in the Shannon–Fano code developed by Elias (unpublished), which was analyzed by Jelinek [297].
【吐槽】:
这里的翻译错误和上一条的错法如出一辙,都把发明者无端端地贬成了受惠者,同时还把develop翻译成了论述,什么时候develop有这意思了?
【建议翻译】:
算术编码程序起源于Elias所发展的香农-费诺编码(未发表),Jelinek[297]对其进行了分析。
-未完待续-