数学之美 —— 阅读笔记(一)
自然语言处理 —— 从规则到统计
对于计算机能否读懂自然语言,涉及到两个认知方面的问题:
- 计算机能否处理自然语言?
- 如果能,它处理的方法是否和人类一样?
而对于这两个问题,答案都是肯定的。
虽然字词可以被认为是有限且闭合的集合,而语言却不是,语言是无限的,因此语言必有语法无法覆盖到的存在。这就涉及两个考虑问题的方向,一个是从 语言 的角度,另一个是从 语法 的角度。经过长期的争论,最后的实践宣布了语言的正确性的胜利。
然而让计算机处理自然语言,并非计算机真正理解的自然语言的含义和表达的内容,这一切都归功于数学(准确地说是统计)
如果使用基于规则的方法,那么要覆盖哪怕 20% 的真实语句,文法规则的数量都是相当庞大的,这是其一;其次,在文法规则增加后会产生一些矛盾,因此会定义规则使用的特定环境等。
虽然计算机能理解现在的高级编程语言,然而这两者的计算量却不能同日而语。编程语言的文法是上下文无关的,其理解所耗费的时间复杂度为文本长度的平方;但是自然语言是上下文相关的,其时间复杂度为文本长度的六次方。
而从规则到统计的变革起源于 IBM 华生实验室对语音识别的改进,开始使用基于统计的方法。
统计语言模型
让计算机处理自然语言,一个基本问题就是为自然语言这种上下文相关的特征建立数学模型。
用数学的方法描述语言的规律
假定 S 表示一个有意义的句子,由一连串特定顺序排列的词
利用条件概率公式,S 出现的概率等于每一个词出现的条件相乘,即: