本发明涉及自然语言处理技术领域,具体涉及一种基于深度学习的中文分词方法。
背景技术
当前大数据环境下,随着物联网数据感知、数据云计算、三网融合以及移动互联网的迅速发展,数据,尤其是非结构化文本的数据量以指数级别迅猛增长,并呈现类型多样化、异构化、信息碎片化和价值密度低等特征。数据的快速膨胀对信息的自动处理带来了巨大挑战,如何高效、准确地处理海量文本,抽取出有价值的信息,成为自然语言处理(naturallanguageprocessing,nlp)的重要课题。
在自然语言处理领域,特别是中文自然语言处理中,分词是一项重要的基准任务,其结果性能的好坏将直接影响到后续机器翻译、情感分析、自动摘要生成、信息检索等语用任务的最终性能。然而由于中文自身的句法和语法特殊性,直接将英语等语言的处理技术应用到中文并不能取得预期的理想效果。传统的中文分词方法分为基于字符串匹配和基于统计两种,基于字符串匹配的分词按照一定规则扫描句子,逐个查找词库进行分词,统计学的方法运用统计语言模型和无监督或半监督的学习算法得出最优的切分结果。诸如此类的方法虽然取得了一定的效果,但大多是面向特定领域任务的,并且需要较强的人工干预进行特征发现,这种干预不仅会导致对词典复杂的运行时依赖关系,而且要求研究人员须具备专业的语言学知识。
深度学习能够利用深层神经网络自动学习出数据表示,为数据构建一种具有更强决策能力、洞察发现力和流程化能力的统一内部表示,形成对数据事实的统一理解,在保留语义信息的基础上降低分布式向量的维度,极大地减少了训练时长,提升了系统性能。
早期基于深度学习的中文分词任务使用简单的反馈神经网络对训练序列中的每个字进行标注,这种方法仅获取固定窗口内的上下文信息,无法很好的学习到数据与之前数据的关联。
递归神经网络,能够通过累积历史记忆,更充分地利用上下文关系,自动学习到更复杂的特征,但在实践中发现递归神经网络存在梯度爆炸和梯度消失的问题,这使得它面临着不能很好处理长距离历史记忆的问题。
鉴于此,确有必要发明一种基于深度学习的中文分词方法,以解决上述问题。
技术实现要素:
本发明的目的是提供一种基于深度学习的中文分词方法,该方法具有序列级别的分词能力。
为了实现上述目的,本发明采用如下技术方案:一种基于深度学习的中文分词方法,包括如下步骤:
s1,对大规模语料集d进行字面字频统计,基于连续词袋模型和层级归一化训练方法,将语料集d中的每个字初始化为字面向量,将获取得到的字面向量按索引保存到字典v中;
s2,将训练语料逐句转化为固定长度的向量,送入深度学习模型中,并对字典v中的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量;
s3,对每个训练句,在逐字进行训练时,根据预设的最大词长切分出所有以当前目标字结尾的候选词,将精化后的特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词。
作为本发明进一步改进的技术方案,步骤s1具体包括:
s11,提取每个汉字的基本特征,通过遍历语料集d进行字典v的构建,字典v面向训练语料记录字的字面、字频和对应的字嵌入向量;
s12,字典v基于字频构建一棵完全的huffman树,字典v中的字都处于树的叶子结点,通过辅助的hash表建立快速索引与查找机制;
s13,基于连续词袋模型和层级归一化的思想将语料集d中的每个字初始化为字面向量,并构造得出系统目标函数
其中,目标字ω为窗口中心,lω为从根结点到目标字ω的路径,dω为从根结点到目标字ω的编码,xω为目标字ω窗口内的上下文字面向量均值,
s14,定义训练以对路径结点的遍历为一个迭代周期,训练在一个迭代周期内以梯度
其中,μ表示学习率。
作为本发明进一步改进的技术方案,步骤s2具体包括:
s21,对于当前序列时刻t,根据索引从字典v执行查找表操作,获取目标字ω的初始向量
s22,对目标字ω的窗口上下文,根据索引取出目标字ω窗口内上下文的初始向量
s23,对于当前序列时刻t,使用门限组合神经网络方法,依照步骤s22的方法计算得到前1~t-1时刻隐态的选择性历史输出
s24,在当前序列时刻t,以目标字ω的初始向量
s25,对当前序列时刻t上的历史特征输出
其中,w(o)∈rd*2d与偏置向量b(o)∈rd为各个当前序列时刻上的共享参数;
s26,使用训练集β逐句逐字查表获取融入上下文语义的精化字向量
其中,ayi,yi+1为状态转移矩阵,输出的标注序列选择使用{bies}标记规则集,其中b表示是一个词的第一个字,i表示是一个词中间的字,e表示是一个词的最后一个字,s表示是单字成词的,将{bies}标记规则集与词性标注标签组合以得到字符序列中的最佳标签转移矩阵
作为本发明进一步改进的技术方案,门限组合神经网络方法包括如下步骤:
步骤1,定义有w个需要组合的字符向量,分别为v1,v2…vw,其中v1,v2…vw∈rd,定义权值矩阵w(r)∈rd*d和偏置向量b(r)∈rd为共享参数,定义重置门rl,通过重置门rl计算组合记忆的概率,重置门rl的计算公式为:
rl=σ(w(r)·vl+b(r))
其中,1≤l≤w;
步骤2,在字符组合中,使用重置门rl计算各个字符向量v1,v2…vw聚集成目标词所产生的语义特征
其中,权值矩阵w(l)∈rd*d和偏置向量b(l)∈rd为共享参数;
步骤3,定义更新门zl(1≤l≤w+1)为d维的归一化向量,用于表达融合各个字符向量v1,v2…vw和语义特征
其中,使用因子矩阵w(z)∈rd*d作为共享参数;
步骤4,利用更新门zl对字符向量v1,v2…vw和语义特征
其中,1≤l≤w+1。
作为本发明进一步改进的技术方案,步骤s22具体包括:
s22.1定义重置门rl,计算对目标字ω的影响概率:
其中,1≤l≤w,权值矩阵w(r)∈rd*d和偏置向量b(r)∈rd为各个字符向量间的共享参数;
s22.2,利用重置门rl,计算窗口内各个字符向量对目标字ω的聚集影响的语义特征
其中,
s22.3,定义更新门zl(1≤l≤w+1)为d维的归一化向量,用于表达融合各个字符向量v1,v2…vw和语义特征
其中,因子矩阵w(z)∈rd*d为共享参数;
s22.4,利用更新门zl融合目标字ω窗口内上下文的初始向量
其中,1≤l≤w。
作为本发明进一步改进的技术方案,在步骤s24中,送入深度学习模型后包括如下步骤:
步骤a1,使用门限组合神经网络方法,执行对当前输入vt的窗口上下文环境内字符序列的组合计算,得到窗口上下文的组合向量,记为
步骤a2,使用门限组合神经网络方法,执行对当前序列时刻t之前所有历史隐态输出的组合计算,得到历史隐态输出,记为
步骤a3,在序列遍历的每一个当前序列时刻t上,定义一个重置门rt计算历史隐态输出
其中,权值矩阵w(r)∈rd*d与偏置向量b(r)∈rd为各个当前序列时刻上的共享参数;
步骤a4,在序列遍历的每一个当前序列时刻t上,对当前输入vt定义一个更新门zt用以计算在历史隐态输出
其中,权值矩阵w(z)∈rd*d与偏置向量b(z)∈rd为各个当前序列时刻上的共享参数;
步骤a5,在序列遍历的每一个当前序列时刻t上,对当前输入vt通过重置门rt强化在历史隐态输出
其中,权值矩阵w(c)∈rd*d与偏置向量b(c)∈rd为各个当前序列时刻上的共享参数;
步骤a6,在序列遍历的每一个当前序列时刻t上,通过更新门zt计算出当前输入vt受历史隐态输出
其中,zt为更新门。
作为本发明进一步改进的技术方案,步骤s3具体包括:
s31,在每一个当前序列时刻t上,根据预设的最大词长切分出所有以当前目标字结尾的候选词,对于每一个候选词,查表获取候选词中各字的特征向量
其中,1≤l≤l,l为当前候选词中包含的字符数;
s32,使用门限组合网络方法,将候选词包含的字符向量vl融合为一个候选词向量
s33,将融合好的候选词向量选词向量
s34,将候选词向量
s35,在序列遍历的每一个当前序列时刻t上,计算出隐态输出ht;
s36,以产生的ht作为输入,使用tanh激活函数为t+1时刻可能产生的候选分词提供预测,预测值pt+1为:
pt+1=tanh(w(p)·ht+b(p))
其中,w(p)∈rd*d与偏置向量b(p)∈rd为各个当前序列时刻上的共享参数;
s37,将候选词向量
linkscore(yt+1)=pt+1·yt+1;
s38,设置集束宽度k,在每一步取得分最高的k个结果保留,新的输入在保留的分割上继续操作,利用完整的分割历史,直接对分词结果建模,定义经过深度学习模型预测产生词序列y[1:m],切分的词序列得分函数构造为:
s39,将给定的字符序列xi的正确分词序列表示为yi,定义用于预测分段句子的结构化间隔损失来构造损失函数,反向更新参数。。
作为本发明进一步改进的技术方案,步骤s35具体包括:
s35.1,在序列遍历的每一个当前序列时刻t上,定义一个重置门rt,计算历史隐态输出
其中,权值矩阵
s35.2,在序列遍历的每一个当前序列时刻t上,对当前输入候选词向量
其中,权值矩阵
s35.3,在序列遍历的每一个当前序列时刻t上,对当前输入候选词向量
其中,权值矩阵
s35.4,在序列遍历的每一个当前序列时刻t上,通过更新门zt计算出当前输入候选词向量
作为本发明进一步改进的技术方案,步骤s39具体包括如下步骤:
s39.1,对于给定的训练句序列sen[1:n],经过模型预测产生词序列y[1:m],分词后的词序列得分函数为:
s39.2,训练采用最大间隔法,将给定的训练句序列sen[1:n]正确的分词序列表示为y(i),t,模型预测的分词序列表示为
其中,μ为衰减参数;
s39.3给定训练集β,加入一个2范数项的损失函数,通过损失函数,反向更新参数:
其中:
本发明的有益效果是:本发明通过初始化每个训练字的字面向量,使用深度学习模型抓取训练字携带的历史特征、未来特征和字性特征,基于门限组合神经网络方法精化分布式向量以表征相应的候选词,将中文分词重新形式化为直接分割学习任务,直接评估不同分词句子的相对可能性,然后搜索分数最高的分词序列,从而获得更多序列级别的分词能力。
附图说明
图1为本发明基于深度学习的中文分词方法的流程示意图。
图2为本发明中门限组合神经网络方法的架构示意图。
图3为本发明中改进型ltsm模型的架构示意图。
图4为本发明中crf层向量精化架构图。
图5为本发明中基于动态规划的集束搜索算法示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施方式对本发明进行详细描述。
如图1所示,一种基于深度学习的中文分词方法,包括如下步骤:
s1,对大规模语料集d进行字面字频统计,基于连续词袋模型(continuousbag-of-words,cbow)和层级归一化(hierarchicalsoftmax,hs)训练方法,将语料集d中的每个字初始化为字面向量,将获取得到的字面向量按索引保存到字典v中;
s2,将训练语料逐句转化为固定长度的向量,送入深度学习模型中,在此,深度学习模型选择改进型lstm模型,并对字典v中的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量;
s3,对每个训练句,在逐字进行训练时,根据预设的最大词长切分出所有以当前目标字结尾的候选词,将精化后的特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词。
其中,步骤s1具体包括以下步骤:
s11,提取每个汉字的基本特征,通过遍历语料集d进行字典v的构建,字典v面向训练语料记录字的字面、字频和对应的字嵌入向量;
s12,字典v基于字频构建一棵完全的huffman树,字典v中的字都处于树的叶子结点,通过辅助的hash表建立快速索引与查找机制;
s13,基于连续词袋模型和层级归一化的思想将语料集d中的每个字初始化为字面向量,并构造得出系统目标函数
其中,目标字ω为窗口中心,lω为从根结点到目标字ω的路径,dω为从根结点到目标字ω的编码,xω为目标字ω窗口内的上下文字面向量均值,
s14,定义训练以对路径结点的遍历为一个迭代周期,训练在一个迭代周期内以梯度
其中,μ表示学习率,训练中依据梯度变化率做出适当调整。
其中,步骤s13具体为:将语料集d中的语料按句输入,以一个动态可变窗口对训练句s做顺序遍历,窗口中心为目标字ω,窗口内的其它字构成了目标字ω的上下文环境context(ω),对于每一个训练样本(ω|context(ω)),都在huffman树中预统计了从根结点到目标字ω的路径lω和编码dω,训练以对路径结点的遍历为一个迭代周期,以目标字ω窗口内的上下文字面向量均值xω为输入,以如下式所示的sigmoid激活函数,以梯度下降法更迭参数θ,计算上下文环境context(ω)对目标字ω的语义影响:
遍历中,路径上的每个分支结点都视为一个隐式二分类器,通过判定其huffman编码中的每一个分量
其中,目标字ω为窗口中心,lω为从根结点到目标字ω的路径,dω为从根结点到目标字ω的编码,xω为以目标字ω窗口内的上下文字面向量均值。
步骤s2具体包括如下步骤:
s21,对于当前序列时刻t,根据索引从字典v执行查找表操作,获取目标字ω的初始向量
s22,对目标字ω的窗口上下文,根据索引取出目标字ω上下文窗口内的初始向量
s23,对于当前序列时刻t,使用门限组合神经网络方法,依照步骤s22的方法计算得到前1~t-1时刻隐态的选择性历史输出
s24,在当前序列时刻t,以目标字ω的初始向量
s25,对当前序列时刻t上的历史特征输出
其中,w(o)∈rd*2d与偏置向量b(o)∈rd为各个当前序列时刻上的共享参数;
s26,使用训练集β逐句逐字查表获取融入上下文语义的精化字向量
其中,ayi,yi+1为状态转移矩阵;
输出的标注序列中的字位标签选择使用{bies}标记规则集,其中b表示是一个词的第一个字,i表示是一个词中间的字,e表示是一个词的最后一个字,s表示是单字成词的,将{bies}标记规则集与词性标注标签组合(例如s-v表示单字成词的动词)以得到字符序列中的最佳标签转移矩阵
其中,步骤s22中获得组合向量
s22.1定义重置门rl,计算对目标字ω的影响概率:
其中,1≤l≤w,权值矩阵w(r)∈rd*d和偏置向量b(r)∈rd为各个字符向量间的共享参数;
s22.2,利用重置门rl,计算窗口内各个字符向量对目标字ω的聚集影响的语义特征
其中,
s22.3,定义更新门zl(1≤l≤w+1)为d维的归一化向量,用于表达融合各个字符向量v1,v2…vw和语义特征
其中,
s22.4,利用更新门zl融合目标字ω窗口内上下文的初始向量
其中,1≤l≤w。
如图2所示,步骤s22和s23中所提到的门限组合神经网络方法包括如下步骤:
步骤1,定义字符组中有w个需要组合的字符向量,分别为v1,v2…vw,其中v1,v2…vw∈rd,定义权值矩阵w(r)∈rd*d和偏置向量b(r)∈rd为共享参数,定义重置门rl,通过重置门rl计算组合记忆的概率,重置门rl的计算公式为:
rl=σ(w(r)·vl+b(r))
其中,1≤l≤w;
步骤2,在字符组合中,使用重置门rl计算各个字符向量v1,v2…vw聚集成目标词所产生的语义特征
其中,权值矩阵w(l)∈rd*d和偏置向量b(l)∈rd为共享参数;
步骤3,定义更新门zl(1≤l≤w+1)为d维的归一化向量,用于表达融合各个字符向量v1,v2…vw和语义特征
其中,使用因子矩阵w(z)∈rd*d作为共享参数;
步骤4,利用更新门zl对字符向量v1,v2…vw和语义特征
其中,1≤l≤w+1。
如图3所示,步骤s24中所说的改进型lstm模型,用于在序列标注问题的顺序遍历中抓取历史记忆信息,包括如下步骤:
步骤a1,使用门限组合神经网络方法,执行对当前输入vt的窗口上下文环境内字符序列的组合计算,得到窗口上下文的组合向量,记为
步骤a2,使用门限组合神经网络方法,执行对当前序列时刻t之前所有历史隐态输出的组合计算,得到历史隐态输出,记为
步骤a3,在序列遍历的每一个当前序列时刻t上,定义一个重置门rt计算历史隐态输出
其中,权值矩阵w(r)∈rd*d与偏置向量b(r)∈rd为各个当前序列时刻上的共享参数;
步骤a4,在序列遍历的每一个当前序列时刻t上,对当前输入vt定义一个更新门zt用以计算在历史隐态输出
其中,权值矩阵w(z)∈rd*d与偏置向量b(z)∈rd为各个当前序列时刻上的共享参数;
步骤a5,在序列遍历的每一个当前序列时刻t上,对当前输入vt通过重置门rt强化在历史隐态输出
其中,权值矩阵w(c)∈rd*d与偏置向量b(c)∈rd为各个当前序列时刻上的共享参数;
步骤a6,在序列遍历的每一个当前序列时刻t上,通过更新门zt计算出当前输入vt受历史隐态输出
另外,步骤s24中,在前向改进型lstm过程中,首先,定义一个重置门
其中,权值矩阵w(r)∈rd*d与偏置向量b(r)∈rd为各个当前序列时刻上的共享参数;
然后,定义一个更新门
其中,权值矩阵w(z)∈rd*d与偏置向量b(z)∈rd为各个当前序列时刻上的共享参数;
接着,对当前输入的目标字
其中,权值矩阵w(c)∈rd*d与偏置向量b(c)∈rd为各个当前序列时刻上的共享参数;
最后,更新门
后向改进型lstm过程与前向类似,首先,定义一个重置门
其中,权值矩阵w(r)∈rd*d与偏置向量b(r)∈rd为各个当前序列时刻上的共享参数;
然后,定义一个更新门
其中,权值矩阵w(z)∈rd*d与偏置向量b(z)∈rd为各个当前序列时刻上的共享参数;
接着,对当前输入的目标字
其中,权值矩阵w(c)∈rd*d与偏置向量b(c)∈rd为各个当前序列时刻上的共享参数;
最后,更新门
步骤s3具体包括:
s31,在每一个当前序列时刻t上,根据预设的最大词长切分出所有以当前目标字结尾的候选词,对于每一个候选词,查表获取候选词中各字融入了上下文语义的特征向量
其中,1≤l≤l,l为当前候选词中包含的字符数;
s32,使用门限组合网络方法,将候选词包含的字符向量vl融合为一个候选词向量
s33,将融合好的候选词向量
s34,将候选词向量
s35,在序列遍历的每一个当前序列时刻t上,计算出隐态输出ht;
s36,以产生的ht作为输入,使用tanh激活函数为t+1时刻可能产生的候选分词提供预测,预测值pt+1为:
pt+1=tanh(w(p)·ht+b(p))
其中,w(p)∈rd*d与偏置向量b(p)∈rd为各个当前序列时刻上的共享参数;
s37,将候选词向量
linkscore(yt+1)=pt+1·yt+1;
s38,设置集束宽度k,在每一步取得分最高的k个结果保留,新的输入在保留的分割上继续操作,利用完整的分割历史,直接对分词结果建模,定义经过改进型lstm模型预测产生词序列y[1:m],切分的词序列得分函数构造为:
s39,将给定的字符序列xi的正确分词序列表示为yi,定义用于预测分段句子的结构化间隔损失。
其中,步骤s35具体包括:
s35.1,在序列遍历的每一个当前序列时刻t上,定义一个重置门rt,计算历史隐态输出
其中,权值矩阵
s35.2,在序列遍历的每一个当前序列时刻t上,对当前输入候选词向量
其中,权值矩阵
s35.3,在序列遍历的每一个当前序列时刻t上,对当前输入候选词向量
其中,权值矩阵
s35.4,在序列遍历的每一个当前序列时刻t上,通过更新门zt计算出当前输入候选词向量
步骤s39具体包括如下步骤:
s39.1,对于给定的训练句序列sen[1:n],经过模型预测产生词序列y[1:m],分词后的词序列得分函数为:
s39.2,训练采用最大间隔法,将给定的训练句序列sen[1:n]正确的分词序列表示为y(i),t,模型预测的分词序列表示为
其中,μ为衰减参数,用于调节损失函数值;
s39.3给定训练集β,加入一个2范数项的损失函数,通过损失函数,反向更新参数:
其中:
实施例1
一种基于深度学习的中文分词方法,包括如下步骤:
步骤1:对大规模语料集d进行字面字频统计,基于cbow模型和hs训练方法,将语料集d中的每个字初始化为基本分布式字面向量,将获取到的字面向量按索引保存到字典v中。
步骤2:将训练语料逐句转化为固定长度的向量,送入改进的双向lstm模型中,通过训练该双向lstm模型中的参数,对字典v中字符级别的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量。
步骤3:对每个训练句,在逐字进行训练时,使用全切分的思想在最大词长范围内切分出所有以当前字结尾的候选词,将精化后的字符级别特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词。
具体的,第一步提取每个汉字的基本特征,通过遍历大规模语料集d对语料集d中汉字进行字典v的构建,字典v面向训练语料记录了汉字的字面、字频和对应的字嵌入向量表示。对字典v基于字频构建起一棵完全的huffman树,字典v中的字都处于树的叶子结点,并通过辅助的hash表建立快速索引与查找机制。字面向量的训练使用cbow模型和hs训练方法构造了如下式所示的系统目标函数:
将语料集d中的训练语料按句输入,以一个动态可变窗口对训练句s做顺序遍历,窗口中心为目标字ω,训练在一个迭代周期内以梯度
其中μ表示学习率,训练中依据梯度变化率做出适当调整。
第二步对每个输入的训练句,逐字进行训练,根据索引从字典v中取出对应的初始向量,记为
将字面向量
输出标签t,其词位标签选择使用{bies}标记规则集,其中b表示是一个词的第一个字,m表示是一个词中间的字,e表示是一个词的最后一个字,而s表示是单字成词的,将s与词性标注标签组合,例如s-v表示单字成词的动词,词性标签共13种,与词位标签组合标签集共52种。将隐藏层输出进行映射变换,并进行非线性变换作为输出。
oi=tanh(wo·[hi1,hi2]+bo)
定义句子得分公式为:
其中,θ为模型参数集合,ayi,yi+1是转移状态矩阵,n是训练句的字数。
在解码过程中使用动态规划算法,最终选择的标注序列为计算得分最高的序列:
其中yx为所有可能的标注序列。使用softmax归一化所有标签,得分被计算为一个条件标签路径概率,对条件标签路径概率取对数,得到有效路径的条件概率似然函数,反向训练更新参数和字面向量
模型输出送入crf层使用viterbi算法来确定最佳的标注序列,由转移状态矩阵与网络输出组成句子标签分数,通过最大化句子标签的似然函数来反向更新参数和字面向量
第三步为取词操作,逐字遍历第二步标注的训练句集合,对于训练句中每个字,通过查找表操作提取字的向量
其中,l为当前候选词中的字符数;
将融合好的词级别向量
将词级别向量
由于模型使用动态规划基于最大词长进行全切分,所有可能的切分标注结果数是字符序列的长度的指数级,使得计算所有可能结果的得分是不可能的。另外由于计算当前候选分词表示引入了候选词的历史信息,传统的viterbi算法不再是最佳选择,为了在实际应用中更加发挥作用,模型采用集束算法搜索候选词合适的前一时刻的隐层输出处hj-1进行解码。具体的,集束搜索算法求解优化模型的详细过程如下:
上述算法中,遍历训练句的每一个t时刻产生的每一个候选词,通过改进型lstm模型都融入了与其相匹配的分词历史记忆,并为t+1时刻可能产生的候选分词提供预测:
pt+1=tanh(wpht+bp)
由此计算出t+1时刻的连接得分;
linkscore(yt+1)=pt+1·yt+1
并通过预设的集束宽度k,在每一步的动态前向中始终保留k个得分较高的句子切分,在此过程中,既有效地利用了完整的切分历史,又预测了未来的可能切分,使得模型具有了句子级别的判别能力。假设对于给定的训练句序列sen[1:n],经过模型预测产生了某个词序列y[1:m],此分词后的词序列得分函数为:
训练采用最大间隔法(maxmargincriterion),对于给定的训练句序列sen[1:n],其正确的分词序列表示为y(i),t,模型预测的分词序列表示为
其中μ为衰减参数,用于调节损失函数值,起到平滑作用。给定训练集β,加入一个2范数项的损失函数,通过损失函数,反向更新参数:
其中:
模型优化采用adagard算法,并使用dropout正则化技术防止出现过拟合。
在本发明中,图4为字符级bi-lstm-crf向量精化架构图;图5为基于动态规划的集束搜索算法示意图。
综上所述,本发明具有如下优点:
(1)无需工程化的特征提取,不需要过多先验知识的情况下就可以抓取到数据更加抽象的本质特征,通过分布式向量来对文本进行表征;
(2)对字面向量精化的过程使用改进bi-lstm模型使得字符级别向量能够同时获取前文以及后续文中的信息,并且基于注意力机制的方法能够更好地获取远距离的上下文信息;
(3)在字面向量精化过程中获取字面向量的字性特征,利用字性信息辅助分词提高分词的准确率;
(4)在精化字向量训练过程中加入目标字周围窗口内字的语义信息,增强了对目标字向量特征的提取;
(5)基于门控卷积神经网络的融合字向量方法中,在计算时使用共享参数矩阵使得需要训练的参数矩阵维度得到降低,提升了模型计算效率,并且使用门控机制能够更加合理对字符向量进行融合;
(6)集束搜索算法:在每一步取得分最高的k个结果保留,接下来新切分出的候选词在保留的这些分割上继续操作,相比于viterbi算法能够省下很多解码时间,并且能够利用完整的分割历史,直接对分词结果建模。
以上实施例仅用于说明本发明而并非限制本发明所描述的技术方案,对本说明书的理解应该以所属技术领域的技术人员为基础,尽管本说明书参照上述的实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,所属技术领域的技术人员仍然可以对本发明进行修改或者等同替换,而一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围内。