e06084's Blog

人类自然语言vs.计算机语言(一)

Published at 2022-09-18 | Last Update 2022-09-18

“Talk is cheap. Show me the code.” — Linus Torvalds

Talkcode分别是人类自然语言和计算机语言,我们都称为“语言”。它们有共同通性吗?有区别吗?为什么Linus说Talk is cheap

首先,抛观点。计算机语言和人类语言有相似性,但是比人类语言简单很多。

为什么这么说呢?本文,我们会先讨论语言是什么,然后分析不同类型语言的数学模型,最后推出上述结论。

语言是什么?

这个是一个很大的话题。我个人的理解是这样:

语言是不同个体之间沟通的信息。

人类自然语言,是人和人之间沟通的信息。发送方将自己的要表达的意思(生物信号?)编码为自然语言形式的信息传送出去,接收方接收到信息解码为具体的意思。流程:人 -> 编码 -> 人类自然语言 -> 人 -> 解码。

计算机语言,是人和计算机之间沟通的信息。流程也是类似:人 -> 编码 -> 计算机语言 -> 计算机 -> 解码。

所以,语言本质是一个沟通双方有共识的中间产物。所谓“有共识”,是双方的编解码规则要一致。所以,我们学习一门语言其实就是在学习这门语言的“编解码规则”。

这么看,人<->人和人<->计算机信息沟通是相似的。确实是这样。

这是巧合吗?其实不是巧合。计算机是人类创造的,它所有的一切都可以被人类定义。计算机的解码规则是人可知且确定的。比如现在通用的计算机都是图灵完备的冯诺依曼结构。即便出现其他结构,也是人来设计,且编解码规则确定可知。人<->计算机信息沟通就是仿造人<->人沟通来设计。

但是,这里其实有一个本质不同。生物学上人是如何将想要表达的意思“编码”为语言,又是如何将获取到的语言信息进行“解码”,到目前为止我们还不是很清楚(我不是专家,该领域应该也有一些局部突破性的进展)。但是这不阻止人<->人可以顺畅沟通。也就是,我们并不清楚人<->人沟通的“编解码规则”,但是我们可以语言沟通。这是如何做到的呢?

我个人觉得这需要归功于:统一共识+人的强大学习能力。啥意思呢?统一共识就是,语言的所有内容定义一致。比如,“苹果”就是那个圆圆的,红红绿绿,可以吃的那个东西。人的强大学习能力,这个我认为就是基因中自带的能力,比如刚出生的小孩听到“苹果”不知道是什么意思,但是只要有人告诉过他“苹果”的这个共识内容,他就可以学习,且之后就知道了。所以,我们不需要知道人的大脑是如何进行“语言编解码”,也可以顺畅完成通信。

所以,人<->人的通信是基于“共识+学习”完成,人<->计算机是在掌握了一方“语言编解码规则”的基础上完成通信。两者有本质差别。

以上都是宏观/主观上来分析人类自然语言和计算机语言的共同点和差异。下面我们从底层的数学逻辑来分析。

语言的数学模型

这一块内容展开讲也很深奥,复杂,我这里只表达一下个人浅见。

语言学领域有个牛逼的人物 - 乔姆斯基。

他比较早开始研究,人类为什么可以通过语言进行交流,又是如何学习不同的语言的,不同的语言之间有联系么。他的研究成果之一形式语言理论(Formal language theory)在计算机领域发挥着重大影响。

形式语言

先简单介绍一下什么是形式语言。

形式语言的数学模型是一个字母表所能构成的所有串的集合的一个子集。比如,字母表{a,b,c},那么字符串{ab,abc}集合可以认为就是一种语言,字符串{aaa,bbb,cc}也是一种语言。

如何判断一个给定的字符串是不是属于一种语言呢?(是不是属于也即是不是合法)比如判断“我饭吃”这个字符串是不是属于一个合法的中文语句?

比较简单的逻辑是,既然语言的字符串集合是确定的,那么遍历语言集合中所有的字符串就可以了。但是,很显然,当字母表比较大,一种语言的字符串集合也可能是非常巨大的,也可能是无限。那么,无脑遍历的可行性不高。

形式文法

一般,现在通用的思路是用语言的语法规则概念来判断一个字符串是否属于合法的语言。比如,一种规定语言A的语法规定只有满足“主+谓+宾”这样格式的字符串才合法,那么“我饭吃”就不属于语言A。

那么这里的“语法规则”的数学模型是怎样的?

乔姆斯基把所有语言按从复杂到简单分成了4种类型,也就是乔姆斯基谱系。

  • Type-0: 递归可枚举语言;(复杂)
  • Type-1: 上下文有关语言;
  • Type-2: 上下文无关语言;
  • Type-3: 正则语言;(简单)

从Type-0到Type-3复杂度递减。

人类语言属于Type-1,计算机语言属于Type-2。到此从数学角度回答了为什么计算机语言比人类语言简单。至于,为什么Type-2比Type-1更简单我们后面再分析。

参考

  1. https://en.wikipedia.org/wiki/Chomsky_hierarchy