一种基于状态转移与神经网络的汉语组块分析方法转让专利

申请号 : CN201610324281.5

文献号 : CN106021227B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 戴新宇程川陈家骏黄书剑张建兵

申请人 : 南京大学

摘要 :

本发明提出了一种基于状态转移与神经网络的汉语组块分析方法,包括:将组块分析任务转换成序列化标注任务,使用基于状态转移的框架对句子进行标注,在标注的过程中使用前向神经网络来对每个状态将要进行的转移操作进行打分,并将利用双向长短记忆神经网络模型学习到的词以及词性标注的分布式表示特征作为标注模型的附加信息特征,从而提高组块分析的精确度。对比其它汉语组块分析技术,该汉语组块分析方法使用的基于状态转移的框架可以更灵活地添加组块级别的特征,同时神经网络的使用可以自动学到特征之间的组合方式,双向长短记忆神经网络模型的利用引入了有用的附加信息特征,三者的结合有效提高了组块分析的准确度。

权利要求 :

1.一种基于状态转移与神经网络的汉语组块分析方法,其特征在于,包括如下步骤:

步骤1,计算机读取一个包含待分析句子的汉语文本文件,定义汉语组块的类型,对待分析句子进行分词并对每个词进行词性标注,进行词性标注时,根据当前句子状态确定所能选择的词性标注类型;

步骤2,利用基于状态转移和神经网络的方法对待分析句子进行汉语组块分析;

步骤1包括如下步骤:

步骤1-1,根据如下定义的12种短语类型定义汉语组块类型:

类型为ADJP、ADVP、CLP、DNP、DP、DVP、LCP、LST、NP、PP、QP、VP,它们的含义分别为:形容词短语、副词短语、类别型短语、多重限定短语、限定词短语、地字短语、方位短语、序列短语、名词短语、介词短语、数量词短语、动词短语;

步骤1-2,采用BIOES标注体系与步骤1-1中定义的汉语组块类型相结合的方式确定标注过程中对每个待标注词进行词性标注时所能选择的标注类型;

步骤2中,将汉语组块分析过程当成一个序列化标注任务,标注的类型由步骤1-1中定义的汉语组块类型和步骤1-2中采用的BIOES标注体系相结合的方式生成;

在整个步骤2中用n表示待分析句子的长度,步骤2包括如下步骤:

步骤2-1,给定状态下,在处理第t个词时对所有标注类型进行打分,此时给定的状态即为待分析句子前t-1个词已完成标注且已知其对应的标注类型,第t到第n个词为未标注词以及第t个词为下一个待处理词;

步骤2-2,给定状态集合St,在处理第t个词时对该状态集合中的每个状态按步骤2-1中的方式对所有标注类型进行打分,该打分通过计算完成,将赋予每个标注类型一个实数值,此实数值称为该类型对应的得分,再按步骤1-2所述方式生成候选标注类型,按每个候选标注类型对词进行标注从而对该状态进行扩展,并按柱搜索的方式挑选得分最高的m个新状态,得到新的状态集合St+1;

步骤2-3,对t=1,2,...,n,迭代执行步骤2-1和2-2,得到最终的目标状态集合Sn+1,并取出其中得分最高的状态 从该状态出发回溯得到得分最高的标注序列,此时所有词的类型标注都已完成,将该得分最高的标注序列还原为对应的组块分析结果,该结果即为当前句子的分析结果;

步骤2-1包括如下步骤:

步骤2-1-1,生成特征向量,特征向量包括基本信息特征向量和附加信息特征向量;

步骤2-1-2,利用前向神经网络对步骤2-1-1中生成的特征向量进行计算得到所有候选标注类型的得分;

在整个步骤2-1-1中待分析句子中的所有词从左到右依次表示为w1,w2,...,wn,wn表示待分析句子中第n个词,n取值为自然数;待分析句子中所有词对应的词性从左到右依次表示为p1,p2,...,pn,pn表示待分析句子中第n个词对应的词性;一个特征*对应的特征向量表示为e(*),步骤2-1-1包括如下步骤:步骤2-1-1-1,生成基本信息特征向量,基本信息特征向量包括以当前待标注词所在位置为基准的一定窗口内的词和词性特征对应的特征向量,以及以当前待标注词所在位置为基准的一定窗口内的已标注词所属类别特征对应的特征向量;具体过程如下:基本信息特征中词特征向量包括:以当前待处理词为中心向左数第二个词对应的特征向量e(w-2)、以当前待处理词为中心向左数第一个词对应的特征向量e(w-1)、当前待处理词对应的特征向量e(w0)、以当前待处理词为中心向右数第一个词对应的特征向量e(w1),以及以当前待处理词为中心向右数第二个词对应的特征向量e(w2);

词性特征向量包括:以当前待处理词为中心向左数第二个词的词性对应的特征向量e(p-2)、以当前待处理词为中心向左数第一个词的词性对应的特征向量e(p-1)、当前待处理词的词性对应的特征向量e(p0)、以当前待处理词为中心向右数第一个词的词性对应的特征向量e(p1)、以当前待处理词为中心向右数第二个词的词性对应的特征向量e(p2)、以当前待处理词为中心向左数第二个词和第一个词的词性组合对应的特征向量e(p-2p-1)、以当前待处理词为中心向左数第一个词和当前待处理词的词性组合对应的特征向量e(p-1p0)、以当前待处理词为中心向右数第一个词和当前待处理词的词性组合对应的特征向量e(p0p1)、以当前待处理词为中心向右数第二个词和第一个词的词性组合对应的特征向量e(p1p2);

步骤2-1-1-2,生成附加信息特征向量:附加信息特征向量包括以当前待标注词所在位置为基准的一定窗口内已标注组块相关的词特征向量和词性特征向量、使用双向长短记忆神经网络模型计算的当前待标注位置的词特征向量和词性特征向量;

步骤2-1-1-2包括如下步骤:

步骤2-1-1-2-1,以当前待处理词为中心向左数第二个组块、第一个组块分别表示为c-2、c-1,组块ci的第一个词表示为start_word(ci),最后一个词表示为end_word(ci),i=-

2,-1,语法中心词表示为head_word(ci),组块ci的第一个词的词性表示为start_POS(ci)、最后一个词的词性表示为end_POS(ci),语法中心词的词性表示为head_POS(ci),生成以当前待标注词所在位置为基准的一定窗口内已标注组块相关的词特征向量和词性特征向量:组块级别的词特征向量包括:以当前待处理词为中心向左数第二个组块的第一个词的特征向量e(start_word(c-2))、以当前待处理词为中心向左数第二个组块的最后一个词的特征向量e(end_word(c-2))、以当前待处理词为中心向左数第二个组块的语法中心词的特征向量e(head_word(c-2))、以当前待处理词为中心向左数第一个组块的第一个词的特征向量e(start_word(c-1))、以当前待处理词为中心向左数第一个组块的最后一个词的特征向量e(end_word(c-1))、以当前待处理词为中心向左数第一个组块的语法中心词的特征向量e(head_word(c-1));

