大数据时代已经到来,如何高效地利用海量数据耐人深思。赋予计算机理解人类语言的能力,一直是专家学者们不断追求的,因而自然语言处理的快速发展,体现了人类对语言模型的认识不断完善与迭代的过程。最早的自然语言理解[1,2]方面的研究工作是机器翻译[3,4]。1949年,美国人威弗首先提出了机器翻译设计方案。20世纪60年代,国外对机器翻译曾有大规模的研究工作,但人们当时低估了自然语言的复杂性,语言处理的理论和技术均不成熟。大约90年代,研发的自然语言处理系统能处理大规模的真实文本,鉴于真实地理解自然语言并从中提取有用的信息,从而引起大规模真实语料库的研制和大规模、信息丰富的词典[5,6]编制工作。至今,自然语言处理已经涵盖对人类自然语言所进行的一切有意义的操作和分析。客观语言事实经过语言模型[7,8]的描述,建立一个给定词序列在语言中出现的概率分布,比较适合于计算机进行自动处理,对于自然语言处理具有重大意义。自然语言形式多样、内容丰富多彩,计算机却要按照一定的算法、规则或指令统一处理这些结构化或者非结构化的数据。首先进行数据预处理包括知识的类型与表示、知识获取,然后对数据进行特征提取、内容加工、知识融合、知识应用。如何对这些数据进行统一化的处理,就需要借助建立语言模型实现,然而自然语言处理的结果的准确率与效率却与构建的语言模型密不可分,针对自然语言处理不同的任务,选择不同的语料和参数,同时模型的选择也不一样,没有一种模型适合所有的自然语言处理任务,但是总有相对适合或者说效果更好,如何获取或者训练一个好的语言模型则至关重要。在自然语言处理的研究中,
许多研究人员提出和使用了不少的数学模型,但这些模型散落于许多的研究论文中,有必要对它们进行系统的归纳和总结。本文重点围绕自然语言处理中的语言模型的分类、原理、方法、效果以及存在的问题现状开展研究分析,并给出给各种模型的适用对象,为今后自然语言处理领域的科研工作者提供一定的参考价值。
语言模型最开始诞生在语音识别领域,识别给定的语音信号对应的词序列,语言模型主要分为:①生成性模型[9],从一个形式语言系统出发,生成语言的某一集合,如N.乔姆斯基的形式语言理论和转换语法;②分析性模型[10],从语言的某一集合开始,根据对这个集合中各个元素的性质分析、阐明这些元素之间的关系,并在此基础上用演绎的方法建立语言的规则系统,③辨识性模型[11],把生成性模型和分析性模型结合起来,产生一种很有实用价值的模型,从语言元素的某一集合及规则系统出发,通过有限的步骤运算,确定这些元素是一堆杂乱无序的词还是语言中合格的句子,如Y.巴尔-希列尔用数理逻辑方法提出的句法类型演算模型。本文主要论述辨识性模型。分布式计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式表示[12]在自然语言处理领域应用成熟,尤其基于一些大规模语料库、词典的处理,数据量比较大的时候,针对分词模型可以采用分布式特征表示,使自然语言处理更见方便快捷,同时分布式系统的效率和安全性更高。一些最早使用的算法,如决策树产生的if-then规则类似于手写的规则,是最普通的系统体系,然而越来越多的研究集中于统计模型[13],此类模型具有能够表达许多不同的可能的答案,而不是只有一个相对的确定性,产生更可靠的结果。实际上,基于NLP的模型构造无外乎依据递归嵌套原理和距离相关原理,但是机器不懂语法,简单地从词法上进行分析,我们无法得到正确的识别,一个简单易行的方法就是用统计学方法(马尔可夫链)从概率上来判断各个识别的正确可能性。一般常见的语义分析模型有:向量空间模型[14,15]、概率统计模型、概念模型、基于神经网络的模型等等。基于统计的语言结构学习模型和主要以规则形式存在的语言知识的融合将是语言计算很有前途的解决方略,在语言计算[16]、信息检索[17]、机器翻译等领域都取得了一定的进展,尤其是知识图谱的产生,更是激发了研究者新的灵感和热情。
1.语言模型现状
1.1传统的统计语言模型
统计语言模型[18]是表示语言基本单位(一般为句子)的概率分布函数,这个概率分布也就是该语言的生成模型。一般语言模型可以使用各个词语条件概率的形式表示:
P(s)=P()=P(,,...,)=P(|Context),其中Context即为上下文,根据对Context不同的划分方法,有以下五大类:(1)N-Gram模型[19]:这里n-gram一般认为是N>=2是的上下文相关模型,当n=2时也称为Bigram语言模型,一般优化目标是最大log似然,n-gram模型的优点包含了前N-1个词所能提供的全部信息,这些信息对当前词出现具有很强的约束力。同时因为只看N-1个词而不是所有词也使得模型的效率较高。但是n-gram语言无法建模更远的关系,语料的不足导致无法训练更高阶的语言模型,并且不能模拟出词之间的相似度,训练语料里面有些n元组没有出现过,则其对应的条件概率就是0,导致一整句话计算的概率为零。(2)上下文无关模型(Context=Null):该模型仅仅考虑当前词本身的概率,不考虑该词所对应的上下文环境。这是一种最简单,易于实现,但没有多大实际应用价值的统计语言模型。它是N-Gram模型中当n=1的特殊情形,所以有时也称作Unigram Model(一元文法统计模型),实际应用中,常被应用到一些商用语音识别系统中。(3)N-Pos模型[20]:严格来说N-Pos只是N-Gram的一种衍生模型,N-Gram模型假定第t个词出现概率条件依赖它的前N-1个词,而现实中很多词出现的概率是条件依赖于它前面词的语法功能的。N-Pos模型就是基于这种假设的模型,它将词按照其语法功能进行分类,由这些词类决定下一个词出现的概率,这样的词类称为词性(Part-of-Speech,简称为Pos)。(4)基于决策树模型[21]:可以以统计决策树的形式表示出来,而统计决策树中每个结点的决策规则是一个上下文相关的问题。这些问题可以是“前一个词是w吗?”“前一个词属于类别词吗?”。当然基于决策树的语言模型还可以更灵活一些,可以是一些“前一个词是动词?”、“后面有介词吗?”之类的复杂语法语义问题。基于决策树的语言模型的分布数不是预先固定好的,而是根据训练预料库中的实际情况确定,更为灵活,但是构造统计决策树的问题很困难,且时空开销很大。(5)最大熵模型[22,23]:有时候也称为指数模型,E.T.Jayness于上世纪50年代提出的模型,对一个随机事件的概率分布进行预测时,在满足全部已知的条件下对未知的情况不做任何主观假设。从信息论的角度来说就是,在只掌握关于未知分布的部分知识时,应当选取符合这些知识但又能使得熵最大的概率分布。(6)自适应语言模型[24]:该模型类似Online Learning的过程,即根据少量新数据动态调整模型,属于动态模型。以上几种模型概率分布都是预先从训练语料库中估算好的,属于静态语言模型。有时候一些在文本中通常很少出现的词,在某一局部文本中突然大量地出现,自适应语言模型能够根据词在局部文本中出现的情况动态地调整语言模型中的概率分布,并且缓存起来,这种动静结合的模型通过参数融合在一起,可以有效地避免数据稀疏的问题。