0%

自然语言处理 - 从规则到统计

语言

字母(或者中文的笔画)、文字和数字实际上是信息编码的不同单元。任何一种语言都是一种编码的方式,而语言的语法规则是编解码的算法

我们把一个要表达的意思,通过某种语言的一句话表达出来,就是用这种语言的编码方式对头脑中的信息做了一次编码,编码的结果就是一串文字。而如果对方懂得这门语言,他就可以用这门语言的解码方法获得说话人要表达的信息。这就是语言的数学本质。

基本名词

  • 文法、语法 Grammer
  • 文法包括词法和句法
  • 词法主要研究词的内部结构,包括变形、构词法。又称形态学(Morphologic)
  • 句法研究句子结构成分的相关关系
  • 上下文无关文法 (Context Independent Grammar),比如程序设计语言。计算复杂度大约是句子长度的2次方
  • 上下文有关文法 (Context dependency Grammar),比如自然语言。计算复杂度大约是语句长度的6次方。

自然语言理解

  • 人是怎样理解语言的?
  • 机器能否像人一样理解语言?

今天,机器翻译和语音识别已经做得不错,但大部分这个领域之外的人依然错误地认为这两个应用是靠计算机理解了自然语言而完成的。事实上,它们全都靠得是数学,更准确地说是靠统计

门派

  • 基于规则的:专家根据自己的经验 人工撰写规则。
    • 背景:
    • 优点:设计规则,简单有效。
    • 缺点:费时费力;规则不能覆盖各种语言现象
  • 基于统计的:
    • 背景:上个世纪80年代后期,机器学习算法被引入到自然语言处理中,这要归功于不断提高的计算能力。
    • 优点:相对基于规则的方法,更鲁棒
    • 缺点/局限性:data-driven,强烈依赖数据,需要大规模的训练语料。计算能力

基于统计的方法代替传统的方法,需要等原有的一批语言学家退休。

今天几乎不再有科学家宣称自己是基于规则方法的捍卫者。而自然语言处理的研究也从单纯的句法分析和语义理解,变成了非常贴近应用的机器翻译、语音识别、文本到数据库自动生成、数据挖掘和知识的获取等等。

上面是什么意思?从无监督学习变成了有监督学习?贬低语义理解?

门派斗争

  • 基于统计的方法只能处理浅层的自然语言处理问题,无法进入生层次的研究

基于规则的自然语言处理

语法规则(Gramar Rules)、词性(Part of Speech)、构词法(Morphologic)等,这些规则是人类学习语言(尤其是外语)的好工具。而恰恰这些语法规则又很容易用计算机的算法描述,这就更坚定了大家对基于规则的自然语言处理的信心。

语法树太复杂

基于统计的自然语言处理

由于计算量十分庞大,在20世纪70年代,基于规则的句法分析很快走到了尽头

1970年以后统计语言学的出现使得自然语言处理重获新生。
当时,基于统计的方法核心模型是通信系统加隐马尔科夫模型这个系统的输入和输出都是一维的符号序列,而且保持原有的次序(即sequence labeling问题)。最早获得成功的是语音识别,接下来是磁性分析。

但是在句法分析中,输入时一维的句子,输出是二维的分析树。在机器翻译中,输出的次序会有很大的变化(翻译不再是sequence labeling问题)。HMM就不太管用了。1988年,IBM的Peter Brown等人提出了基于统计的机器翻译方法,框架是对的,但是效果很差,因为当时既没有足够的数据,也没有足够强大的模型来解决不同语言语序颠倒的问题

参考

  • 《数学之美》 | 吴军
  • 《》