组块级别的词性特征向量包括:以当前待处理词为中心向左数第二个组块的第一个词的词性的特征向量e(start_POS(c-2))、以当前待处理词为中心向左数第二个组块的最后一个词的词性的特征向量e(end_POS(c-2))、以当前待处理词为中心向左数第二个组块的语法中心词的词性的特征向量e(head_POS(c-2))、以当前待处理词为中心向左数第一个组块的第一个词的词性的特征向量e(start_POS(c-1)、以当前待处理词为中心向左数第一个组块的最后一个词的词性的特征向量e(end_POS(c-1))、以当前待处理词为中心向左数第一个组块的语法中心词的词性的特征向量e(head_POS(c-1));

步骤2-1-1-2-2,使用双向长短记忆神经网络模型计算生成当前待标注位置的词和词性特征向量:双向长短记忆神经网络模型的输入为待分析句子中的所有词以及待分析句子中所有词对应的词性,输出为前向词特征向量、前向词性特征向量、后向词特征向量和后向词性特征向量,下面公式中所用的tanh是双曲函数,为一个实值函数,其作用在一个向量上表示对向量中的每个元素都做此操作,得到一个与输入向量维度相同的目标向量;σ是sigmod函数,为一个实值函数,其作用在一个向量上表示对向量中的每个元素都做此操作,得到一个与输入向量维度相同的目标向量;⊙是点乘运算,即将两个维度相同的向量按位做乘法得到一个相同维度的结果向量,这四种特征向量的计算过程如下:前向词特征向量依次表示为hf(w1),hf(w2),...,hf(wn),hf(wt)表示第t个前向词特征向量,其计算方式按如下公式进行:其中,

是已经训练好的模型参数矩阵,矩阵中每个元素的值均为

实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;

是第t个计算单元中的中间计算结果,均为实值向量;

e(wt)、hf(wt-1)、 是第t个计算单元的输入,均为实值向量,其中的e(wt)即为词wt对应的特征向量;hf(wt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hf(wt-1),由于这是一个序列化的计算模型,第t-1f个计算单元的输出h(wt-1)、 即为第t个计算单元的输入;

前向词性特征向量依次表示为hf(p2),...,hf(pn),hf(pt)表示第t个前向词性特征向量,其计算方式按如下公式进行:其中,

是已经训练好的模型参数矩阵,矩阵中每个元素的值均为实数

值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;

是第t个计算单元中的中间计算结果,均为实值向量;

e(pt)、hf(pt-1)、 是第t个计算单元的输入,均为实值向量,其中的e(pt)即为词性pt对应的特征向量;hf(pt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hf(pt-1),由于这是一个序列化的计算模型,第t-1个计算单元的输出hf(pt-1)、 即为第t个计算单元的输入;

后向词特征向量依次表示为hb(w1),hb(w2),...,hb(wn),hb(wt)表示第t个后向词特征向量,其计算方式按如下公式进行:其中,

是已经训练好的模型参数矩阵,矩阵中每个元素的值均为实数

值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;

是第t个计算单元中的中间计算结果,均为实值向量;e(wt)、hb(wt+1)、

是第t个计算单元的输入,均为实值向量,其中的e(wt)即为词wt对应的特征向量;hb(wt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hb(wt-1),由于这是一个序列化的计算模型,第t+1个计算单元的输出hb(wt-1)、 即为第t个计算单元的输入;

后向词性特征向量依次表示为hb(p1),hb(p2),...,hb(pn),hb(pt)表示第t个后向词性特征向量,其计算方式按如下公式进行:其中,

是已经训练好的模型参数矩阵,矩阵中每个元素的值均

为实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;

是第t个计算单元中的中间计算结果,均为实值向量;

e(pt)、hb(pt+1)、 是第t个计算单元的输入,均为实值向量,其中的e(pt)即为词性pt对应的特征向量;hb(pt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hb(pt+1),由于这是一个序列化的计算模型,第tb+1个计算单元的输出h(pt+1)、 即为第t个计算单元的输入;

步骤2-1-2中使用了前向神经网络来计算得到所有标注类型的得分,整个前向神经网络的计算过程按如下公式进行:h=σ(W1x+b1),

o=W2h,

其中,W1、b1、W2是已训练好的模型参数矩阵,矩阵中每个元素的值均为实数值;x是输入向量,它由步骤2-1-1中所得的所有特征向量拼接而成,其维度为步骤2-1-1中生成的所有特征向量的维度之和,其每个元素的值均为实数值;h是神经网络的隐层向量,是中间计算结果单元;o是计算输出,是一个实值向量,其维度大小对应于步骤1-2中定义的标注过程中对每个词进行标注时所能选择的标注类型数,其中第g个值表示将当前步骤标为类型g的得分,该得分是一个实数值;W1x、W2h均为矩阵乘法操作;

步骤2-2包括如下步骤:

步骤2-2-1,给定前一个状态集合中的每个状态,按步骤2-1中的方式对所有标注类型进行打分,设定状态Sx的得分为score(Sx),标注类型typek的得分为score(typek),设定对所有标注类型都进行扩展,则扩展后将得到K个新的状态,表示为 K为所有标注类型总数,按如下公式计算第k个状态的对应得分其中,k取值为1~K,得分均为实数值,按步骤1-2中的方式确定候选标注类型,按候选标注类型将状态进行扩展,设定状态集合St中的状态按步骤1-2中的方式确定的候选标注类型有c(i)个,则对状态扩展后将得到c(i)个新状态,表示为步骤2-2-2,设定状态集合St有z个状态,z取值为自然数,将状态集合St中所有状态按步骤2-2-1中的方式进行扩展,所有扩展后的状态为步骤2-2-3,按柱搜索的方式从步骤2-2-2中得到的所有扩展后的状态中取出得分最高的m个状态,组成新的状态集合

说明书 :

一种基于状态转移与神经网络的汉语组块分析方法

技术领域

[0001] 本发明涉及一种利用计算机进行汉语浅层句法分析的方法,特别是一种利用基于状态转移与神经网络相结合的方式进行自动汉语组块分析的方法。

背景技术

[0002] 汉语句法分析是汉语信息处理中的一项基本任务,其广泛的应用需求吸引了大量相关研究从而促进了其相关技术的快速发展。完整的句法分析因其问题自身复杂性较高等
因素以致分析正确率较低、速度较慢,从而实用性受限。组块分析,又叫浅层句法分析,与以获得一个句子的完整句法树为目的的完整句法分析不同,其分析目标是识别句子中某些结
构相对简单、非嵌套的句子成分,例如非嵌套的名词短语、动词短语等。由于其识别目标是句子中非嵌套、不重叠的符合一定语法规定的短语成分,所以相对于完整句法分析而言组
块分析任务的复杂度较小,处理速度也更快,同时由于它可以作为机器翻译、完整句法分
析、信息抽取等诸多任务的前处理阶段,所以一直受到研究人员的关注。针对汉语的组块分析,随着汉语树库的出现以及有研究人员从中抽取了针对组块分析任务的数据集以来,相
关研究持续不断。
[0003] 在建模组块分析任务的方式中,将其看成序列化标注任务是一种常见手段。其工作过程是:针对待分析的句子,以词为单位,从左至右对每个词进行标注(即打标签),其中一种标注方式是将词标注成带类型(名词短语、动词短语、形容词短语等)的组块开始词、单独成块词,以及不带类型的组块结束词、组块内属词、组块外属词五种。当整个句子按这种方式标注完以后,再从中抽取完整的组块信息。本发明在建模汉语组块分析任务时也将其
看成序列化标注任务并采用前述的五类标注方式。
[0004] 基于统计的方法被广泛应用在组块分析任务中,常见做法是使用结构化学习中的经典模型来对其进行处理,如隐马尔可夫模型、条件随机场模型、基于动态规划的支持向量机模型等,现有的发明技术中,如微软在2007年申请的专利《中文组块分析的方法及系统》中,就使用了条件随机场模型来对其进行处理。但是这类方法因为其模型自身的原因导致
其对组块级别的特征使用受限,对于以整个句子为处理对象、需要更多考虑全局信息的组
块分析任务来说会有不小影响。为了缓解这类模型带来的影响,基于状态转移的方法是一
个选择,该方法在完整句法分析中使用较多,它具有高效、准确的特点。其工作过程为:针对待分析的句子,以词为单位,从左至右顺序读入词,对读入的每一个词进行标注操作,标注类型参考前述标注方式,每次标注操作的进行对应了一个定义在整个句子上的状态(句子
的一个状态记录了当前句子哪些词已被标注、每个已标注词对应的标注类型以及哪些词还
未标注)转移,而具体的标注类型的选择则由训练好的打分模型完成。由于在对某个词进行标注时,句子中该词左边所有词的标注类型已经确定,所以可以充分利用这部分已标注词
的信息来对当前词的标注进行指导,特别是利用该词左边已识别为组块的组块相关信息来
进行指导。为了更多地利用组块级别的信息特征,本发明采用基于状态转移的方式来进行
汉语组块分析。
[0005] 神经网络是一种常用的机器学习方法,它具有从一些基本原子特征自动学习特征组合方式的能力,这区别于需要使用者根据语言学相关等先验知识来设计大量任务相关的
模板的传统方法。神经网络在中文信息处理中被大量尝试,但目前为止在汉语组块分析中
还未见有被使用。神经网络的使用,可以省去人工定制大量组合特征模板的工作,同时可以借助神经网络强大的表达能力来自动地学习特征之间的组合。另一方面,在传统的组块分
析技术中,对每个词进行标注时所用的信息特征都是以当前词为基准的某个固定大小窗口
内的词或者词性信息,但在分析树库中的汉语句子后可以发现,许多对组块分析有用的信
息特征常常会在窗口以外,例如“《”“,》”等标点符号信息、“词、词、词、词…”等以顿号为间隔的文本模式信息,这类信息常常所跨范围较广,不容易纳入传统的组块分析技术中。为了充分利用这种信息,本发明使用了双向长短记忆神经网络来对句子的词和词性序列进行计
算,从而更多地捕获远距离的词和词性特征。

发明内容

[0006] 发明目的:本发明针对目前汉语组块分析技术中所用模型不能充分利用组块级别和远距离信息特征、且需要手动定制复杂的组合特征模板的缺点,提出一种基于状态转移
与神经网络的方法来缓解这方面的限制,提升汉语组块分析的准确度。
[0007] 为了解决上述技术问题,本发明公开了一种基于状态转移与神经网络的汉语组块分析方法以及关于分析过程中所使用模型参数训练方法的附加说明。
[0008] 本发明所述的基于状态转移与神经网络的汉语组块分析方法包括以下步骤:
[0009] 步骤1,计算机读取一个包含待分析句子的汉语文本文件,定义汉语组块的类型,对待分析句子进行分词并对每个词进行词性标注,进行词性标注时,根据当前句子状态确
定所能选择的词性标注类型;
[0010] 步骤2,利用基于状态转移和神经网络的方法对待分析句子进行汉语组块分析。
[0011] 其中,步骤1包括如下步骤:
[0012] 步骤1-1,采用在宾州树库中文版CTB(The Chinese Penn Treebank)4.0(该树库是宾夕法尼亚大学对于中文语料的一个带标注树库)的基础上定义的12种短语类型定义汉
语组块类型;组块类型由使用者根据其具体目标自行选择,传统的汉语组块分析任务一般
有两种具体的短语识别任务:一是只针对名词短语进行识别,二是针对在宾州树库中文版
CTB4.0的基础上定义的12种类型的组块进行识别。在实施例1中,选取了第二种方式,对这
12种短语类型的具体含义说明如表1所示:
[0013] 表1汉语组块类型说明
[0014]类型 含义 例子
ADJP 形容词短语 发展中/JJ国家/NN
ADVP 副词短语 普遍/AD使用/VV
CLP 类别型短语 港元/M与/CC美元/M
DNP 多重限定短语 的/DEG
DP 限定词短语 这/DT
DVP 地字短语 平等/VA和睦/VA地/DEV
LCP 方位短语 近年/NT来/LC
LST 序列短语 (/PU一/CD)/PU
NP 名词短语 公路/NN项目/NN
PP 介词短语 与/P整机厂/NN
QP 数量词短语 一/CD个/M
VP 动词短语 永远/AD盛开/VV
[0015] 其中,“国家/NN”中的“NN”是该词对应的词性,“NN”表示名词、“VV”表示动词等。
[0016] 步骤1-2,采用BIOES标注体系与步骤1-1中定义的汉语组块类型相结合的方式确定标注过程中对每个待标注词进行词性标注时所能选择的标注类型。将组块分析任务建模
成序列化标注任务以后,需要确定采用何种标注体系。在英文组块分析任务中,所采用的标注体系一般有BIO和BIOES两类,即将句子中的每个词标注以组块类型和BIO或BIOES的组
合。其中,在BIO标注方式中,B表示一个组块的开始,I表示一个组块的内部,O表示组块以外的其它位置;在BIOES标注方式中,B表示一个组块的开始,I表示一个组块的内部,E表示一个组块的末尾,O表示组块以外的其它位置,S表示一个词单独成组块。下面用一个已标注的句子为例来帮助说明BIOES标注体系的含义。首先,给出一个已按组块进行分块的句子:
[0017] [NP上海浦东][NP开发与法制建设][VP同步][。]
[0018] NP表示该组块是名词短语,VP表示该组块是动词短语,“。”表示该词不属于任何一个组块。该句子在用BIOES标注体系进行标注后的形式如下:
[0019] 上海_B-NP浦东_E-NP开发_B-NP与_I-NP法制_I-NP建设_E-NP同步_S-VP。_O需要说明的是,本发明中的标注将按照BIOES的体系进行。此外,组块类型和BIOES的组合并不是两者之间的完全组合,只有B和S与组块类型进行完全组合,即假设组块类型共有type1,
type2,…,typek共k种,则它们与B和S组合后,就有B-type1,B-type2,…,B-typek,S-type1,S-type2,…,S-typek共2k种,再加上I、O、S三种类型,所以一共有2k+3中标注类型,本发明中k=12,所以共有27种。上面的例句按这种方式标注后即为:
[0020] 上海_B-NP浦东_E开发_B-NP与_I法制_I建设_E同步_S-VP。_O
[0021] 此外,在标注过程中,对于某个词的候选标注类型生成还受一定规则制约,本发明中的制约如下:
[0022] 1.句子第一个词不能是I、E;
[0023] 2.类型为B-typex的词的后一个词不能为B-typey、O、S-typey;
[0024] 3.类型为I的词后一个词不能为B-typey、O、S-typey;
[0025] 4.类型为O的词后一个词不能为I、E;
[0026] 5.类型为E的词后不能为I、E;
[0027] 6.类型为S-typex的词后一个词不能为I、E。
[0028] 步骤1中计算机读取一个包含待分析句子的自然语言文本文件,在进行汉语组块分析时,要求的输入除了对句子本身已经分好词之外,还要完成对每个词进行词性标注。例如一个完整的句子输入如表2所示:
[0029] 表2一个完整的待分析句子输入
[0030]词 词性标注
法国 NR
国防 NN
部长 NN
莱奥塔尔 NR
1日 NT
说 VV
, PU
法国 NR
正在 AD
研究 VV
从 P
波黑 NR
撤军 VV
的 DEC
计划 NN
。 PU
[0031] 步骤2,对读取的每个句子利用基于状态转移和神经网络的方法进行组块分析。这部分操作在基于状态转移的大框架下进行,在基于状态转移的序列化标注方法中,针对每
一个句子,以词为单位,从左至右顺序读入词,每个词的读入都会引起当前句子状态的一次转移,句子的一个状态记录了当前句子哪些词已被标注、每个已标注词对应的标注类型以
及哪些词还未标注。如果针对每个词的标注是唯一的,那么在对句子中的每个词进行标注
后就得到了针对该句子的完整标注序列,其过程可以简单描述为:假设句子长度为n、初始状态为s1、对第t个词进行的标注为markt、对第t个词进行标注后的状态为st+1,则整个过程可简单简略描述为 整个句子对应的标注序列即为mark1,
mark2,…,markn,本发明中将这种标注方式叫做贪心搜索。但这种标注方式得到的针对整个句子的标注准确度较低,所以本发明采用了柱搜索的方法来完成对整个句子的标注。
[0032] 在详细说明柱搜索的方法之前,需要简单介绍一下完全搜索:完全搜索区别于贪心搜索的是,在搜索的过程中针对每个词进行标注时,不再只得到一个标注结果,而是得到一个标注结果集合(即状态集合),假设将在对第i个词进行标注之前句子处于的状态集合
表示为Si,故在对句子的第一个词进行标注之前句子的状态集合为S1,其中只有一个状态,表示为 在对第一个词进行标注时其候选标注类型由步骤1-2定义,假设针对状态集合S1
中的每个状态在对当前词进行标注时所能选的标注方式均为k个,则对状态 进行完全的k
种标注和扩展后得到的状态集合S2中有k个状态,表示为 (顺序按得分高低
2
进行排序);同理,在对第二个词进行标注时,将对状态集合S 中的每个状态进行k种扩
展,得到的新的状态集合将有k2个状态,表示为 以此类
推 ,在对第t个词进行扩展后就得到了对整个句子的完全标注状态集合
如果每次扩展操作(即针对此进行了何种标注)
都能保留在扩展后的新状态中,就可以从状态集合Sn+1中的每个状态出发回溯,还原一个针对该句子的完整标注序列,其中由Sn+1中得分最高的那个状态还原的序列就是该方法对该
句子的标注结果。使用这种搜索方法,将使状态集合大小快速增长,这在现实操作中是不可行的,所以本发明中采用了柱搜索的方式来减小每次扩展后的状态集合。柱搜索与完全搜
索不同的地方在于:在对前一个状态集合St-1中的所有状态进行扩展时,不管得到的新状态集合的状态数有多少个,都只保留得分最高的m(m的选取由使用者视具体任务而选择,一般m越大,得到的标注精度越高,但开销也越大,如在实施例1中选取的m为4)个,这样可以保证针对每个词的状态扩展操作完成后得到的新的状态集合的大小不超过m。同完全搜索一样,从状态集合Sn+1中得分最高的那个状态出发往前回溯,还原得到的对该句子的标注序列即
为该方法对该句子的标注结果。本发明中就采用了这种柱搜索方式。
[0033] 在整个步骤2中用n表示待分析句子的长度,步骤2包括如下步骤:
[0034] 步骤2-1,给定状态下(一个状态记录了当前句子中哪些词已完成标注及其已标注类型,同时记录了哪些词为为未标注词),在处理第t个词时对所有标注类型进行打分;此时给定的状态即为待分析句子前t-1个词已完成标注且已知其对应的标注类型,第t到第n个
词为未标注词以及第t个词为下一个待处理词;
[0035] 步骤2-2,给定状态集合St,在处理第t个词时对该状态集合中的每个状态 按步骤2-1中的方式对所有标注类型进行打分,该打分通过计算完成,将赋予每个标注类型一个实数值,此实数值称为该类型对应的得分,再按步骤1-2所述方式生成候选标注类型,按每个候选标注类型对词进行标注从而对该状态进行扩展,并按柱搜索的方式挑选得分最高的m
个新状态,得到新的状态集合St+1;
[0036] 步骤2-3,对t=1,2,…,n,执行步骤2-1和2-2,得到最终的目标状态集合Sn+1,并取出其中得分最高的状态 从该状态出发回溯得到得分最高的标注序列,此时所有词的类型标注都已完成,将该得分最高的标注序列还原为对应的组块分析结果,该结果即为当
前句子的分析结果。
[0037] 本发明中所述的针对每个词的状态转移操作即为在某个当前句子状态下,对读入的词进行的类别标注操作。在对第t个词进行标注时,给定前一个状态集合St中的某一个状态,所能进行标注的标注类型集合由步骤1-2定义,对候标注集合中每个标注进行打分的操作由一个前向神经网络来完成,使用神经网络对当前词在给定状态下所能进行标注的标注
类型进行打分的过程包括两个步骤:一是特征信息的生成,即神经网络输入的生成;二是利用神经网络对所有候选类别进行打分。步骤2-1具体包括如下步骤:
[0038] 步骤2-1-1,生成特征向量,特征向量包括基本信息特征向量和附加信息特征向量;
[0039] 步骤2-1-2,利用前向神经网络对步骤2-1-1中生成的特征向量输入进行计算得到所有候选标注类型的得分。
[0040] 首先要指出的是,在信息处理中,针对每一个特征的表示主要有两种方式,一种是one-hot表示,另一种是分布式表示。one-hot表示用一个很长的向量来表示一个特征,向量的长度为所有特征组成的特征词典的大小,向量的分量中只有该特征在特征词典中对应的位置为1,其他全为0;而分布式表示则是为每个特征赋予一个表示它的实值向量,向量的维度依任务需要自行设定。需要指出的是,这两种表示方式在本领域内被广泛使用,应为本领域技术人员所熟知,此处不展开说明。本发明采用的表示方式为分布式表示,即对每个特征赋予一个一定维度的实值向量,在实施例1中设定的特征维度大小为50。本发明中这部分输入的生成包括两个步骤,一是基本信息特征生成,二是附加信息特征的生成。在整个步骤2-
1-1中待分析句子中的所有词从左到右依次表示为w1,w2,…,wn,wn表示待分析句子中第n个词,n取值为自然数;待分析句子中所有词对应的词性从左到右依次表示为p1,p2,…,pn,pn表示待分析句子中第n个词对应的词性;一个特征*对应的特征向量表示为e(*),步骤2-1-1包括如下步骤:
[0041] 步骤2-1-1-1,生成基本信息特征向量。基本信息特征向量包括以当前待标注词所在位置为基准的一定窗口内的词和词性特征对应的特征向量,以及以当前待标注词所在位
置为基准的一定窗口内的已标注词所属类别特征对应的特征向量,具体过程如下:基本信
息特征中词特征向量包括:以当前待处理词为中心向左数第二个词对应的特征向量e(w-2)、以当前待处理词为中心向左数第一个词对应的特征向量e(w-1)、当前待处理词对应的特征
向量e(w0)、以当前待处理词为中心向右数第一个词对应的特征向量e(w1),以及以当前待处理词为中心向右数第二个词对应的特征向量e(w2);
[0042] 词性特征向量包括:以当前待处理词为中心向左数第二个词的词性对应的特征向量e(p-2)、以当前待处理词为中心向左数第一个词的词性对应的特征向量e(p-1)、当前待处理词的词性对应的特征向量e(p0)、以当前待处理词为中心向右数第一个词的词性对应的
特征向量e(p1)、以当前待处理词为中心向右数第二个词的词性对应的特征向量e(p2)、以当前待处理词为中心向左数第二个词和第一个词的词性组合对应的特征向量e(p-2p-1)、以当前待处理词为中心向左数第一个词和当前待处理词的词性组合对应的特征向量e(p-1p0)、
以当前待处理词为中心向右数第一个词和当前待处理词的词性组合对应的特征向量e
(p0p1)、以当前待处理词为中心向右数第二个词和第一个词的词性组合对应的特征向量e
(p1p2);
[0043] 在组块分析任务中,在每一步中对每个标注类型进行打分所用的基本特征一般包括以当前待标注词所在位置为基准的一定窗口内的词和词性特征、以当前待标注词所在位
置为基准的一定窗口内的已标注词所属类别特征。通常,当前的词被记作w0,左边第i个词被记作w-i,右边第i个词被记作wi;当前词的词性被记作p0,左边第i个词的词性被记作p-i,右边第i个词的词性被记作pi;已标注词所属类别特征与前面两种有一定差异,因为对于整个句子的所有词和词性信息是分析开始就知道的,所以窗口一般是以当前词为基准向两边
同时扩展,而由于标注过程是从左向右的,在标注一个待标注词时,只有当前词左边的词的标注类型是已知的,所以只能以当前词为基准向左扩展,记当前词左边第i个词已标注类型为t-i。i的选取根据所选择的窗口大小的不同而不同,如实施例1中选定的i的值为2(即窗口大小为5),其所对应的基本特征如表3、表4和表5所示:
[0044] 表3基本词特征
[0045]
[0046] 表4基本词性特征
[0047]
[0048] 表5词所属类别特征
[0049]
[0050] 需要说明的是,上述基于词和词性的特征为本领域技术人员所熟知,且被广泛使用,所以此处不再做更进一步的说明,具体可以参考下述参考文献:Chen W,Zhang Y,
Isahara H.An empirical study of Chinese chunking[C]//Proceedings of the 
COLING/ACLon Main conference poster sessions.Association for Computational 
Linguistics,2006:97-104.
[0051] 上述已标注词的类别特征与传统的如隐马尔科夫、条件随机场等模型中的意义相同,但使用方式有差异:本发明中将其作为与前述词和词性特征同等的特征来处理,而传统模型中利用动态规划的方式来处理,对比传统模型中i的增加将带来时间开销的快速增长,本发明中的基于状态转移的方式在i增加时时间开销增长甚微,这也是基于状态转移的方
式在融入这类特征时速度上的一个优势;
[0052] 步骤2-1-1-2,生成附加信息特征向量:附加信息特征向量包括以当前待标注词所在位置为基准的一定窗口内已标注组块相关的词特征向量和词性特征向量、使用双向长短
记忆神经网络模型计算的当前待标注位置的词特征向量和词性特征向量。
[0053] 步骤2-1-1-2包含如下步骤:
[0054] 步骤2-1-1-2-1,以当前待处理词为中心向左数第二个组块、第一个组块分别表示为c-2、c-1,组块ci的第一个词表示为start_word(ci),最后一个词表示为end_word(ci),i=-2,-1,语法中心词表示为head_word(ci),组块ci的第一个词的词性表示为start_POS
(ci)、最后一个词的词性表示为end_POS(ci),语法中心词的词性表示为head_POS(ci),生成以当前待标注词所在位置为基准的一定窗口内已标注组块相关的词特征向量和词性特征
向量:组块级别的词特征向量包括:以当前待处理词为中心向左数第二个组块的第一个词
的特征向量e(start_word(c-2))、以当前待处理词为中心向左数第二个组块的最后一个词
的特征向量e(end_word(c-2))、以当前待处理词为中心向左数第二个组块的语法中心词的
特征向量e(head_word(c-2))、以当前待处理词为中心向左数第一个组块的第一个词的特征向量e(start_word(c-1))、以当前待处理词为中心向左数第一个组块的最后一个词的特征
向量e(end_word(c-1))、以当前待处理词为中心向左数第一个组块的语法中心词的特征向
量e(head_word(c-1));
[0055] 组块级别的词性特征向量包括:以当前待处理词为中心向左数第二个组块的第一个词的词性的特征向量e(start_POS(c-2))、以当前待处理词为中心向左数第二个组块的最后一个词的词性的特征向量(end_POS(c-2))、以当前待处理词为中心向左数第二个组块的
语法中心词的词性的特征向量e(head_POS(c-2))、以当前待处理词为中心向左数第一个组
块的第一个词的词性的特征向量e(start_POS(c-1)、以当前待处理词为中心向左数第一个
组块的最后一个词的词性的特征向量e(end_POS(c-1))、以当前待处理词为中心向左数第一个组块的语法中心词的词性的特征向量e(head_POS(c-1));i的选取根据所选择的窗口大小的不同而不同,如实施例1中选定的i的值为2,其对应的组块级别的特征如表6所示:
[0056] 表6组块级别词与词性特征
[0057]
[0058] 需要说明的是,上述组块级别的特征在传统的条件随机场等模型下由于受马尔科夫假设的限制,所以没法像在本发明中这样被使用,但是在通过一种复杂且进行剪枝后的
动态规划算法中有被使用,具体可以参考以下文献:Zhou J,Qu W,Zhang F.Exploiting 
chunk-level features to improve phrase chunking[C]//Proceedings of the 
2012Joint Conference on Empirical Methods in Natural Language Processing and 
Computational Natural Language Learning.Association for Computational 
Linguistics,2012:557-567.
[0059] 步骤2-1-1-2-2,使用双向长短记忆神经网络模型计算生成当前待标注位置的词和词性信息特征向量:双向长短记忆神经网络模型的输入为待分析句子中的所有词以及待
分析句子中所有词对应的词性,输出为前向词特征向量、前向词性特征向量、后向词特征向量和后向词性特征向量。首先需要说明的是下面公式中所用的tanh是双曲函数,为一个实
值函数,其作用在一个向量上表示对向量中的每个元素都做此操作,得到一个与输入向量
维度相同的目标向量;σ是sigmod函数,为一个实值函数,其作用在一个向量上表示对向量中的每个元素都做此操作,得到一个与输入向量维度相同的目标向量;⊙是点乘运算,即将两个维度相同的向量按位做乘法得到一个相同维度的结果向量。这四种特征向量的计算过
程如下:
[0060] 前向词特征向量依次表示为hf(w1),hf(w2),…,hf(wn),hf(wt)(t=1,…,n)表示第t个前向词特征向量,其计算方式按如下公式进行:
[0061]
[0062]
[0063]
[0064]
[0065]
[0066] 其中,是已经训练(训练过程采用说明书中模型参数训练方法的
附加说明中的方式完成)好的模型参数矩阵,矩阵中每个元素的值均为实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;
[0067] 是第t个计算单元中的中间计算结果,均为实值向量;
[0068] e(wt)、hf(wt-1)、 是第t个计算单元的输入,均为实值向量,其中的e(wt)即为词wt对应的特征向量;hf(wt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅f
助计算结果,最终作为前向词特征向量的只有h (wt-1),由于这是一个序列化的计算模型,第t-1个计算单元的输出hf(wt-1)、 即为第t个计算单元的输入;
[0069] 等均为矩阵乘法操作。
[0070] 前向词性特征向量依次表示为hf(p2),…,hf(pn),hf(pt)(t=1,…,n)表示第t个前向词性特征向量,其计算方式按如下公式进行:
[0071]
[0072]
[0073]
[0074]
[0075]
[0076] 其中,是已经训练(训练过程采用说明书中模型参数训练方法的附加说
明中的方式完成)好的模型参数矩阵,矩阵中每个元素的值均为实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;
[0077] 是第t个计算单元中的中间计算结果,均为实值向量;
[0078] e(pt)、hf(pt-1)、 是第t个计算单元的输入,均为实值向量,其中的e(pt)即为词性pt对应的特征向量;hf(pt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hf(pt-1),由于这是一个序列化的计算模
型,第t-1个计算单元的输出hf(pt-1)、 即为第t个计算单元的输入;
[0079] 等均为矩阵乘法操作。
[0080] 后向词特征向量依次表示为hb(w1),hb(w2),…,hb(wn),hb(wt)(t=1,…,n)表示第t个后向词特征向量,其计算方式按如下公式进行:
[0081]
[0082]
[0083]
[0084]
[0085]
[0086] 其中,是已经训练(训练过程采用说明书中模型参数训练方法的
附加说明中的方式完成)好的模型参数矩阵,矩阵中每个元素的值均为实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;
[0087] 是第t个计算单元中的中间计算结果,均为实值向量;
[0088] e(wt)、hb(wt+1)、 是第t个计算单元的输入,均为实值向量,其中的e(wt)即为词wt对应的特征向量;hb(wt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的辅助计算结果,最终作为前向词特征向量的只有hb(wt-1),由于这是一个序列化的计算模型,第t+1个计算单元的输出hb(wt-1)、 即为第t个计算单元的输入;
[0089] 等均为矩阵乘法操作。
[0090] 后向词性特征向量依次表示为hb(p1),hb(p2),…,hb(pn),hb(pt)(t=1,…,n)表示第t个后向词性特征向量,,其计算方式按如下公式进行:
[0091]
[0092]
[0093]
[0094]
[0095]
[0096] 其中,是已经训练(训练过程采用说明书中模型参数训练方法的
附加说明中的方式完成)好的模型参数矩阵,矩阵中每个元素的值均为实数值,这组参数与t无关,即一个计算序列中的所有计算单元共享同一组参数;
[0097] 是第t个计算单元中的中间计算结果,均为实值向量;
[0098] e(pt)、hb(pt+1)、 是第t个计算单元的输入,均为实值向量,其中的e(pt)即为词性pt对应的特征向量;hb(pt)、 为第t个计算单元的输出, 为长短记忆神经网络模型的b
辅助计算结果,最终作为前向词特征向量的只有h (pt+1),由于这是一个序列化的计算模
b
型,第t+1个计算单元的输出h(pt+1)、 即为第t个计算单元的输入
[0099] 等均为矩阵乘法操作。
[0100] 为了充分利用句子中离当前待标注词更远距离的词串和词性串的模式信息,本发明采用双向长短记忆神经网络模型来计算当前待标注词所在位置的词和词性信息特征。具
体计算过程分前向和后向两步,前向从左向右,后向从右向左,计算方式一致,故此处仅详细说明前向计算过程:首先,假设句子长度为n,句子中的词从左到右依次表示为w1,w2,…,wn,其对应的特征向量依次为e(w1),e(w2),…e(wn);句子中的词性从左到右依次表示为p1,p2,…,pn,其对应的特征向量依次为e(p1),e(p2),…e(pn);另外将计算所得的前向词特征向量依次表示为hf(w1),hf(w2),…,hf(wn),将计算所得的前向词性特征向量依次表示为hf
(p1),hf(p2),…,hf(pn);需要说明的是,这些向量均为已经训练好的实值向量,它们的维度由使用者设定,如实施例1中wt和pt的维度设定为50,hf(wt)和hf(pt)的维度设定为25。
[0101] 步骤2-1-2中使用了前向神经网络来计算得到所有标注类型的得分,步骤2-1-1结束后,便得到了一个由步骤2-1-1中所述的所有特征对应的向量拼接而成的实值向量,其维度大小为前述所有特征向量的维度之和,这个向量作为前向神经网络的输入,整个前向神
经网络的计算过程按如下公式进行:
[0102] h=σ(W1x+b1),
[0103] o=W2h,
[0104] 其中,W1、b1、W2是已训练好的模型参数矩阵,矩阵中每个元素的值均为实数值;x是输入向量,它由步骤2-1-1中所得的所有特征向量拼接而成,其维度为步骤-1-1中生成的所有特性向量的维度之和,其每个元素的值均为实数值;h是神经网络的隐层向量,是中间计算结果单元,它是一个向量,其维度由事先定义好,如在实施例1中其维度大小为300;o是计算输出,是一个实值向量,其维度大小对应于步骤1-2中定义的标注过程中对每个词进行标注时所能选择的标注类型数,其中第g个值表示将当前步骤标为类型g的得分;W1x、W2h均为矩阵乘法操作。
[0105] 步骤2-2包括如下步骤:
[0106] 步骤2-2-1,给定前一个状态集合中的每个状态,按步骤2-1中的方式对所有标注类型进行打分。假设状态Sx的得分为score(Sx),标注类型typek的得分为score(typek),假设对所有标注类型都进行扩展,则扩展后将得到K个新的目标状态,表示为
K为所有标注类型总数,按如下公式计算第k个状态的对应得分
[0107]
[0108] 其中,k取值为1~K,这些得分均为实数值。按步骤1-2中的方式确定候选标注类t
型,按候选标注类型将状态 进行扩展,假设状态集合S中的状态按步骤1-2中的方式确定
的候选标注类型有c(i)个,则对状态扩展后将得到c(i)个新状态,表示为
[0109] 步骤2-2-2,假设状态集合St有z个状态,z取值为自然数,将状态集合St中所有状态按步骤2-2-1中的方式进行扩展,所有扩展后的状态为
[0110] 步骤2-2-3,按柱搜索的方式从步骤2-2-2中得到的所有扩展后的状态中取出得分最高的m个状态,组成新的状态集合
[0111] 有益效果:本发明中的汉语组块分析方法使用的基于状态转移的方法相比于被广泛使用的基于马尔科夫假设的方法可以更灵活地添加组块级别的特征,同时在对每个状态
的候选转移类型进行打分时采用的神经网络模型可以自动学到特征之间的组合方式,此外
双向长短记忆神经网络模型的利用引入了有用的附加信息特征,三者结合起来提高了汉语
组块分析的精确度。

附图说明

[0112] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0113] 图1是长短记忆神经网络计算单元示意图。
[0114] 图2是前向长短记忆神经网络计算序列网络结构示意图。
[0115] 图3是前向神经网络结构示意图。
[0116] 图4是本发明的流程图。

具体实施方式

[0117] 本发明提出了一种基于状态转移与神经网络的汉语组块分析方法。它在对句子中的每个词进行组块类型标注时,先根据已有信息构建相关信息特征,然后利用神经网络对
所有候选类别进行打分,然后执行状态转移操作。在现有汉语组块分析技术中,由于模型自身假设的原因导致对远距离特征的使用不够充分,并且要求手动设计复杂的特征模板,本
发明提出的方法有效缓解了这两个缺点。
[0118] 如图4所示,本发明公开了一种基于状态转移与神经网络的汉语组块分析方法,它既可以灵活地添加组块级别的特征,又可以使用神经网络模型自动学到特征之间的组合方
式,还通过双向长短记忆神经网络模型使用引入了有用的附加信息特征,进而提高了汉语
组块分析的精确度。
[0119] 本发明所述的完整基于状态转移与神经网络的汉语组块分析过程包括如下步骤:
[0120] 步骤1,计算机读取一个包含待分析句子的汉语文本文件,定义汉语组块的类型,对待分析句子进行分词并对每个词进行词性标注,进行词性标注时,根据当前句子状态确
定所能选择的词性标注类型;
[0121] 步骤2,对读取的每个句子利用基于状态转移和神经网络的方法进行组块分析。
[0122] 本发明所述的定义汉语组块类型和标注类型时包括如下步骤:
[0123] 步骤1-1,定义好要分析的组块类型。组块类型由使用者根据其具体目标自行选择,传统的汉语组块分析任务一般有两种具体的短语识别任务:一是只针对名词短语进行
识别,二是针对在宾州树库中文版CTB4.0的基础上定义的12种类型的组块进行识别;
[0124] 步骤1-2,确定标注过程中对每个词进行标注时所能选择的标注类型。将句子中的每个词标注以组块类型和BIO或BIOES的组合。
[0125] 首先假设所要处理的句子长度为n,定义句子的一个状态记录了当前句子哪些词已被标注、每个已标注词对应的标注类型以及哪些词还未标注,将在对第i个词进行标注之前句子处于的状态集合表示为Si,其中的状态表示为 所采用的柱搜索方法中柱的大小设
为m,其中的本发明所述的针对该句子的分析过程包括如下步骤:
[0126] 步骤3-1,给定状态下,在处理第t个词时对所有标注类型进行打分;
[0127] 步骤3-2,给定状态集合St,在处理第t个词时,针对该状态集合中的每个状态 按每个候选标注类型进行标注,对状态进行扩展,并按柱搜索的方式挑选得分最高的m个新状态,得到新的状态集合St+1;
[0128] 步骤3-3,对t=1,2,…,n,迭代执行步骤3-1和3-2,得到最终的目标状态集合Sn+1,并取出其中得分最高的状态 回溯得到该句子的整个标注序列。
[0129] 其中本发明所述的在对第t个词进行处理时,给定前一个状态集合St中的某一个状态,所能进行标注的标注类型集合由步骤1-2定义,对标注集合中每个标注进行打分的操作由一个前向神经网络来完成,使用神经网络对当前词在给定状态下所能进行标注的标注
类型进行打分的过程包括两个步骤:一是特征信息的生成,即神经网络输入的生成;二是利用神经网络对所有候选类别进行打分,步骤3-1具体包括如下步骤:
[0130] 步骤3-1-1,前向神经网络输入的生成;
[0131] 步骤3-1-2,如图3所示,利用前向神经网络对步骤3-1-1中生成的特征向量输入进行计算得到所有候选标注类型的得分。
[0132] 本发明所述的前向神经网络输入的生成包括两个步骤,一是基本信息特征生成,二是附加信息特征的生成。步骤3-1-1包括如下步骤:
[0133] 步骤3-1-1-1,生成基本信息特征。包括以当前待标注词所在位置为基准的一定窗口内的词和词性特征、以当前待标注词所在位置的一定窗口内的已标注词所属类别特征,
词特征有e(w-2),e(w-1),e(w0),e(w1),e(w2),它们分别表示以当前待处理词为中心向左数第二、第一个词、当前词、以当前词为中心向右数第一、第二个词对应的特征向量;词性特征有e(p-2),e(p-1),e(p0),e(p1),e(p2),e(p-2p-1),e(p-1p0),e(p0p1),e(p1p2),e(p-2p-1p0),e(p-1p0p1),e(p0p1p2),它们分别表示以当前待处理词为中心向左数第二、第一个词的词性、当前词的词性、以当前词为中心向右数第一、第二个词的词性、向左数第二和第一个词的词性组合、向左数第一和当前词的词性组合等对应的特征向量。这些特征向量均为已训练好
的实值向量。
[0134] 步骤3-1-1-2,生成附加信息特征,包括以下两个步骤:
[0135] 步骤3-1-1-2-1,生成以当前待标注词所在位置为基准的一定窗口内已标注组块相关的词和词性特征。组块级别的词特征有e(start_word(c-2)),e(end_word(c-2)),e
(head_word(c-2)),e(start_word(c-1),e(end_word(c-1)),e(head_word(c-1)),分别表示以当前待处理词为中心向左数第二个组块的第一个词、最后一个词、语法中心词、以当前词为中心向左数第一个组块的第一个词、最后一个词、语法中心词;组块级别的词性特征有e
(start_POS(c-2)),(end_POS(c-2)),e(head_POS(c-2)),e(start_POS(c-1),e(end_POS
(c-1)),e(head_POS(c-1)),分别表示以当前待处理词为中心向左数第二个组块的第一个词的词性、最后一个词的词性、语法中心词的词性、以当前词为中心向左数第一个组块的第一个词的词性、最后一个词的词性、语法中心词的词性。这些特征向量均为已训练好的实值向量;
[0136] 步骤3-1-1-2-2,生成使用双向长短记忆神经网络模型计算的当前待标注位置的词和词性信息特征。这一步的输入为句子中的所有词,从左到右依次表示为w1,w2,…,wn;以及句子中所有词对应的词性,从左到右依次表示为p1,p2,…,pn。输出为前向词特征向量,依次表示为hf(w1),hf(w2),…,hf(wn);前向词性特征向量,依次表示为为hf(p1),hf(p2),…,hf(pn);后向词特征向量,依次表示为hb(w1),hb(w2),…,hb(wn);后向词性特征向量,依次表示为hb(p1),hb(p2),…,hb(pn)。由于后向和前向相比只是计算方向上的差异,计算方式一样,f
所以此处只详细说明前向计算过程,针对每个h (x)(x可以为wt或pt(t=1,2,…n),只是输
入和计算参数不同,计算方式完全一致,简写为hf),按如下公式进行计算:
[0137] ft=σ(Wfhht-1+Wfxxt+Wfcct-1+bf),
[0138] it=σ(Wihht-1+Wixxt+Wicct-1+bi),
[0139] ct=ft⊙ct-1+it⊙tanh(Wchht-1+Wcxxt+bc),
[0140] ot=σ(Wohht-1+Woxxt+Wocct+bo),
[0141] ht=ot⊙tanh(ct),
[0142] 其中,Wfh、Wfx、Wfc、bf、Wih、Wix、Wic、bi、Wch、Wcx、bc、Woh、Wox、Woc、bo是已经训练(训练过程采用本发明中的分析方法结合极大似然训练数据集中的正确标注序列的方式实现)好的模型参数矩阵,矩阵中每个元素的值均为实数值,需要指出的是,这组参数与t无关,也就是说,一个计算序列中的所有计算单元共享同一组参数,因为本发明中涉及词和词性各自的
正向、逆向计算序列,所以共有4组参数;ft、it、ot是第t个计算单元中的中间计算结果,均为实值向量;ht-1、ct-1、xt是第t个计算单元的输入,均为实值向量,其中的xt即为e(wt)或e(pt);ct、ht为第t个计算单元的输出,但ct为长短记忆神经网络模型的辅助计算结果,最终f f
作为词或词性特征向量的只有ht,ht即为目标特征向量h (wt)或h(pt),需要指出的是,由于这是一个序列化的计算模型,第t-1个计算单元的输出ht-1、ct-1即为第t个计算单元的输入;
tanh是双曲函数,为一个实值函数,其作用在一个向量上表示对向量中的每个元素都做此
操作,得到一个与输入向量维度相同的目标向量;σ是sigmod函数,为一个实值函数,其作用在一个向量上表示对向量中的每个元素都做此操作,得到一个与输入向量维度相同的目标
向量;⊙是点乘运算,即将两个维度相同的向量按位做乘法得到一个相同维度的结果向量;
Wfhht-1、Wfxxt等均为矩阵乘法操作。
[0143] 步骤3-1-2,利用前向神经网络对步骤3-1-1中生成的特征向量输入进行计算得到所有标注类型的得分。步骤3-1结束后,便得到了一个由步骤3-1中所述的所有特征对应的
向量拼接而成的实值向量,其维度大小为前述所有特征向量的维度之和,这个向量作为前
向神经网络的输入,整个前向神经网络的计算过程按如下公式进行:
[0144] h=σ(W1x+b)
[0145] o=W2h
[0146] 其中,W1、b、W2是已训练好的模型参数矩阵,矩阵中每个元素的值均为实数值;x是输入向量,其每个元素的值均为实数值;o是计算输出,是一个实值向量,其维度大小对应于步骤1-2中定义的标注过程中对每个词进行标注时所能选择的标注类型数,其中第i个值表示将当前步骤标为类别i的得分;W1x、W2h均为矩阵乘法操作。
[0147] 步骤3-2,给定状态集合St,在处理第t个词时,针对该状态集合中的每个状态 按每个候选标注类型进行标注,对状态进行扩展,并按柱搜索的方式挑选得分最高的m个新状态,得到新的状态集合St+1。包括以下步骤:
[0148] 步骤3-2-1,给定前一个状态集合中的每个状态 按步骤3-1中的方式对所有标注类型进行打分,假设状态Sx的得分为score(Sx),标注类型typek的得分为score(typek),假设对所有类型都进行扩展的话,则扩展后将得到K(K为所有标注类型总数)个新的目标状
态,表示为 其对应得分按如下公式进行计算:
[0149]
[0150] 其中,这些得分均为实数值。然后按步骤1-2中的约束规则确定候选标注类型,按这些标注类型将状态 进行扩展,假设状态集合St中的某个状态 按步骤1-2中的约束规则
确定的候选标注类型有c(i)个,则对状态 扩展后将得到c(i)个新状态,表示为
[0151] 步骤3-2-2,将状态集合St(假设有m个状态)中所有状态按步骤3-2-1中的方式进行扩展,所有扩展后的状态为
[0152] 步骤3-2-3,从步骤3-2-2中得到的所有状态中取出得分最高的m个状态,组成新的状态集合
[0153] 步骤3-3,对t=1,2,…,n,执行步骤3-1和3-2,得到最终的目标状态集合Sn+1,并取出其中得分最高的状态 回溯得到该句子的整个标注序列,进而得到句子对应的组块分析结果。
[0154] 本发明所述的分析过程中所使用的模型参数训练方法的附加说明如下:
[0155] 从分析过程中的步骤2可以知道,本发明所述的分析过程中所用的的参数包括如下几个部分(后面叫这些参数为模型参数组):
[0156] 1、各个特征对应的特征向量,此处用e(*)表示,其中的*表示步骤2-1-1-1中的基本词特征和基本词性特征以及步骤2-1-1-2-1中的组块级别的词特征和词性特征,即训练
预料中出现的所有词和词性以及相邻两个词的组合和相邻两个词性的组合都对应一组特
征向量;
[0157] 2、步骤2-1-1-2-2中的计算前向词序列所用的神经网络参数
[0158] 3、步骤2-1-1-2-2中的计算后向词序列所用的神经网络参数
[0159] 4、步骤2-1-1-2-2中的计算前向词性序列所用的神经网络参数
[0160] 5、步骤2-1-1-2-2中的计算后向词性序列所用的神经网络参数
[0161] 6、步骤2-1-2中所用的前向神经网络参数W1、W2。
[0162] 训练过程采用极大似然训练数据集中的正确标注序列的、使用迭代方式实现。在训练开始之前,随机对模型参数组中的参数进行取值,例如实施例1和实施例2都按-0.1到
0.1之间的均匀分布随机采样取值。然后使用已标注数据集(假设数据集大小为D)dataest
={sent1,sent2,…,sentD}对参数进行训练:首先定义一个训练目标,该目标定义在整个数据集上,又称为损失函数,它是整个模型参数组中所有参数的函数,假设为L(dataset),针对每一个句子sentr的损失函数表示为loss(sentr)两者的定义与计算过程按下述方式进
行:
[0163] 在按分析过程中的步骤2中的方式处理句子的第t个词时,针对前一个状态集合中的每一个状态,按步骤2-2中的表示方法,假设表示为 则由步骤2-1的过程可以知道在当
前该状态下对第k个标注类型进行打分所得到的分数score(typek)实际上是模型参数组第
2~5组中所有参数(假设表示为Θ)、以及模型参数组第1组参数中当前该状态下按步骤2-
1-1-1和步骤2-1-1-2-1中取出的那些特征向量的一个复合函数。假设在在给定状态 处
理第t个时取出的所有特征向量整体表示为 因为此处要对整个句子的得分进行表
示,为了方便我们将在给定状态 处理第t个时对第k标注类型进行打分所得到的分数表
示为 则有:
[0164]
[0165] 其中的F为按步骤2-1的过程描述,由四个长短记忆神经网络和强项神经网络复合而成的复合函数,Θ为模型参数组第2~5组中所有参数。
[0166] 从整个步骤2可以知道,在按步骤2-3处理完一个句子之后,状态集合中每一个状态 的得分均为模型参数组第2~5组中所有参数
(假设表示为Θ)、以及第1组参数中在从一开始的状态 扩展到状态 的整个路径中处
理每个词时按步骤2-1-1-1和步骤2-1-1-2-1中取出的所有特征向量的一个复合函
数。假设对于状态集合Sn+1中的每一个状态 其从状态 扩展到状态 的过程
中所选的标注类型序列为 过程中所经历的状态序列为
( 即为 即为 ),则状态 的得分为:
[0167]
[0168] 因为训练句子都是已标注数据,即知道其正确的标注序列,假设状态集合Sn+1中的状态 对应正确的标注序列。定义针对该句子的损失函数:
[0169]
[0170] 其中的ex表示指数函数,e表示自然对数的常量。
[0171] 定义针对整个训练数据集的损失函数为:
[0172]
[0173] 其中的Θ,E表示该损失函数为模型参数组中参数的函数。
[0174] 整个训练过程的目标就是最小化以上损失函数,最小化以上损失函数并求得参数的方法有多种且为业界从业人员熟知,如实施例其中采用了随机梯度下降法来对其进行求
解。
[0175] 实施例1
[0176] 首先,本实施例中的模型参数先按照说明书中模型参数训练方法的附加说明中的方式在宾州树库中文版CTB(The Chinese Penn Treebank)4.0中的728个文件中(文件编号
从chtb_001.fid到chtb_899.ptb,需要注意的是该编号并不是连续都有,所以只有110个文件)的9978个句子上进行训练所得。
[0177] 本实施例利用本发明中的基于状态转移与神经网络的汉语组块分析方法对一个句子进行汉语组块分析的完整过程如下:
[0178] 步骤1-1,定义汉语组块类型,在宾州树库中文版CTB4.0的基础上定义了12种类型:ADJP,ADVP,CLP,DNP,DP,DVP,LCP,LST,NP,PP,QP,VP,其具体含义见说明书中的步骤1-
1;
[0179] 步骤1-2,确定标注过程中对每个词进行标注时所能选择的标注类型,采用BIOES体系。最终确定的标注类型共有B-ADJP,B-ADVP,B-CLP,B-DNP,B-DP,B-DVP,B-LCP,B-LST,B-NP,B-PP,B-QP,B-VP,ADJP,I,O,E,S-ADVP,S-CLP,S-DNP,S-DP,S-DVP,S-LCP,S-LST,S-NP,S-PP,S-QP,S-VP 27种;
[0180] 步骤2-1,计算机读取一个包含待分析句子的自然语言文本文件。为了方便说明,此处只读入一个句子“上海/NR浦东/NR开发/NN与/CC法制/NN建设/NN同步/VV”;
[0181] 步骤3,最开始,初始状态集合为S1,其中有一个状态,为 该状态即为初始句子,然后执行以下步骤;
[0182] 步骤3-1,处理第1个词“上海”,执行如下步骤:
[0183] 步骤3-1-1,生成前向网络的输入,执行如下步骤:
[0184] 步骤3-1-1-1,生成基本信息特征。因为是第一个词,向左数无单词,按一般做法,在其左边添加补充单词,假设为“word_start”,和补充词性,假设为“POS_start”,所以此处对应的词特征为w-2=“word_start”、w-1=“word_start”、w0=“上海”、w1=“浦东”、w2=“开发”,词性特征为p-2=“POS_start”、p-1=“POS_start”、p0=“NR”、p1=“NR”、p2=“NN”、p-2p-1=“POS_startPOS_start”、p-1p0=“POS_start NR”、p0p1=“NR NR”、p1p2=“NR NN”,然后取出这些特征对应的向量表示,在该实施例中,这些特征向量的维度全设为50,它们均为实值向量,例如e(w0)的前5项元素值为-0.0999、0.0599、0.0669、-0.0786、0.0527;
[0185] 步骤3-1-1-2,生成附加信息特征。执行如下步骤:
[0186] 步骤3-1-1-2-1,生成组块相关词和词性特征向量。因为这个词前面还没有已分析组块,也由补充词表示,分别为start_word(c-2)=“start_chunk_word_NULL”、end_word(c-2)=“end_chunk_word_NULL”、head_word(c-2)=“head_chunk_word_NULL”、start_word(c-1)=“start_chunk_word_NULL”、end_word(c-1)=“end_chunk_word_NULL”、head_word(c-1)=“head_chunk_word_NULL”、start_POS(c-2)=“start_chunk_POS_NULL”、end_POS(c-2)=“end_chunk_POS_NULL”、head_POS(c-2)=“head_chunk_POS_NULL”、start_POS(c-1)=“start_chunk_POS_NULL”、end_POS(c-1)=“end_chunk_POS_NULL”、head_POS(c-1)=“head_chunk_POS_NULL”,然后取出这些特征对应的向量表示,在该实施例中,这些特征向量的维度全设为50,它们均为实值向量;
[0187] 步骤3-1-1-2-2,如图1和图2所示,生成使用双向长短记忆神经网络模型计算的当前待标注位置的词和词性信息特征的特征向量。对于词特征向量,输入为句子中每个词对
应的向量表示,对于词性特征向量,输入为句子中每个词性对应的向量表示,这些向量表示与步骤3-1-1-1中对应的相同词或词性的向量表示一致,例如e(w0)(w0=“上海”)的前5项元素值仍为-0.0999、0.0599、0.0669、-0.0786、0.0527;对于长短记忆模型中的参数,其取值均为实数值,例如用于计算前向词向量的矩阵Wfh中第一行中的前5个参数值为0.13637、
0.11527、-0.06217、-0.19870、0.03157;然后计算得到各个词和词性对应的特征向量hf和hb,它们均为实值向量,本实施例中所设置的hf和hb的维度均为25。
[0188] 步骤3-1-2,拼接步骤3-1-1中得到的所有向量,得到一个实值向量,本实施例中共为14×50+12×50+4×25=1400维,然后得到所有27种标注类型各自的得分,本实施例中各个标注类型各自的得分分别为0.7898(B-ADJP),0.4961(ADVP),-0.1281(B-CLP),-0.0817
(B-DNP),0.5265(B-DP),-0.0789(B-DVP),0.4362(B-LCP),-0.2250(B-LST),2.9887(B-
NP),-0.0726(B-PP),0.1320(B-QP),0.4636(B-VP),1.6294(E),1.8871(I),-0.3904(O),
0.6985(S-ADJP),-0.1703(S-ADVP),-0.3287(S-CLP),0.1734(S-DNP),0.5694(S-DP),
0.0990(S-DVP),0.0902(S-LCP),-1.0364(S-LST),2.0767(S-NP),-0.0179(S-PP),-0.0606
(S-QP),0.0941(S-VP);
[0189] 步骤3-2-1,当前给定的状态集合为S1,其中仅有一个状态,为 且有按说明书中步骤1-2中的约束规则1去掉步骤3-1-2中得到的标注类型I和E
(score(I)=1.8871,score(E)=1.6294),将状态 按剩下的每个标注类型进行
扩展并计算其对应的目标状态的得分 因为 所以有
例如有
[0190] 步骤3-2-2,将状态S1中每个状态都按步骤3-2-1中的方式进行扩展。因为其中只有 所以就得到27-2=25个新状态;
[0191] 步骤3-2-3,从这25个新状态中挑选4个得分最高的状态组成新的状态集合。这4个得分最高的新状态依次为
由它们组成新的状态集合S2,它包
含四个新状态,分别为:
[0192] 1. 表示“上海/NR_B-NP浦东/NR开发/NN与/CC法制/NN建设/NN同步/VV”,得分2.9887;
[0193] 2. 表示“上海/NR_S-NP浦东/NR开发/NN与/CC法制/NN建设/NN同步/VV”,得分2.0767;
[0194] 3. 表示“上海/NR_S-ADJP浦东/NR开发/NN与/CC法制/NN建设/NN同步/VV”,得分0.7898;
[0195] 4. 表示“上海/NR_B-QP浦东/NR开发/NN与/CC法制/NN建设/NN同步/VV”,得分0.6985。
[0196] 步骤3-3,按步骤3-1和3-2中的方式处理剩下的词语,得到最终的目标状态集合S8,它包含四个状态,分别为:
[0197] 1. 表示“上海/NR_B-NP浦东/NR_E开发/NN_B-NP与/CC_I法制/NN_I建设/NN_E同步/VV_S-VP”,得分24.6169;
[0198] 2. 表示“上海/NR_B-NP浦东/NR_E开发/NN_B-NP与/CC_I法制/NN_E建设/NN_S-VP同步/VV_S-VP”,得分20.2407;
[0199] 3. 表示“上海/NR_B-NP浦东/NR_E开发/NN_B-NP与/CC_I法制/NN_I建设/NN_E同步/VV_B-VP”,得分19.7653;
[0200] 4. 表示“上海/NR_B-NP浦东/NR_E开发/NN_B-NP与/CC_I法制/NN_I建设/NN_E同步/VV_O”,得分19.6299。
[0201] 取出其中得分最高的状态 回溯得到整个句子的标注序列为:
[0202]
[0203] 其对应组块分析结果即为[NP上海浦东][NP开发与法制建设][VP同步]。
[0204] 实施例2
[0205] 本发明所用的算法全部使用C++语言编写实现。该实施例实验所采用的机型为:Intel(R)Core(TM)i7-5930K处理器,主频为3.50GHz,内存为64G。首先,本实施例中的模型参数先按照说明书中模型参数训练方法的附加说明中的方式在宾州树库中文版CTB(The 
Chinese Penn Treebank)4.0中的728个文件中(文件编号从chtb_001.fid到chtb_
899.ptb,需要注意的是该编号并不是连续都有,所以只有110个文件)的9978个句子上进行训练所得。实验测试所用数据采用了110个文件中(文件编号从chtb_900.fid到chtb_
1078.ptb,需要注意的是该编号并不是连续都有,所以只有110个文件)的5290个句子进行
组块分析,实验结果如表7所示:
[0206] 表7实验结果说明
[0207]
[0208] 其中的MBL(Memory-based  learning)为基于记忆的学习方法、TBL(Transformation-based learning)为基于转换的学习方法、CRF(Conditional Random 
Field)为条件随机场学习方法、SVM(Support Vector Machin)为支持向量机学习方法,这
四种为传统的处理该任务的常用机器学习算法。需要说明的是,在该数据集上进行评测是
评价中文组块分析方法的一个常用方式。可以看出,本发明中的方法在该数据集上取得了
较高的F1-score值,说明了该方法的有效性。
[0209] 此处对F1-score的计算方式进行说明:因为该测试集是已标注数据集,所以是知道正确标注结果的,假设对整个数据集而言,所有组块组成的集合S(gold),其大小为count(gold);在对数据集中的每个句子按实施例1中的方式进行组块分析以后,取出所有分析结果中的组块组成预测结果集合S(predict),假设其大小为count(predict);S(gold)和S
(predict)中相同的组块组成的集合为S(correct),其大小为count(correct);假设预测准确度表示为precision,预测召回率表示为recall,则各个值的计算按如下公式进行:
[0210]
[0211]
[0212]