前言
自然语言处理是文本挖掘的研究领域之一,是人工智能和语言学领域的分支学科。在此领域中探讨如何处理及运用自然语言。
对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起。基于统计的自然语言处理是哲学中的经验主义,基于规则的自然语言处理是哲学中的理性主义。在哲学领域中经验主义与理性主义的斗争一直是此消彼长,这种矛盾与斗争也反映在具体科学上,如自然语言处理。
早期的自然语言处理具有鲜明的经验主义色彩。如1913年马尔科夫提出马尔科夫随机过程与马尔科夫模型的基础就是“手工查频”,具体说就是统计了《欧根·奥涅金》长诗中元音与辅音出现的频度;1948年香农把离散马尔科夫的概率模型应用于语言的自动机,同时采用手工方法统计英语字母的频率。
然而这种经验主义到了乔姆斯基时出现了转变。
1956年乔姆斯基借鉴香农的工作,把有限状态机用作刻画语法的工具,建立了自然语言的有限状态模型,具体来说就是用“代数”和“集合”将语言转化为符号序列,建立了一大堆有关语法的数学模型。这些工作非常伟大,为自然语言和形式语言找到了一种统一的数学描述理论,一个叫做“形式语言理论”的新领域诞生了。这个时代,“经验主义”被全盘否定,“理性主义”算是完胜。
然而在20世纪50年代末到60年代中期,经验主义东山再起了。多数学者普遍认为只有详尽的历史语料才能带来靠谱的结论。于是一些比较著名的理论与算法就诞生了,如贝叶斯方法(Bayesian Method)、隐马尔可夫、最大熵、Viterbi算法、支持向量机之类。世界上第一个联机语料库也是在那个时候的Brown University诞生的。但是总的来说,这个时代依然是基于规则的理性主义的天下,经验主义虽然取得了不俗的成就,却依然没有受到太大的重视。但是金子总会发光的。
90年代以来,基于统计的自然语言处理就开始大放异彩了。首先是在机器翻译领域取得了突破,因为引入了许多基于语料库的方法(哈钦斯,英国著名学者)。1990年在芬兰赫尔辛基举办的第13届国际计算语言学会议确定的主题是“处理大规模真实文本的理论、方法与工具”,大家的重心开始转向大规模真实文本了,传统的仅仅基于规则的自然语言处理显然力不从心了。学者们认为,大规模语料至少是对基于规则方法有效的补充。到了1994~1999年,经验主义就开始空前繁荣了。如句法剖析、词类标注、参照消解、话语处理的算法几乎把“概率”与“数据”作为标准方法,成为了自然语言处理的主流。
总之,理性主义在自然语言处理的发展史上是有重要地位的,也辉煌了几十年,历史事物常常是此消彼长的,至于谁好谁坏,不是固定的,取决于不同时代的不同历史任务。总的来说,基于规则的理性主义在这个时代被提及得比较少,用的也比较少,主要是由于以下几个缺陷:
但理性主义还是有很多优点的,同样经验主义也有很多缺陷,算是各有所长、各有所短。不同学科有不同学科的研究角度,只能说某些角度在某个特定的历史时期对提高生产力“更有用”,所以重视的人更多。但“有用”不代表胜利,暂时的“无用”更不能说是科学层面上的“失败”。尤其是在当前中文自然语言处理发展还不甚成熟的时期,私以为基于统计的方法在很多方面并不完美,“理性主义”的作用空间还很大,需要更多的人去关注、助力。
——《统计自然语言处理》宗成庆
自然语言处理涉及的范畴如下(维基百科):
本文针对其中几个主要领域的研究现状和进展,通过论文、博客等资料,结合自身的学习和实践经历进行浅显地介绍。由于个人实践经验不足,除中文分词、自动文摘、文本分类、情感分析和话题模型方面进行过实际业务的实践,其他方面经验欠缺,若有不当之处,欢迎童鞋们批评指正!
目录
一. 中文分词
中文分词主要包括词的歧义切分和未登录词识别,主要可以分为基于词典和基于统计的方法,最新的方法是多种方法的混合。从目前汉语分词研究的总体水平看,F1值已经达到95%左右,主要分词错误是由新词造成的,尤其对领域的适应性较差。下面主要介绍一下中文分词存在的主要问题和分词方法。
1. 问题
1.1 歧义切分
切分歧义处理包括两部分内容:
这两部分在逻辑关系上可分成两个相对独立的步骤。
针对切分歧义检测,另外两个有价值的工作是“最少分词法”,这种方法歧义检测能力较双向最大匹配法要强些,产生的可能切分个数仅略有增加;和“全切分法”,这种方法穷举所有可能的切分,实现了无盲区的切分歧义检测,但代价是导致大量的切分“垃圾”。
1.2 未登录词识别
未登录词大致包含两大类:
前一种未登录词理 论上是可预期的,能够人工预先添加到词表中(但这也只是理想状态,在真实环境下并不易 做到);后一种未登录词则完全不可预期,无论词表多么庞大,也无法囊括。真实文本中(即便是大众通用领域),未登录词对分词精度的影响超过了歧义切分。未登录词处理在实用型分词系统中占的份量举足轻重。
2. 方法
2.1 基于词典的方法
在基于词典的方法中,对于给定的词,只有词典中存在的词语能够被识别,其中最受欢迎的方法是最大匹配法(MM),这种方法的效果取决于词典的覆盖度,因此随着新词不断出现,这种方法存在明显的缺点。
2.2 基于统计的方法
基于统计的方法由于使用了概率或评分机制而非词典对文本进行分词而被广泛应用。这种方法主要有三个缺点:一是这种方法只能识别OOV(out-of-vocabulary)词而不能识别词的类型,比如只能识别为一串字符串而不能识别出是人名;二是统计方法很难将语言知识融入分词系统,因此对于不符合语言规范的结果需要额外的人工解析;三是在许多现在分词系统中,OOV词识别通常独立于分词过程。
二. 词性标注
词性标注是指为给定句子中的每个词赋予正确的词法标记,给定一个切好词的句子,词性标注的目的是为每一个词赋予一个类别,这个类别称为词性标记(part-of-speech tag),比如,名词(noun)、动词(verb)、形容词(adjective) 等。它是自然语言处理中重要的和基础的研究课题之一,也是其他许多智能信息处理技术的基础,已被广泛的应用于机器翻译、文字识别、语音识别和信息检索等领域。
词性标注对于后续的自然语言处理工作是一个非常有用的预处理过程,它的准确程度将直接影响到后续的一系列分析处理任务的效果。 长期以来,兼类词的词性歧义消解和未知词的词性识别一直是词性标注领域需要解决的热点问题。当兼类词的词性歧义消解变得困难时,词性的标注就出现了不确定性的问题。而对那些超出了词典收录范围的词语或者新涌现的词语的词性推测,也是一个完整的标注系统所应具备的能力。
1. 词性标注方法
词性标注是一个非常典型的序列标注问题。最初采用的方法是隐马尔科夫生成式模型, 然后是判别式的最大熵模型、支持向量机模型,目前学术界通常采用结构感知器模型和条件随机场模型。近年来,随着深度学习技术的发展,研究者们也提出了很多有效的基于深层神经网络的词性标注方法。
迄今为止,词性标注主要分为基于规则的和基于统计的方法。
2. 词性标注研究进展
三. 句法分析
语言语法的研究有非常悠久的历史,可以追溯到公元前语言学家的研究。不同类型的句 法分析体现在句法结构的表示形式不同,实现过程的复杂程度也有所不同。因此,科研人员 采用不同的方法构建符合各个语法特点的句法分析系统。其主要分类如下图所示:
下文主要对句法分析技术方法和研究现状进行总结分析:
1. 依存句法分析
依存语法存在一个共同的基本假设:句法结构本质上包含词和词之间的依存(修饰)关系。一个依存关系连接两个词,分别是核心词( head)和依存词( dependent)。依存关系可以细分为不同的类型,表示两个词之间的具体句法关系。目前研究主要集中在数据驱动的依存句法分析方法,即在训练实例集合上学习得到依存句法分析器,而不涉及依存语法理论的研究。数据驱动的方法的主要优势在于给定较大规模的训练数据,不需要过多的人工干预,就可以得到比较好的模型。因此,这类方法很容易应用到新领域和新语言环境。数据驱动的依存句法分析方法主要有两种主流方法:基于图( graph-based)的分析方法和基于转移( transition-based)的分析方法。
2.1 基于图的依存句法分析方法
基于图的方法将依存句法分析问题看成从完全有向图中寻找最大生成树的问题。一棵依存树的分值由构成依存树的几种子树的分值累加得到。根据依存树分值中包含的子树的复杂度,基于图的依存分析模型可以简单区分为一阶和高阶模型。高阶模型可以使用更加复杂的子树特征,因此分析准确率更高,但是解码算法的效率也会下降。基于图的方法通常采用基于动态规划的解码算法,也有一些学者采用柱搜索(beam search)来提高效率。学习特征权重时,通常采用在线训练算法,如平均感知器( averaged perceptron)。
2.2 基于转移的依存句法分析方法
基于转移的方法将依存树的构成过程建模为一个动作序列,将依存分析问题转化为寻找最优动作序列的问题。早期,研究者们使用局部分类器(如支持向量机等)决定下一个动作。近年来,研究者们采用全局线性模型来决定下一个动作,一个依存树的分值由其对应的动作序列中每一个动作的分值累加得到。特征表示方面,基于转移的方法可以充分利用已形成的子树信息,从而形成丰富的特征,以指导模型决策下一个动作。模型通过贪心搜索或者柱搜索等解码算法找到近似最优的依存树。和基于图的方法类似,基于转移的方法通常也采用在线训练算法学习特征权重。
2.3 多模型融合的依存句法分析方法
基于图和基于转移的方法从不同的角度解决问题,各有优势。基于图的模型进行全局搜索但只能利用有限的子树特征,而基于转移的模型搜索空间有限但可以充分利用已构成的子树信息构成丰富的特征。详细比较发现,这两种方法存在不同的错误分布。因此,研究者们使用不同的方法融合两种模型的优势,常见的方法有:stacked learning;对多个模型的结果加权后重新解码(re-parsing);从训练语料中多次抽样训练多个模型(bagging)。
2. 短语结构句法分析
分词,词性标注技术一般只需对句子的局部范围进行分析处理,目前已经基本成熟,其标志就是它们已经被成功地用于文本检索、文本分类、信息抽取等应用之中,而句法分析、语义分析技术需要对句子进行全局分析,目前,深层的语言分析技术还没有达到完全实用的程度。
短语结构句法分析的研究基于上下文无关文法(Context Free Grammar,CFG)。上下文无关文法可以定义为四元组,其中 T 表示终结符的集合(即词的集合),N 表示非终结符的集合(即文法标注和词性标记的集合),S 表示充当句法树根节点的特殊非终结符,而 R 表示文法规则的集合,其中每条文法规则可以表示为 Ni®g ,这里的 g 表示由非终结符与终结符组成的一个序列(允许为空)。
根据文法规则的来源不同,句法分析器的构建方法总体来说可以分为两大类:
人工书写规则受限于规则集合的规模:随着书写的规则数量的增多,规则与规则之间的冲突加剧,从而导致继续添加规则变得困难。
与人工书写规模相比,自动学习规则的方法由于开发周期短和系统健壮性强等特点,加上大规模人工标注数据,比如宾州大学的多语种树库的推动作用,已经成为句法分析中的主流方法。而数据驱动的方法又推动了统计方法在句法分析领域中的大量应用。为了在句法分析中引入统计信息,需要将上下文无关文法扩展成为概率上下文无关文法(Probabilistic Context Free Grammar,PCFG),即为每条文法规则指定概率值。
概率上下文无关文法与非概率化的上下文无关文法相同,仍然表示为四元组,区别在于概率上下文无关文法中的文法规则必须带有概率值。获得概率上下文无关文法的最简单的方法是直接从树库中读取规则,利用最大似然估计(Maximum Likelihood Estimation,MLE)计算得到每条规则的概率值。使用该方法得到的文法可以称为简单概率上下文无关文法。在解码阶段,CKY 10等解码算法就可以利用学习得到的概率上下文无关文法搜索最优句法树。
虽然基于简单概率上下文无关文法的句法分析器的实现比较简单,但是这类分析器的性能并不能让人满意。性能不佳的主要原因在于上下文无关文法采取的独立性假设过强:一条文法规则的选择只与该规则左侧的非终结符有关,而与任何其它上下文信息无关。文法中缺乏其它信息用于规则选择的消歧。因此后继研究工作的出发点大都基于如何弱化上下文无关文法中的隐含独立性假设。
3. 总结
分词,词性标注技术一般只需对句子的局部范围进行分析处理,目前已经基本成熟,其标志就是它们已经被成功地用于文本检索、文本分类、信息抽取等应用之中,而句法分析、语义分析技术需要对句子进行全局分析,目前,深层的语言分析技术还没有达到完全实用的程度。
四. 文本分类
文本分类是文本挖掘的核心任务,一直以来倍受学术界和工业界的关注。文本分类(Text Classification)的任务是根据给定文档的内容或主题,自动分配预先定义的类别标签。
对文档进行分类,一般需要经过两个步骤:
文本表示是指将无结构化的文本内容转化成结构化的特征向量形式,作为分类模型的输入。在得到文本对应的特征向量后,就可以采用各种分类或聚类模型,根据特征向量训练分类器或进行聚类。因此,文本分类或聚类的主要研究任务和相应关键科学问题如下:
1. 任务
1.1 构建文本特征向量
构建文本特征向量的目的是将计算机无法处理的无结构文本内容转换为计算机能够处 理的特征向量形式。文本内容特征向量构建是决定文本分类和聚类性能的重要环节。为了根据文本内容生成特征向量,需要首先建立特征空间。其中典型代表是文本词袋(Bag of Words)模型,每个文档被表示为一个特征向量,其特征向量每一维代表一个词项。所有词项构成的向量长度一般可以达到几万甚至几百万的量级。
这样高维的特征向量表示如果包含大量冗余噪音,会影响后续分类聚类模型的计算效率和效果。因此,我们往往需要进行特征选择(Feature Selection)与特征提取(Feature Extraction),选取最具有区分性和表达能力的特征建立特征空间,实现特征空间降维;或者,进行特征转换(Feature Transformation),将高维特征向量映射到低维向量空间。特征选择、提取或转换是构建有效文本特征向量的关键问题。
1.2 建立分类或聚类模型
在得到文本特征向量后,我们需要构建分类或聚类模型,根据文本特征向量进行分类或聚类。
其中,分类模型旨在学习特征向量与分类标签之间的关联关系,获得最佳的分类效果; 而聚类模型旨在根据特征向量计算文本之间语义相似度,将文本集合划分为若干子集。 分类和聚类是机器学习领域的经典研究问题。
我们一般可以直接使用经典的模型或算法解决文本分类或聚类问题。例如,对于文本分类,我们可以选用朴素贝叶斯、决策树、k-NN、 逻辑回归(Logistic Regression)、支持向量机(Support Vector Machine, SVM)等分类模型。 对于文本聚类,我们可以选用 k-means、层次聚类或谱聚类(spectral clustering)等聚类算法。 这些模型算法适用于不同类型的数据而不仅限于文本数据。
但是,文本分类或聚类会面临许多独特的问题,例如,如何充分利用大量无标注的文本数据,如何实现面向文本的在线分类或聚类模型,如何应对短文本带来的表示稀疏问题,如何实现大规模带层次分类体系的分类功能,如何充分利用文本的序列信息和句法语义信息,如何充分利用外部语言知识库信息,等等。这些问题都是构建文本分类和聚类模型所面临的关键问题。
2. 模型
2.1 文本分类模型
近年来,文本分类模型研究层出不穷,特别是随着深度学习的发展,深度神经网络模型 也在文本分类任务上取得了巨大进展。我们将文本分类模型划分为以下三类:
基于规则的分类模型旨在建立一个规则集合来对数据类别进行判断。这些规则可以从训 练样本里自动产生,也可以人工定义。给定一个测试样例,我们可以通过判断它是否满足某 些规则的条件,来决定其是否属于该条规则对应的类别。
典型的基于规则的分类模型包括决策树(Decision Tree)、随机森林(Random Forest)、 RIPPER 算法等。
典型的机器学习分类模型包括贝叶斯分类器(Naïve Bayes)、线性分类器(逻辑回归)、 支持向量机(Support Vector Machine, SVM)、最大熵分类器等。
SVM 是这些分类模型中比较有效、使用较为广泛的分类模型。它能够有效克服样本分布不均匀、特征冗余以及过拟合等问题,被广泛应用于不同的分类任务与场景。通过引入核函数,SVM 还能够解决原始特征空间线性不可分的问题。
除了上述单分类模型,以 Boosting 为代表的分类模型组合方法能够有效地综合多个弱分类模型的分类能力。在给定训练数据集合上同时训练这些弱分类模型,然后通过投票等机制综合多个分类器的预测结果,能够为测试样例预测更准确的类别标签。
以人工神经网络为代表的深度学习技术已经在计算机视觉、语音识别等领域取得了巨大 成功,在自然语言处理领域,利用神经网络对自然语言文本信息进行特征学习和文本分类, 也成为文本分类的前沿技术。
前向神经网络:多层感知机(Multilayer Perceptron, MLP)是一种典型的前向神经网 络。它能够自动学习多层神经网络,将输入特征向量映射到对应的类别标签上。通过引入非线性激活层,该模型能够实现非线性的分类判别式。包括多层感知机在内的文本分类模型均使用了词袋模型假设,忽略了文本中词序和结构化信息。对于多层感知机模型来说,高质量的初始特征表示是实现有效分类模型的必要条件。
为了更加充分地考虑文本词序信息,利用神经网络自动特征学习的特点,研究者后续提出了卷积神经网络(Convolutional Neural Network, CNN)和循环神经网络(Recurrent Neural Network, RNN)进行文本分类。基于 CNN 和 RNN 的文本分类模型输入均为原始的词序列,输出为该文本在所有类别上的概率分布。这里,词序列中的每个词项均以词向量的形式作为输入。
卷积神经网络(CNN):卷积神经网络文本分类模型的主要思想是,对词向量形式的文本输入进行卷积操作。CNN 最初被用于处理图像数据。与图像处理中选取二维域进行卷积操作不同,面向文本的卷积操作是针对固定滑动窗口内的词项进行的。经过卷积层、 池化层和非线性转换层后,CNN 可以得到文本特征向量用于分类学习。CNN 的优势在于在计算文本特征向量过程中有效保留有用的词序信息。针对 CNN 文本分类模型还有许多改进工作, 如基于字符级 CNN 的文本分类模型、将词位置信息加入到词向量。
循环神经网络(RNN):循环神经网络将文本作为字符或词语序列{?0 , … , ??},对于第?时刻输入的字符或词语??,都会对应产生新的低维特征向量s?。如图 3 所示,s?的取值会受到 ??和上个时刻特征向量s?−1的共同影响,s?包含了文本序列从?0到??的语义信息。因此,我们可以利用s?作为该文本序列的特征向量,进行文本分类学习。与 CNN 相比,RNN 能够更自然地考虑文本的词序信息,是近年来进行文本表示最流行的方案之一。
为了提升 RNN 对文本序列的语义表示能力,研究者提出很多扩展模型。例如,长短时记忆网络(LSTM)提出记忆单元结构,能够更好地处理文本序列中的长程依赖,克服循环神经网络梯度消失问题。如图 4 是 LSTM 单元示意图,其中引入了三个门(input gate, output gate, forget gate)来控制是否输入输出以及记忆单元更新。
提升 RNN 对文本序列的语义表示能力的另外一种重要方案是引入选择注意力机制 (Selective Attention),可以让模型根据具体任务需求对文本序列中的词语给予不同的关 注度。
3. 应用
文本分类技术在智能信息处理服务中有着广泛的应用。例如,大部分在线新闻门户网站(如新浪、搜狐、腾讯等)每天都会产生大量新闻文章,如果对这些新闻进行人工整理非常耗时耗力,而自动对这些新闻进行分类,将为新闻归类以及后续的个性化推荐等都提供巨大帮助。互联网还有大量网页、论文、专利和电子图书等文本数据,对其中文本内容进行分类,是实现对这些内容快速浏览与检索的重要基础。此外,许多自然语言分析任务如观点挖掘、垃圾邮件检测等,也都可以看作文本分类或聚类技术的具体应用。
对文档进行分类,一般需要经过两个步骤:(1)文本表示,以及(2)学习。文本表示是指将无结构化的文本内容转化成结构化的特征向量形式,作为分类模型的输入。在得到文本对应的特征向量后,就可以采用各种分类或聚类模型,根据特征向量训练分类器
五. 信息检索
信息检索(Information Retrieval, IR)是指将信息按一定的方式加以组织,并通过信息查找满足用户的信息需求的过程和技术。1951 年,Calvin Mooers 首次提出了“信息检索”的概念,并给出了信息检索的主要任务:协助信息的潜在用户将信息需求转换为一张文献来源列表,而这些文献包含有对其有用的信息。信息检索学科真正取得长足发展是在计算机诞生并得到广泛应用之后,文献数字化使得信息的大规模共享及保存成为现实,而检索就成为了信息管理与应用中必不可少的环节。
互联网的出现和计算机硬件水平的提高使得人们存储和处理信息的能力得到巨大的提高,从而加速了信息检索研究的进步,并使其研究对象从图书资料和商用数据扩展到人们生活的方方面面。伴随着互联网及网络信息环境的迅速发展,以网络信息资源为主要组织对象的信息检索系统:搜索引擎应运而生,成为了信息化社会重要的基础设施。
2016 年初,中文搜索引擎用户数达到 5.66 亿人,这充分说明搜索引擎在应用层次取得的巨大成功,也使得信息检索,尤其是网络搜索技术的研究具有了重要的政治、经济和社会价值。
1. 内容结构
检索用户、信息资源和检索系统三个主要环节组成了信息检索应用环境下知识获取与信息传递的完整结构,而当前影响信息获取效率的因素也主要体现在这几个环节,即:
具体而言,用户有限的认知能力导致其知识结构相对大数据时代的信息环境而言往往存在缺陷, 进而影响信息需求的合理组织和清晰表述;数据资源的规模繁杂而缺乏管理,在互联网“注意力经济”盛行的环境下,不可避免地存在欺诈作弊行为,导致检索系统难以准确感知其质量;用户与资源提供者的知识结构与背景不同,对于相同或者相似事物的描述往往存在较大差异,使得检索系统传统的内容匹配技术难以很好应对,无法准确度量资源与需求的匹配程度。上述技术挑战互相交织,本质上反映了用户个体有限的认知能力与包含近乎无限信息的数据资源空间之间的不匹配问题。
概括地讲,当前信息检索的研究包括如下四个方面的研究内容及相应的关键科学问题:
1.1 信息需求理解
面对复杂的泛在网络空间,用户有可能无法准确表达搜索意图;即使能够准确表达,搜 索引擎也可能难以正确理解;即使能够正确理解,也难以与恰当的网络资源进行匹配。这使 得信息需求理解成为了影响检索性能提高的制约因素,也构成了检索技术发展面临的第一个关键问题。
1.2 资源质量度量
资源质量管理与度量在传统信息检索研究中并非处于首要的位置,但随着互联网信息资 源逐渐成为检索系统的主要查找对象,网络资源特有的缺乏编审过程、内容重复度高、质量 参差不齐等问题成为了影响检索质量的重要因素。目前,搜索引擎仍旧面临着如何进行有效 的资源质量度量的挑战,这构成了当前信息检索技术发展面临的第二个关键问题。
1.3 结果匹配排序
近年来,随着网络技术的进步,信息检索系统(尤其是搜索引擎)涉及的数据对象相应 的变得多样化、异质化,这也造成了传统的以文本内容匹配为主要手段的结果排序方法面临着巨大的挑战。高度动态繁杂的泛在网络内容使得文本相似度计算方法无法适用;整合复杂 异构网络资源作为结果使得基于同质性假设构建的用户行为模型难以应对;多模态的交互方 式则使得传统的基于单一维度的结果分布规律的用户行为假设大量失效。因此,在大数据时 代信息进一步多样化、异质化的背景下,迫切需要构建适应现代信息资源环境的检索结果匹 配排序方法,这是当前信息检索技术发展面临的第三个关键问题。
1.4 信息检索评价
信息检索评价是信息检索和信息获取领域研究的核心问题之一。信息检索和信息获取系 统核心的目标是帮助用户获取到满足他们需求的信息,而评价系统的作用是帮助和监督研究 开发人员向这一核心目标前进,以逐步开发出更好的系统,进而缩小系统反馈和用户需求之 间的差距,提高用户满意度。因此,如何设计合理的评价框架、评价手段、评价指标,是当 前信息检索技术发展面临的第四个关键问题。
2. 个性化搜索