一种基于transformer和CRF的中文地址分词方法与流程

文档序号:18643041发布日期:2019-09-11 23:48阅读:980来源:国知局
一种基于transformer和CRF的中文地址分词方法与流程

本发明属于自然语言处理中的中文分词领域,尤其涉及一种基于transformer和crf(conditionalrandomfield)的中文地址分词方法。



背景技术:

随着信息技术的发展以及商业贸易、企业和政府事务的电子化,产生了海量的地址数据信息,如何有效地将这些地址数据转化为结构化数据存储并加以利用已经成为一个迫切需要解决的问题。传统的中文地址分词一般采用基于规则的分词方法,事先人工建立好分词词典,基于字符串匹配进行分词,取得了一定的效果,但是这种方法在海量地址文本下难以覆盖完全,并且鲁棒性较差,对未出现过的新地址数据分词准确率较低。

中文地址分词是中文分词在地名地址中的应用,它是将地名地址串拆分成若干地理要素的过程。中文分词是自然语言处理下的一项子任务,随着深度学习在自然语言处理领域的发展与流行,将深度学习应用到中文分词上也成为大势所趋。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于transformer和crf的中文地址分词方法。

本发明的目的是通过以下技术方案来实现的:一种基于transformer和crf的中文地址分词方法,包括以下步骤:

步骤1、对初始地址文本进行分词标注,得到带标注的地址文本,并对地址文本进行字符统计得到字符集,根据字符集将地址文本转化成序列化地址向量。

步骤2、将步骤1得到的字符集中的字符随机初始化为特征信息向量,根据特征信息向量将序列化地址向量转换为特征信息矩阵。

步骤3、根据序列化地址向量中的元素位置计算得到位置信息向量,根据位置信息向量将序列化地址向量转换为位置信息矩阵。

步骤4、将步骤2得到的特征信息矩阵和步骤3得到的位置信息矩阵相加,得到文本信息矩阵。

步骤5、将步骤4得到的文本信息矩阵输入到transformer神经网络中,得到地址文本的语义特征信息矩阵。

步骤6、将步骤5得到的语义特征信息矩阵作为输入,利用条件随机场crf对语义特征信息进行标注,得到中文地址分词标注序列。

进一步地,所述步骤1包括:

(1)对初始地址文本进行人工分词;

(2)采用bmes法对分词后的地址文本进行标注,即词的第一个字符标记为b,词中间的字符标记为m,词尾的字符标记为e,如果词是一个单独字符则标记为s;

(3)对初始地址文本进行字符统计得到字符集,并将初始地址文本中的字符转换为其在字符集中的id,得到序列化地址向量;

(4)令l为地址文本限制长度,对长度小于l的序列化地址向量进行补0,对长度大于l的序列化地址向量进行截断,得到长度均为l的序列化地址向量。

进一步地,所述步骤2包括:

(1)将步骤1中得到的字符集中的每个字符随机初始化为特征信息向量,得到字符矩阵其中n是字符集中字符个数,dmodel是每个字符的特征信息向量的维度,e中第i行代表第i个字符的特征信息向量;

(2)根据序列化地址向量中的字符id将字符转化为相应的特征信息向量,得到特征信息矩阵

进一步地,所述步骤3包括:

(1)计算序列化地址向量中每个位置pos的位置信息向量pe(pos),计算公式如下:

其中pe(pos,k)为pe(pos)第k个元素的值,k=0,1,...,dmodel-1;

(2)将序列化地址向量中的字符转化为相应的位置信息向量,得到位置信息矩阵

进一步地,所述步骤5中,transformer神经网络的具体模型结构如下:

(1)multi-headattention层利用多头注意力机制获取上下文信息,具体公式如下:

multihead(q,k,v)=concat(head1,...,headh)wo

其中multihead(q,k,v)是multi-headattention层的输出结果;concat是矩阵拼接函数;headi是第i个head的输出结果,h是head的个数;wo是输出的映射参数矩阵,分别为q、k、v在第i个head上的映射参数矩阵,q=k=v=i,dq=dk=dv=dmodel/h。

每一个head均采用scaleddot-productattention机制,具体计算过程如下:

其中attention(q,k,v)是scaleddot-productattention的输出,softmax(x)是归一化指数函数;wrl是序列相对位置关系权重参数,

(2)position-wisefeedforwardnetwork层对multi-headattention层的输出进行两次线性变换和一次relu激活,具体公式如下:

ffn(x)=max(0,xw1+b1)w2+b2

其中w1、w2分别为两次线性变换的参数矩阵,b1、b2分别为两次线性变换的偏置向量,dff是position-wisefeedforwardnetwork层中隐藏层的维度;ffn(x)是position-wisefeedforwardnetwork层的输出。

(3)上述两个子层的输出均需经过残差连接和层归一化操作,具体公式如下:

x′=x+sublayer(x)

其中sublayer(x)是子层对应的计算函数;x′i∈rl,h=dmodel;μ和σ为均值和方差向量,μ、σ∈rl;g和b为拟合参数,g、b∈rl;⊙是点乘函数;layernorm(x′)是层归一化函数的输出。

进一步地,所述步骤6包括:

(1)给定输入观测序列x={x1,x2,...,xn},标注序列y={yn,y2,...,yn}的条件概率为p(y|x),具体公式如下:

其中tj是第j个转移特征函数,sk是第k个状态特征函数,λj和μk是特征函数对应的权重参数,z是规范化因子。

(2)采用维特比算法选取条件概率最大的y作为最优标注序列。

本发明的有益效果:本发明方法不但利用transformer神经网络的优势更好地提取文本特征信息,而且加入了文本序列中字符的绝对位置和相对位置信息,在进行标注时还利用crf考虑了标注序列中字符标注之间的相互关系,最终将地址文本拆分成若干地理要素。与传统基于规则的分词方法相比,该方法用数值向量表征地址文本可以使文本信息更加丰富,具有较好的准确率和鲁棒性,对未出现过的新地址数据也可以正确分词。在中文地址分词领域,该方法具有极大的研究意义和使用价值。

附图说明

图1为transformer神经网络的结构示意图;

图2为crf的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明提供的一种基于transformer和crf的中文地址分词方法,该方法包括以下步骤:

步骤1、对初始地址文本进行分词标注,得到带标注的地址文本,并对地址文本进行字符统计得到字符集,根据字符集将地址文本转化成序列化地址向量;

步骤2、将步骤1得到的字符集中的字符随机初始化为特征信息向量,根据特征信息向量将序列化地址向量转换为特征信息矩阵;

步骤3、根据序列化地址向量中的元素位置计算得到位置信息向量,根据位置信息向量将序列化地址向量转换为位置信息矩阵;

步骤4、将步骤2得到的特征信息矩阵和步骤3得到的位置信息矩阵相加,得到文本信息矩阵;

步骤5、将步骤4得到的文本信息矩阵输入到transformer神经网络中,得到地址文本的语义特征信息矩阵;

步骤6、将步骤5得到的语义特征信息矩阵作为输入,利用条件随机场crf对语义特征信息进行标注,得到中文地址分词标注序列。

进一步地,所述步骤1包括:

(1)对初始地址文本进行人工分词;

(2)采用bmes法对分词后的地址文本进行标注,即词的第一个字符标记为b,词中间的字符标记为m,词尾的字符标记为e,如果词是一个单独字符则标记为s;

以“浙江省|杭州市|浙江邦盛有限公司”为例,其中“|”为分词标记,该地址对应的标注序列为“bmebmebmmmmmme”;

(3)对初始地址文本进行字符统计得到字符集,并将初始地址文本中的字符转换为其在字符集中的id,得到序列化地址向量;

(4)令l为地址文本限制长度,对长度小于l的序列化地址向量进行补0,对长度大于l的序列化地址向量进行截断,得到长度均为l的序列化地址向量。

进一步地,所述步骤2包括:

(1)将步骤1中得到的字符集中的每个字符随机初始化为特征信息向量,得到字符矩阵其中n是字符集中字符个数,dmodel是每个字符的特征信息向量的维度,e中第i行代表第i个字符的特征信息向量;

(2)根据序列化地址向量中的字符id将字符转化为相应的特征信息向量,得到特征信息矩阵

进一步地,所述步骤3包括:

(1)计算序列化地址向量中每个位置pos的位置信息向量pe(pos),计算公式如下:

其中pe(pos,k)为pe(pos)第k个元素的值,k=0,1,...,dmodel-1;

(2)将序列化地址向量中的字符转化为相应的位置信息向量,得到位置信息矩阵

进一步地,所述步骤4包括:将步骤2得到的特征信息矩阵和步骤3得到的位置信息矩阵相加,得到文本信息矩阵

进一步地,所述步骤5中transformer神经网络是一种新型的深度学习神经网络结构,它可以获取到更远的上下文信息,避免传统循环神经网络因梯度消失或者梯度爆炸而导致的信息消失问题,其示意图如图1所示,具体模型结构如下:

(1)multi-headattention层利用多头注意力机制获取上下文信息,具体公式如下:

multihead(q,k,v)=concat(hed1,...,headh)wo

其中multihead(q,k,v)是multi-headattention层的输出结果;concat是矩阵拼接函数;headi是第i个head的输出结果,h是head的个数;wo是输出的映射参数矩阵,分别为q、k、v在第i个head上的映射参数矩阵,q=k=v=i,dq=dk=dv=dmodel/h。

每一个head都采用scaleddot-productattention机制,具体计算过程如下:

其中attention(q,k,v)是scaleddot-productattention的输出,softmax(x)是归一化指数函数;wrl是序列相对位置关系权重参数,

(2)position-wisefeedforwardnetwork层对multi-headattention层的输出进行两次线性变换和一次relu激活,具体公式如下:

ffn(x)=max(0,xw1+b1)w2+b2

其中w1、w2分别为两次线性变换的参数矩阵,b1、b2分别为两次线性变换的偏置向量,dff是position-wisefeedforwardnetwork层中隐藏层的维度;ffn(x)是position-wisefeedforwardnetwork层的输出。

(3)上述两个子层的输出均需经过残差连接和层归一化操作,具体公式如下:

x′=x+sublayer(x)

其中sublayer(x)是子层对应的计算函数;x′i∈rl,h=dmodel;μ和σ为均值和方差向量,μ、σ∈rl;g和b为拟合参数,g、b∈rl;⊙是点乘函数;layernorm(x′)是层归一化函数的输出。

进一步地,所述步骤6包括:

(1)条件随机场是一种判别式无向图模型,其示意图如图2所示。给定输入观测序列x={x1,x2,...,xn},标注序列y={yn,y2,...,yn}的条件概率为p(y|x),具体公式如下:

其中tj是第j个转移特征函数,sk是第k个状态特征函数,λj和μk是特征函数对应的权重参数,z是规范化因子。

(2)采用维特比算法选取条件概率最大的y作为最优标注序列。

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1