第十六章 语言和复杂性

自然语言中的形式化方法,比如有限状态自动机、马尔科夫模型、转录机、音位重写规则、上下文无关语法等,都可以用他们的能力来描述,这种能力等价于它们所描述的现象的复杂性

Chomsky层级是一种理论方法,可以比较这些形式化方法的表达能力或复杂性。上下文无关语法没有足够的能力来模拟自然语言的形态和句法。

此外,复杂性研究领域还研究是什么使得一个单独的结构或者句子变得难以理解。比如嵌套句或中心嵌入句,难以处理。

16.1 Chomsky层级

自动机、上下文无关语法、音位重写规则都描述的是一种形式语言,是在有限字母表上的符号串的集合。
比较他们的生成能力,上下文无关语法可以描述的形式语言是有限状态自动机不能描述的,所以它拥有更大的复杂性。

中文词语复杂性python 汉语的复杂性_嵌套

随着加在重写的语法规则上的约束增加,语言的生成能力由强到弱。
如下图,A是一个简单的非终极符号,\(\alpha, \beta, \gamma\)是由终极符号和非终极符号构成的任意符号串,x是任意终极符号串。

中文词语复杂性python 汉语的复杂性_嵌套_02

Turing等价语法,0型语法,无限制语法,刻画了递归可枚举语言:生成的符号串可以有Turing机枚举。除了要求左部不能是空符号串$ \varepsilon $, 对于规则没有形式限制。任何非零的符号串都可以重写为任何符号串。

上下文有关语法可以把上下文\(\alpha A \beta\)中的非终极符号A重写为任意非空字符串。

上下文无关语法可以把任何一个单独的非终极符号重写为由终极符号和非终极符号构成的符号串。这个非终极符号也可以重写为$ \varepsilon $。

正则语法可以是右线性的,也可以是左线性的。右线性语法的右边只有一个单独的非终极符号,左边最多只有一个非终极符号。左线性语法的右边是可逆的。所有的正则语言既有左线性语法,也有右线性语法。

一个语言是正则的,当且仅当它是由一个正则语法生成的。

由于非终极符号总是处于一个规则的最右边或最左边,所以它们可以迭代处理,而非递归处理。

16.2 怎么判断一个语言不是正则的

16.2.1 抽吸引理

证明一种语言是正则语言的方法是为该语言实际地建立起正则表达式。

直觉1:如果一种语言能被有限状态自动机模拟,那么必能通过记忆约束量来判定任何符号串是否在该语言中。

直觉2:如果一个正则语言具有任意长的符号串,那么该语言的自动机中必定存在某种回路。否则不是正则语言。

抽吸引理:设L是一个有限的正则语言。那么,必定存在着符号串x, y和z,使得对于\(n \ge 0\), 有\(y \ne \varepsilon\) 并且 \(xy^nz \in L\)。

抽吸引理不能证明一种语言是正则语言,但可以证明不是。

16.2.2 证明各种自然语言不是正则语言

证明英语不是正则语言:

英语中的一致关系不能用正则语法来表达,因为句子中主语和动词之间的距离是潜在无界的。

假设英语语法容许无限数目的嵌套,则英语与正则语言的交不是正则语言。(正则语言在交运算下是封闭的)

16.3 自然语言是上下文无关的吗

不是上下文无关:\(\{xx|x\in\{a, b\}^*\}\)

交叉序列依存:如果一个语言具有任意长的交叉序列依存,那么它可以映射为\(xx\)语言。

中文词语复杂性python 汉语的复杂性_嵌套_03

16.4 计算复杂性和人的语言处理

多重嵌套的现象导致的句子理解的困难,和记忆的局限性有关。

有一种理论是用一个栈来处理,但即使同样数目的嵌套句子之间,复杂度还是有明显差别。比如抽取宾语的关系从句处理起来比抽取主语的更困难。

依存定位理论(DLT)认为,客体的相对性判断之所以困难,是因为句子中动词前出现了两个名词,使读句子的人产生了困惑。

DLT提出,把一个新单词w结合到句子中的处理开始是与单词w以及该单词w所结合的句法项目之间的距离成正比的。

所以计算复杂性看起来是与记忆有关,而非剖析栈。

当前研究的热点在于计算复杂度与概率剖析之间的关系,计算复杂度可能有一些概率低的结构引起。

16.5 小结

本章主要内容有:

Chomsky层级,抽吸引理,记忆有限性等。

16.6 文献和历史说明

语言处理是不是一个NP完全问题:

  1. 在一个潜在无限长的句子中,为了保持词汇和一致关系的特征歧义而引起的在某些基于合一的形式化方法中识别句子的问题,是NP完全的;
  2. 双层形态剖析(或者只是词汇、表层形式之间的映射)也是NP完全的。