1.本发明涉及自然语言处理领域,具体涉及一种基于自注意力机制的拼音转汉字方法。
背景技术:2.拼音是中文的官方汉字注音拉丁化方案,提供了将汉字映射到一串拉丁字母的解决方案,在日常生活中被广泛使用。然而,中文的同音字现象非常常见。据统计,汉字共有5000多个常用字,但对应拼音仅有410个,这意味着,一个拼音平均对应十多个汉字。因此,拼音转汉字是一个有着巨大使用需求及挑战性的问题。
3.目前大多数拼音转汉字的解决方案基于拼音输入法,在转换时需要人工干预。本发明针对自动化拼音转汉字问题,提出了一种基于自注意力机制的方法。
技术实现要素:4.本发明要克服现有技术的上述缺点,提供一种基于自注意力机制的自动化拼音转汉字方法。
5.为了解决上述技术问题,本发明提出一种基于自注意力机制的自动化拼音转汉字方法,所述方法包括:
6.s110,预处理输入,输入为一段拼音序列;
7.s120,利用嵌入层获得输入拼音序列的嵌入表示矩阵;
8.s130,在嵌入表示添加位置编码,获得拼音序列的输入表示矩阵;
9.s140,利用拼音序列的输入表示矩阵和自注意力机制获得拼音序列的自注意力输出矩阵;
10.s150,利用全连接层将自注意力输出矩阵变换为输出矩阵;
11.s160,解析输出矩阵,获得汉字序列结果。
12.进一步的,步骤s110所述的预处理输入,输入为一段拼音序列,具体包括:
13.将拼音序列按照声母和韵母拆分成词元;
14.使用事先给定拼音字典,将词元(声母或韵母)映射到数字索引,并以此将拼音序列转换为数字索引序列x=(x1,x2,
…
,xn)。
15.进一步的,步骤s120所述的利用嵌入层获得输入拼音序列的嵌入表示矩阵包括:
16.嵌入层的权重是一个矩阵,行数是词汇表大小,列数是特征向量的维度。
17.对于任意词元xi,嵌入层权重的第i行即为对应的词向量。
18.以此获得输入序列x的嵌入表示矩阵e∈rn×d(n代表词元数,d代表词向量维度)。
19.进一步的,步骤s130所述的,在嵌入表示添加位置编码,获得拼音序列的输入表示矩阵包括:
20.嵌入表示e的第i行、第2j列和2j+1列元素的位置编码为:
[0021][0022][0023]
计算位置编码矩阵p∈rn×d;
[0024]
将嵌入表示矩阵e与位置编码矩阵p相加,获得序列的输入表示矩阵q。
[0025]
进一步的,步骤s140所述的,利用拼音序列的输入表示矩阵和自注意力机制获得拼音序列的自注意力输出矩阵包括:
[0026]
对于输入表示矩阵q∈rn×d的每一列q∈rd,均可计算得一个自注意力输出mi=f(qi,(q1,q1),
…
,(qn,qn))∈rd,其中,其中
[0027]
以此可得拼音序列的自注意力输出矩阵m∈rn×d[0028]
进一步的,步骤s150所述的,利用全连接层将自注意力输出矩阵变换为输出矩阵包括:
[0029]
使用全连接层将将自注意力输出矩阵m∈rn×d变换为输出矩阵y∈rn×v(n代表词元数,v代表事先给定的汉字字典长度)。
[0030]
进一步的,步骤s160所述的,解析输出矩阵,获得汉字序列结果包括:
[0031]
利用argmax函数处理输出矩阵y,得汉字数字序列y
′
=(y1,y2,
…
,y_n);
[0032]
使用事先给定汉字字典,将数字索引映射到词元(汉字),并以此将汉字数字序列y
′
=(y1,y2,
…
,y_n)转换为汉字序列,即最终结果。
[0033]
本发明的有益效果是,本发明提供的基于自注意力机制的自动化拼音转汉字方法,其中,所述方法预处理拼音序列;利用嵌入层获得输入拼音序列的嵌入表示矩阵;在嵌入表示添加位置编码,获得拼音序列的输入表示矩阵;利用拼音序列的输入表示矩阵和自注意力机制获得拼音序列的自注意力输出矩阵;利用全连接层将自注意力输出矩阵变换为输出矩阵;解析输出矩阵,获得汉字序列结果。该发明可在无人工干预的前提下,自动化的将拼音序列转成汉字序列。
附图说明
[0034]
下面结合附图和实施例对本发明进一步说明。
[0035]
图1是本发明方法的流程图。
具体实施方式
[0036]
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
[0037]
实施例1
[0038]
如图1所示,本实施例1提供了一种基于自注意力机制的自动化拼音转汉字方法,所述方法包括:针对自动化拼音转汉字问题,提出一种基于自注意力机制的解决方案。
[0039]
具体来说,所述方法包括:
[0040]
s110:预处理输入,输入为一段拼音序列。
[0041]
具体来说,对输入拼音序列的预处理操作包括:
[0042]
将拼音序列按照声母和韵母拆分成词元;
[0043]
使用事先给定拼音字典,将词元(声母或韵母)映射到数字索引,并以此将拼音序列转换为数字索引序列x=(x1,x2,
…
,xn)。
[0044]
s120:利用嵌入层获得输入拼音序列的嵌入表示矩阵。
[0045]
具体来说,嵌入层的权重是一个矩阵,行数是词汇表大小,列数是特征向量的维度。
[0046]
对于任意词元xi,嵌入层权重的第i行即为对应的词向量。
[0047]
以此获得输入序列x的嵌入表示矩阵e∈rn×d(n代表词元数,d代表词向量维度)。
[0048]
s130:在嵌入表示添加位置编码,获得拼音序列的输入表示矩阵。
[0049]
具体来说,在嵌入表示添加位置编码操作包括:
[0050]
嵌入表示e的第i行、第2j列和2j+1列元素的位置编码为:
[0051][0052][0053]
计算位置编码矩阵p∈rn×d;
[0054]
将嵌入表示矩阵e与位置编码矩阵p相加,获得序列的输入表示矩阵q。
[0055]
s140:利用拼音序列的输入表示矩阵和自注意力机制获得拼音序列的自注意力输出矩阵。
[0056]
具体来说,对于输入表示矩阵q∈rn×d的每一列q∈rd,均可计算得一个自注意力输出mi=f(qi,(q1,q1),
…
,(qn,qn))∈rd,其中,其中
[0057]
以此可得拼音序列的自注意力输出矩阵m∈rn×d。
[0058]
s150:利用全连接层将自注意力输出矩阵变换为输出矩阵。
[0059]
具体来说,使用全连接层将将自注意力输出矩阵m∈rn×d变换为输出矩阵y∈rn×v(n代表词元数,v代表事先给定的汉字字典长度)。
[0060]
s160:解析输出矩阵,获得汉字序列结果。
[0061]
具体来说,解析输出矩阵的操作包括:
[0062]
利用argmax函数处理输出矩阵y,得汉字数字序列y
′
=(y1,y2,
…
,y_n);
[0063]
使用事先给定汉字字典,将数字索引映射到词元(汉字),并以此将汉字数字序列y
′
=(y1,y2,
…
,y_n)转换为汉字序列,即最终结果。
[0064]
综上所述,本发明提供的基于自注意力机制的拼音转汉字方法,其中,所述方法预处理拼音序列;利用嵌入层获得输入拼音序列的嵌入表示矩阵;在嵌入表示添加位置编码,获得拼音序列的输入表示矩阵;利用拼音序列的输入表示矩阵和自注意力机制获得拼音序列的自注意力输出矩阵;利用全连接层将自注意力输出矩阵变换为输出矩阵;解析输出矩阵,获得汉字序列结果。该发明可在无人工干预的前提下,自动化的将拼音序列转成汉字序列。
[0065]
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。