CN109086267B - 一种基于深度学习的中文分词方法 - Google Patents
一种基于深度学习的中文分词方法 Download PDFInfo
- Publication number
- CN109086267B CN109086267B CN201810756452.0A CN201810756452A CN109086267B CN 109086267 B CN109086267 B CN 109086267B CN 201810756452 A CN201810756452 A CN 201810756452A CN 109086267 B CN109086267 B CN 109086267B
- Authority
- CN
- China
- Prior art keywords
- word
- vector
- sequence
- current
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013135 deep learning Methods 0.000 title claims abstract description 20
- 239000013598 vector Substances 0.000 claims abstract description 269
- 238000013136 deep learning model Methods 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims description 70
- 239000011159 matrix material Substances 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 31
- 238000013528 artificial neural network Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 12
- 230000007704 transition Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000010380 label transfer Methods 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 238000005728 strengthening Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000002372 labelling Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000007670 refining Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000006317 isomerization reaction Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 102220070930 rs794728599 Human genes 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于深度学习的中文分词方法,包括如下步骤:基于字面字频将汉字映射为字面向量;对字面向量进行精化,提取携带上下文语义信息的特征向量和携带字性特征的特征向量;将字符级别向量有效融合成词级别的分布式表示,再将融合好的候选词向量送入深度学习模型中计算句子得分,运用集束搜索的方法进行解码,最终通过句子得分来选择合适的分词结果。如此使得分词任务从繁琐的特征工程中解脱出来,通过提取更丰富的特征信息能够获得更好的***性能,并且利用完整的分割历史进行建模,具有序列级别的分词能力。
Description
技术领域
本发明涉及自然语言处理技术领域,具体涉及一种基于深度学习的中文分词方法。
背景技术
当前大数据环境下,随着物联网数据感知、数据云计算、三网融合以及移动互联网的迅速发展,数据,尤其是非结构化文本的数据量以指数级别迅猛增长,并呈现类型多样化、异构化、信息碎片化和价值密度低等特征。数据的快速膨胀对信息的自动处理带来了巨大挑战,如何高效、准确地处理海量文本,抽取出有价值的信息,成为自然语言处理(Natural Language Processing,NLP)的重要课题。
在自然语言处理领域,特别是中文自然语言处理中,分词是一项重要的基准任务,其结果性能的好坏将直接影响到后续机器翻译、情感分析、自动摘要生成、信息检索等语用任务的最终性能。然而由于中文自身的句法和语法特殊性,直接将英语等语言的处理技术应用到中文并不能取得预期的理想效果。传统的中文分词方法分为基于字符串匹配和基于统计两种,基于字符串匹配的分词按照一定规则扫描句子,逐个查找词库进行分词,统计学的方法运用统计语言模型和无监督或半监督的学习算法得出最优的切分结果。诸如此类的方法虽然取得了一定的效果,但大多是面向特定领域任务的,并且需要较强的人工干预进行特征发现,这种干预不仅会导致对词典复杂的运行时依赖关系,而且要求研究人员须具备专业的语言学知识。
深度学习能够利用深层神经网络自动学习出数据表示,为数据构建一种具有更强决策能力、洞察发现力和流程化能力的统一内部表示,形成对数据事实的统一理解,在保留语义信息的基础上降低分布式向量的维度,极大地减少了训练时长,提升了***性能。
早期基于深度学习的中文分词任务使用简单的反馈神经网络对训练序列中的每个字进行标注,这种方法仅获取固定窗口内的上下文信息,无法很好的学习到数据与之前数据的关联。
递归神经网络,能够通过累积历史记忆,更充分地利用上下文关系,自动学习到更复杂的特征,但在实践中发现递归神经网络存在梯度***和梯度消失的问题,这使得它面临着不能很好处理长距离历史记忆的问题。
鉴于此,确有必要发明一种基于深度学习的中文分词方法,以解决上述问题。
发明内容
本发明的目的是提供一种基于深度学习的中文分词方法,该方法具有序列级别的分词能力。
为了实现上述目的,本发明采用如下技术方案:一种基于深度学习的中文分词方法,包括如下步骤:
S1,对大规模语料集D进行字面字频统计,基于连续词袋模型和层级归一化训练方法,将语料集D中的每个字初始化为字面向量,将获取得到的字面向量按索引保存到字典V中;
S2,将训练语料逐句转化为固定长度的向量,送入深度学习模型中,并对字典V中的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量;
S3,对每个训练句,在逐字进行训练时,根据预设的最大词长切分出所有以当前目标字结尾的候选词,将精化后的特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词。
作为本发明进一步改进的技术方案,步骤S1具体包括:
S11,提取每个汉字的基本特征,通过遍历语料集D进行字典V的构建,字典V面向训练语料记录字的字面、字频和对应的字嵌入向量;
S12,字典V基于字频构建一棵完全的Huffman树,字典V中的字都处于树的叶子结点,通过辅助的hash表建立快速索引与查找机制;
S14,定义训练以对路径结点的遍历为一个迭代周期,训练在一个迭代周期内以梯度对参数θ进行更迭,同时累积语义影响因子一个迭代周期结束后,更新目标字ω的窗口内的各个上下文环境字面向量,目标字ω的环境字面向量为:
其中,μ表示学习率。
作为本发明进一步改进的技术方案,步骤S2具体包括:
其中,W(o)∈Rd*2d与偏置向量b(o)∈Rd为各个当前序列时刻上的共享参数;
其中,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;
其中,权值矩阵W(l)∈Rd*d和偏置向量b(l)∈Rd为共享参数;
其中,使用因子矩阵W(z)∈Rd*d作为共享参数;
其中,1≤l≤w+1。
作为本发明进一步改进的技术方案,步骤S22具体包括:
S22.1定义重置门rl,计算对目标字ω的影响概率:
其中,1≤l≤w,权值矩阵W(r)∈Rd*d和偏置向量b(r)∈Rd为各个字符向量间的共享参数;
其中,因子矩阵W(z)∈Rd*d为共享参数;
其中,1≤l≤w。
作为本发明进一步改进的技术方案,在步骤S24中,送入深度学习模型后包括如下步骤:
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(z)∈Rd*d与偏置向量b(z)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(c)∈Rd*d与偏置向量b(c)∈Rd为各个当前序列时刻上的共享参数;
其中,zt为更新门。
作为本发明进一步改进的技术方案,步骤S3具体包括:
其中,1≤l≤L,L为当前候选词中包含的字符数;
S34,将候选词向量送入到深度学习模型中,经过编码获取当前候选词的历史特征,历史参照使用集束搜索算法,根据预设的集束宽度k,在句子前向遍历的每个当前序列时刻t上,始终记录存储得分较好的k个历史切分,其中切分句尾词的隐态输出为ht;
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,将候选词向量输入到深度学习模型中,基于深度学习模型的输出ht计算获得对下一个词的预测Pt+1,深度学习模型能够获取到之前整个分词历史中的记忆信息,计算一个序列的连接得分linkScore(yt+1):
linkScore(yt+1)=Pt+1·yt+1;
S38,设置集束宽度k,在每一步取得分最高的k个结果保留,新的输入在保留的分割上继续操作,利用完整的分割历史,直接对分词结果建模,定义经过深度学习模型预测产生词序列y[1:m],切分的词序列得分函数构造为:
S39,将给定的字符序列xi的正确分词序列表示为yi,定义用于预测分段句子的结构化间隔损失来构造损失函数,反向更新参数。。
作为本发明进一步改进的技术方案,步骤S35具体包括:
作为本发明进一步改进的技术方案,步骤S39具体包括如下步骤:
S39.1,对于给定的训练句序列sen[1:n],经过模型预测产生词序列y[1:m],分词后的词序列得分函数为:
其中,μ为衰减参数;
S39.3给定训练集β,加入一个2范数项的损失函数,通过损失函数,反向更新参数:
其中:
本发明的有益效果是:本发明通过初始化每个训练字的字面向量,使用深度学习模型抓取训练字携带的历史特征、未来特征和字性特征,基于门限组合神经网络方法精化分布式向量以表征相应的候选词,将中文分词重新形式化为直接分割学习任务,直接评估不同分词句子的相对可能性,然后搜索分数最高的分词序列,从而获得更多序列级别的分词能力。
附图说明
图1为本发明基于深度学习的中文分词方法的流程示意图。
图2为本发明中门限组合神经网络方法的架构示意图。
图3为本发明中改进型LTSM模型的架构示意图。
图4为本发明中CRF层向量精化架构图。
图5为本发明中基于动态规划的集束搜索算法示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施方式对本发明进行详细描述。
如图1所示,一种基于深度学习的中文分词方法,包括如下步骤:
S1,对大规模语料集D进行字面字频统计,基于连续词袋模型(continuous bag-of-words,CBOW)和层级归一化(hierarchical softmax,HS)训练方法,将语料集D中的每个字初始化为字面向量,将获取得到的字面向量按索引保存到字典V中;
S2,将训练语料逐句转化为固定长度的向量,送入深度学习模型中,在此,深度学习模型选择改进型LSTM模型,并对字典V中的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量;
S3,对每个训练句,在逐字进行训练时,根据预设的最大词长切分出所有以当前目标字结尾的候选词,将精化后的特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词。
其中,步骤S1具体包括以下步骤:
S11,提取每个汉字的基本特征,通过遍历语料集D进行字典V的构建,字典V面向训练语料记录字的字面、字频和对应的字嵌入向量;
S12,字典V基于字频构建一棵完全的Huffman树,字典V中的字都处于树的叶子结点,通过辅助的hash表建立快速索引与查找机制;
S14,定义训练以对路径结点的遍历为一个迭代周期,训练在一个迭代周期内以梯度对参数θ进行更迭,同时累积语义影响因子一个迭代周期结束后,更新目标字ω的窗口内的各个上下文环境字面向量,目标字ω的环境字面向量为:
其中,μ表示学习率,训练中依据梯度变化率做出适当调整。
其中,步骤S13具体为:将语料集D中的语料按句输入,以一个动态可变窗口对训练句S做顺序遍历,窗口中心为目标字ω,窗口内的其它字构成了目标字ω的上下文环境context(ω),对于每一个训练样本(ω|context(ω)),都在Huffman树中预统计了从根结点到目标字ω的路径lω和编码dω,训练以对路径结点的遍历为一个迭代周期,以目标字ω窗口内的上下文字面向量均值xω为输入,以如下式所示的sigmoid激活函数,以梯度下降法更迭参数θ,计算上下文环境context(ω)对目标字ω的语义影响:
遍历中,路径上的每个分支结点都视为一个隐式二分类器,通过判定其Huffman编码中的每一个分量的取值是1(左子树结点)或者0(右子树结点),计算上下文字面向量均值xω在当前分支结点携带的参数值的作用下对目标字ω语义的影响因子,由此构造得出***目标函数
其中,目标字ω为窗口中心,lω为从根结点到目标字ω的路径,dω为从根结点到目标字ω的编码,xω为以目标字ω窗口内的上下文字面向量均值。
步骤S2具体包括如下步骤:
S23,对于当前序列时刻t,使用门限组合神经网络方法,依照步骤S22的方法计算得到前1~t-1时刻隐态的选择性历史输出作为前向改进型LTSM的输入;同时计算t+1~n时刻隐态的选择性未来输出作为后向改进型LTSM的输入。
其中,W(o)∈Rd*2d与偏置向量b(o)∈Rd为各个当前序列时刻上的共享参数;
其中,Ayi,yi+1为状态转移矩阵;
输出的标注序列中的字位标签选择使用{BIES}标记规则集,其中B表示是一个词的第一个字,I表示是一个词中间的字,E表示是一个词的最后一个字,S表示是单字成词的,将{BIES}标记规则集与词性标注标签组合(例如S-V表示单字成词的动词)以得到字符序列中的最佳标签转移矩阵以最佳标签转移矩阵作为后续分词的字性特征依据,标注训练句中字的最佳标签选择。
S22.1定义重置门rl,计算对目标字ω的影响概率:
其中,1≤l≤w,权值矩阵W(r)∈Rd*d和偏置向量b(r)∈Rd为各个字符向量间的共享参数;
其中,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;
其中,权值矩阵W(l)∈Rd*d和偏置向量b(l)∈Rd为共享参数;
其中,使用因子矩阵W(z)∈Rd*d作为共享参数;
其中,1≤l≤w+1。
如图3所示,步骤S24中所说的改进型LSTM模型,用于在序列标注问题的顺序遍历中抓取历史记忆信息,包括如下步骤:
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(z)∈Rd*d与偏置向量b(z)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(c)∈Rd*d与偏置向量b(c)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(z)∈Rd*d与偏置向量b(z)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(c)∈Rd*d与偏置向量b(c)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(z)∈Rd*d与偏置向量b(z)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(c)∈Rd*d与偏置向量b(c)∈Rd为各个当前序列时刻上的共享参数;
步骤S3具体包括:
其中,1≤l≤L,L为当前候选词中包含的字符数;
S34,将候选词向量送入到改进型LSTM模型中,经过编码获取当前候选词的历史特征,历史参照使用集束搜索算法,根据预设的集束宽度k,在句子前向遍历的每个当前序列时刻t上,始终记录存储得分较好的k个历史切分,其中切分句尾词的隐态输出为ht;
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,将候选词向量输入到改进型LSTM模型中,基于改进型LSTM模型的输出ht计算获得对下一个词的预测Pt+1,改进型LSTM模型能够获取到之前整个分词历史中的记忆信息,计算一个序列的连接得分linkScore(yt+1):
linkScore(yt+1)=Pt+1·yt+1;
S38,设置集束宽度k,在每一步取得分最高的k个结果保留,新的输入在保留的分割上继续操作,利用完整的分割历史,直接对分词结果建模,定义经过改进型LSTM模型预测产生词序列y[1:m],切分的词序列得分函数构造为:
S39,将给定的字符序列xi的正确分词序列表示为yi,定义用于预测分段句子的结构化间隔损失。
其中,步骤S35具体包括:
步骤S39具体包括如下步骤:
S39.1,对于给定的训练句序列sen[1:n],经过模型预测产生词序列y[1:m],分词后的词序列得分函数为:
其中,μ为衰减参数,用于调节损失函数值;
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中取出对应的初始向量,记为训练中向量维度d取50,并根据索引取出对应上下文窗口内字向量,并将上下文窗口内字向量使用门限组合神经网络组合成组合向量,记为表达窗口上下文对目标词的影响。
将字面向量与窗口上下文组合向量输入到改进的Bi-LSTM模型中,前向LSTM的输入是序列从左往右传递,后向LSTM的输入是序列从右往左的传递。最后,将两个隐藏层单元输出进行拼接,作为整体网络隐藏层的输出。
输出标签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算法来确定最佳的标注序列,由转移状态矩阵与网络输出组成句子标签分数,通过最大化句子标签的似然函数来反向更新参数和字面向量训练好的字面向量就是我们需要提取的携带上下文信息的特征向量,记为在状态转移矩阵中,每一行代表了前一个字所有可能的标注转移到当前字某一字性标注的可能性,提取最佳标注序列对应的转移向量作为携带了字性特征的特征向量,记作
第三步为取词操作,逐字遍历第二步标注的训练句集合,对于训练句中每个字,通过查找表操作提取字的向量根据预设的最大词长(比如词长取值为4),使用前向全切分的思想,在最大词长范围内切分出所有以当前字结尾的候选词,使用门限组合神经网络GCNN,基于候选词将字符级别向量融合表示为词级别向量
其中,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],此分词后的词序列得分函数为:
其中μ为衰减参数,用于调节损失函数值,起到平滑作用。给定训练集β,加入一个2范数项的损失函数,通过损失函数,反向更新参数:
其中:
模型优化采用Adagard算法,并使用dropout正则化技术防止出现过拟合。
在本发明中,图4为字符级Bi-LSTM-CRF向量精化架构图;图5为基于动态规划的集束搜索算法示意图。
综上所述,本发明具有如下优点:
(1)无需工程化的特征提取,不需要过多先验知识的情况下就可以抓取到数据更加抽象的本质特征,通过分布式向量来对文本进行表征;
(2)对字面向量精化的过程使用改进Bi-LSTM模型使得字符级别向量能够同时获取前文以及后续文中的信息,并且基于注意力机制的方法能够更好地获取远距离的上下文信息;
(3)在字面向量精化过程中获取字面向量的字性特征,利用字性信息辅助分词提高分词的准确率;
(4)在精化字向量训练过程中加入目标字周围窗口内字的语义信息,增强了对目标字向量特征的提取;
(5)基于门控卷积神经网络的融合字向量方法中,在计算时使用共享参数矩阵使得需要训练的参数矩阵维度得到降低,提升了模型计算效率,并且使用门控机制能够更加合理对字符向量进行融合;
(6)集束搜索算法:在每一步取得分最高的k个结果保留,接下来新切分出的候选词在保留的这些分割上继续操作,相比于viterbi算法能够省下很多解码时间,并且能够利用完整的分割历史,直接对分词结果建模。
以上实施例仅用于说明本发明而并非限制本发明所描述的技术方案,对本说明书的理解应该以所属技术领域的技术人员为基础,尽管本说明书参照上述的实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,所属技术领域的技术人员仍然可以对本发明进行修改或者等同替换,而一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围内。
Claims (8)
1.一种基于深度学习的中文分词方法,其特征在于,包括如下步骤:
S1,对大规模语料集D进行字面字频统计,基于连续词袋模型和层级归一化训练方法,将语料集D中的每个字初始化为字面向量,将获取得到的字面向量按索引保存到字典V中;
S2,将训练语料逐句转化为固定长度的向量,送入深度学习模型中,
并对字典V中的字面向量进行精化更新,获取携带上下文语义的特征向量和包含字性特征的向量;
S3,对每个训练句,在逐字进行训练时,根据预设的最大词长切分出
所有以当前目标字结尾的候选词,将精化后的特征向量融合成每一个候选词的词向量,递增的将候选词与先前的分词历史连接起来,利用集束搜索的方法进行动态分词;
其中,步骤S1具体包括:
S11,提取每个汉字的基本特征,通过遍历语料集D进行字典V的构建,字典V面向训练语料记录字的字面、字频和对应的字嵌入向量;
S12,字典V基于字频构建一颗完全的Huffman树,字典V中的字都处于树的叶子节点,通过辅助的hash表建立快速索引与查找机制;
S14,定义训练以对路径结点的遍历为一个迭代周期,训练在一个迭代周期内以梯度对参数θ进行更迭,同时累积语义影响因子一个迭代周期结束后,更新目标字ω的窗口内的各个上下文环境字面向量,目标字ω的环境字面向量为:
其中,μ表示学习率。
2.如权利要求1所述的基于深度学习的中文分词方法,其特征在于,步骤S2具体包括:
其中,W(o)∈Rd*2d与偏置向量b(o)∈Rd为各个当前序列时刻上的共享参数;
S26,使用训练集β逐句逐字查表获取融入上下文语义的精化字向量构造句子矩阵表示作为观态矩阵,使用viterbi算法展开迭代训练,定义句子得分公式,确定最佳的标注序列:
3.如权利要求2所述的基于深度学习的中文分词方法,其特征在于,门限组合神经网络方法包括如下步骤:
步骤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;
其中,权值矩阵W(l)∈Rd*d和偏置向量b(l)∈Rd为共享参数;
其中,因子矩阵W(z)∈Rd*d为共享参数;
其中,1≤l≤w+1。
4.如权利要求3所述的基于深度学习的中文分词方法,其特征在于,步骤S22具体包括:
S22.1定义重置门rl,计算对目标字ω的影响概率:
其中,1≤l≤w,权值矩阵W(r)∈Rd*d和偏置向量b(r)∈Rd为各个字符向量间的共享参数;
其中,因子矩阵W(r)∈Rd*d为共享参数;
其中,1≤l≤w。
5.如权利要求2所述的基于深度学习的中文分词方法,其特征在于,在步骤S24中,送入深度学习模型后包括如下步骤:
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
更新门zt的计算公式为:
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,权值矩阵W(r)∈Rd*d与偏置向量b(r)∈Rd为各个当前序列时刻上的共享参数;
其中,zt为更新门。
6.如权利要求5所述的基于深度学习的中文分词方法,其特征在于,步骤S3具体包括:
S31,在每一个当前序列时刻t上,根据预设的最大词长切分出所有以当前目标字结尾
其中,1≤l≤L,L为当前候选词中包含的字符数;
S34,将候选词向量送入到深度学习模型中,经过编码获取当前候选词的历史特征,历史参照使用集束搜索算法,根据预设的集束宽度k,在句子前向遍历的每个当前序列时刻t上,始终记录存储得分较好的k个历史切分,其中切分句尾词的隐态输出为ht;
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,将候选词向量输入到深度学习模型中,基于深度学习模型的输出ht计算获得对下一个词的预测Pt+1,深度学习模型能够获取到之前整个分词历史中的记忆信息,计算一个序列的连接得分linkScore(yt+1):
linkScore(yt+1)=Pt+1·yt+1;
S38,设置集束宽度k,在每一步取得分最高的k个结果保留,新的输入在保留的分割上继续操作,利用完整的分割历史,直接对分词结果建模,定义经过深度学习模型预测产生词
序列y[1:m],切分的词序列得分函数构造为:
S39,将给定的字符序列xi的正确分词序列表示为yi,定义用于预测分段句子的结构化间隔损失来构造损失函数,反向更新参数。
7.如权利要求6所述的基于深度学习的中文分词方法,其特征在于,步骤S35具体包括:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810756452.0A CN109086267B (zh) | 2018-07-11 | 2018-07-11 | 一种基于深度学习的中文分词方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810756452.0A CN109086267B (zh) | 2018-07-11 | 2018-07-11 | 一种基于深度学习的中文分词方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086267A CN109086267A (zh) | 2018-12-25 |
CN109086267B true CN109086267B (zh) | 2022-07-26 |
Family
ID=64837409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810756452.0A Active CN109086267B (zh) | 2018-07-11 | 2018-07-11 | 一种基于深度学习的中文分词方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086267B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284358B (zh) * | 2018-09-05 | 2020-08-28 | 普信恒业科技发展(北京)有限公司 | 一种中文地址名词分层级的方法和装置 |
CN109543764B (zh) * | 2018-11-28 | 2023-06-16 | 安徽省公共气象服务中心 | 一种基于智能语义感知的预警信息合法性检测方法及检测*** |
CN110059188B (zh) * | 2019-04-11 | 2022-06-21 | 四川黑马数码科技有限公司 | 一种基于双向时间卷积网络的中文情感分析方法 |
CN110222329B (zh) * | 2019-04-22 | 2023-11-24 | 平安科技(深圳)有限公司 | 一种基于深度学习的中文分词方法和装置 |
CN110334338B (zh) * | 2019-04-29 | 2023-09-19 | 北京小米移动软件有限公司 | 分词方法、装置及设备 |
CN110263320B (zh) * | 2019-05-05 | 2020-12-11 | 清华大学 | 一种基于专用语料库字向量的无监督中文分词方法 |
CN110287961B (zh) * | 2019-05-06 | 2024-04-09 | 平安科技(深圳)有限公司 | 中文分词方法、电子装置及可读存储介质 |
CN110413773B (zh) * | 2019-06-20 | 2023-09-22 | 平安科技(深圳)有限公司 | 智能文本分类方法、装置及计算机可读存储介质 |
CN110287180B (zh) * | 2019-06-25 | 2021-12-28 | 上海诚数信息科技有限公司 | 一种基于深度学习的风控建模方法 |
CN110516229B (zh) * | 2019-07-10 | 2020-05-05 | 杭州电子科技大学 | 一种基于深度学习的领域自适应中文分词方法 |
CN110502746B (zh) * | 2019-07-18 | 2021-04-09 | 北京捷通华声科技股份有限公司 | 一种在线域更新解码方法、装置、电子设备及存储介质 |
CN110489555B (zh) * | 2019-08-21 | 2022-03-08 | 创新工场(广州)人工智能研究有限公司 | 一种结合类词信息的语言模型预训练方法 |
CN111126037B (zh) * | 2019-12-18 | 2021-10-29 | 昆明理工大学 | 一种基于孪生循环神经网络的泰文句子切分方法 |
CN111160009B (zh) * | 2019-12-30 | 2020-12-08 | 北京理工大学 | 一种基于树状网格记忆神经网络的序列特征提取方法 |
CN111274801A (zh) * | 2020-02-25 | 2020-06-12 | 苏州跃盟信息科技有限公司 | 分词方法及装置 |
CN111816169B (zh) * | 2020-07-23 | 2022-05-13 | 思必驰科技股份有限公司 | 中英语种混杂语音识别模型训练方法和装置 |
CN112036183B (zh) * | 2020-08-31 | 2024-02-02 | 湖南星汉数智科技有限公司 | 基于BiLSTM网络模型及CRF模型的分词方法、装置、计算机装置及计算机存储介质 |
CN112150251B (zh) * | 2020-10-09 | 2024-07-16 | 北京明朝万达科技股份有限公司 | 物品名称治理方法和装置 |
CN113781139A (zh) * | 2020-10-19 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 物品推荐方法、物品推荐装置、设备和介质 |
CN112416931A (zh) * | 2020-11-18 | 2021-02-26 | 脸萌有限公司 | 信息生成方法、装置和电子设备 |
CN112559729B (zh) * | 2020-12-08 | 2022-06-24 | 申德周 | 一种基于层次多维变压器模型的文档摘要计算方法 |
CN112860889A (zh) * | 2021-01-29 | 2021-05-28 | 太原理工大学 | 一种基于bert的多标签分类方法 |
CN112905591B (zh) * | 2021-02-04 | 2022-08-26 | 成都信息工程大学 | 一种基于机器学习的数据表连接顺序选择方法 |
CN113361238B (zh) * | 2021-05-21 | 2022-02-11 | 北京语言大学 | 一种语块重组题型的自动命题的方法及装置 |
CN114638222B (zh) * | 2022-05-17 | 2022-08-16 | 天津卓朗科技发展有限公司 | 自然灾害数据的分类方法及其模型训练方法、装置 |
CN115455987B (zh) * | 2022-11-14 | 2023-05-05 | 合肥高维数据技术有限公司 | 基于字频词频的字符分组方法、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268444B (zh) * | 2018-01-10 | 2021-11-02 | 南京邮电大学 | 一种基于双向lstm、cnn和crf的中文分词方法 |
-
2018
- 2018-07-11 CN CN201810756452.0A patent/CN109086267B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109086267A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086267B (zh) | 一种基于深度学习的中文分词方法 | |
CN109344391B (zh) | 基于神经网络的多特征融合中文新闻文本摘要生成方法 | |
CN108460013B (zh) | 一种基于细粒度词表示模型的序列标注模型及方法 | |
CN109657239B (zh) | 基于注意力机制和语言模型学习的中文命名实体识别方法 | |
CN109800437B (zh) | 一种基于特征融合的命名实体识别方法 | |
CN109635124B (zh) | 一种结合背景知识的远程监督关系抽取方法 | |
CN112487143B (zh) | 一种基于舆情大数据分析的多标签文本分类方法 | |
CN109858041B (zh) | 一种半监督学习结合自定义词典的命名实体识别方法 | |
CN106897371B (zh) | 中文文本分类***及方法 | |
CN110196980B (zh) | 一种基于卷积网络在中文分词任务上的领域迁移 | |
CN111046179B (zh) | 一种面向特定领域开放网络问句的文本分类方法 | |
CN110969020A (zh) | 基于cnn和注意力机制的中文命名实体识别方法、***及介质 | |
CN110688862A (zh) | 一种基于迁移学习的蒙汉互译方法 | |
CN111666758B (zh) | 中文分词方法、训练设备以及计算机可读存储介质 | |
CN113190656B (zh) | 一种基于多标注框架与融合特征的中文命名实体抽取方法 | |
CN114757182A (zh) | 一种改进训练方式的bert短文本情感分析方法 | |
CN112148888A (zh) | 基于图神经网络的知识图谱构建方法 | |
CN111581970B (zh) | 一种网络语境的文本识别方法、装置及存储介质 | |
CN113255366B (zh) | 一种基于异构图神经网络的方面级文本情感分析方法 | |
CN113435211A (zh) | 一种结合外部知识的文本隐式情感分析方法 | |
CN112163089A (zh) | 一种融合命名实体识别的军事高技术文本分类方法及*** | |
CN111428518B (zh) | 一种低频词翻译方法及装置 | |
CN110298046B (zh) | 一种翻译模型训练方法、文本翻译方法及相关装置 | |
US11941360B2 (en) | Acronym definition network | |
CN111274826B (zh) | 一种基于语义信息融合的低频词翻译方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |