发明内容
本发明实施例提供了一种汉字字向量生成方法、装置、计算机设备及存储介质,旨在提高汉字字向量的生成精度。
第一方面,本发明实施例提供了一种汉字字向量生成方法,包括:
获取包含多个汉字的训练样本,根据等距分割原则将每一所述汉字按照九宫格的方式进行划分,并计算每一所述汉字在对应所述九宫格的每一网格中的交并比,得到每一所述汉字的初始向量;
根据每一所述汉字的造字类型对对应所述汉字的初始向量赋予权重,得到初始几何特征向量;
根据每一所述汉字的笔划顺序对对应所述汉字的初始几何特征向量中的同维度数值进行排列,得到每一所述汉字对应的目标几何特征向量;
根据每一所述汉字在训练样本中的出现频率以及词性重要度设置对应的目标ID;
从所述训练样本中选择一个汉字作为目标汉字,将所述目标汉字的目标几何特征向量和所述目标汉字相邻的若干汉字的目标ID分别结合作为所述目标汉字的样本数据;
将所述目标汉字的样本数据输入到神经网络模型中进行训练学习,得到所述目标汉字的字向量。
第二方面,本发明实施例提供了一种汉字字向量生成装置,包括:
划分单元,用于获取包含多个汉字的训练样本,根据等距分割原则将每一所述汉字按照九宫格的方式进行划分,并计算每一所述汉字在对应所述九宫格的每一网格中的交并比,得到每一所述汉字的初始向量;
权重赋予单元,用于根据每一所述汉字的造字类型对对应所述汉字的初始向量赋予权重,得到初始几何特征向量;
向量排列单元,用于根据每一所述汉字的笔划顺序对对应所述汉字的初始几何特征向量中的同维度数值进行排列,得到每一所述汉字对应的目标几何特征向量;
设置单元,用于根据每一所述汉字在训练样本中的出现频率以及词性重要度设置对应的目标ID;
结合单元,用于从所述训练样本中选择一个汉字作为目标汉字,将所述目标汉字的目标几何特征向量和所述目标汉字相邻的若干汉字的目标ID分别结合作为所述目标汉字的样本数据;
训练学习单元,用于将所述目标汉字的样本数据输入到神经网络模型中进行训练学习,得到所述目标汉字的字向量。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的汉字字向量生成方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的汉字字向量生成方法。
本发明实施例提供了一种汉字字向量生成方法、装置、计算机设备及存储介质,所述方法包括:获取包含多个汉字的训练样本,根据等距分割原则将每一所述汉字按照九宫格的方式进行划分,并计算每一所述汉字在对应所述九宫格的每一网格中的交并比,得到每一所述汉字的初始向量;根据每一所述汉字的造字类型对对应所述汉字的初始向量赋予权重,得到初始几何特征向量;根据每一所述汉字的笔划顺序对对应所述汉字的初始几何特征向量中的同维度数值进行排列,得到每一所述汉字对应的目标几何特征向量;根据每一所述汉字在训练样本中的出现频率以及词性重要度设置对应的目标ID;从所述训练样本中选择一个汉字作为目标汉字,将所述目标汉字的目标几何特征向量和所述目标汉字相邻的若干汉字的目标ID分别结合作为所述目标汉字的样本数据;将所述目标汉字的样本数据输入到神经网络模型中进行训练学习,得到所述目标汉字的字向量。本发明实施例通过更细致粒度地考虑汉字形状蕴含的信息,提取更多隐含信息,使得生成的汉字字向量更加精准,从而在语言处理下游任务中能够具有更好的表现。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面请参见图1,图1为本发明实施例提供的一种汉字字向量生成方法的流程示意图,具体包括:步骤S101~S106。
S101、获取包含多个汉字的训练样本,根据等距分割原则将每一所述汉字按照九宫格的方式进行划分,并计算每一所述汉字在对应所述九宫格的每一网格中的交并比,得到每一所述汉字的初始向量;
S102、根据每一所述汉字的造字类型对对应所述汉字的初始向量赋予权重,得到初始几何特征向量;
S103、根据每一所述汉字的笔划顺序对对应所述汉字的初始几何特征向量中的同维度数值进行排列,得到每一所述汉字对应的目标几何特征向量;
S104、根据每一所述汉字在训练样本中的出现频率以及词性重要度设置对应的目标ID;
S105、从所述训练样本中选择一个汉字作为目标汉字,将所述目标汉字的目标几何特征向量和所述目标汉字相邻的若干汉字的目标ID分别结合作为所述目标汉字的样本数据;
S106、将所述目标汉字的样本数据输入到神经网络模型中进行训练学习,得到所述目标汉字的字向量。
本实施例中,首先将所述训练样本的每一所述汉字根据等距分割的原则划分九宫格的形式,使每一所述汉字可以均匀分布于所述九宫格内。可以理解的是,对于一些复杂的汉字而言,在等距分割时可以占据所述九宫格内的每一网格,例如汉字“智”等。而对于一些比较简单的汉字而言,在等距分割时只能占据所述九宫格的部分网格,例如汉字“一”等。然后根据每一所述汉字在所述九宫格中的每一网格的交并比得到每一所述汉字的初始向量,再根据每一汉字在所述训练样本中的造字类型确定每一所述汉字的初始几何特征向量,接着根据每一所述汉字的笔划顺序得到每一所述汉字的目标几何特征向量,然后将每一所述汉字的目标几何特征向量与所述训练样本中的其他汉字的目标ID相结合以得到每一所述汉字的样本数据,利用所述神经网络模型对每一所述汉字的样本数据进行训练学习即可得到每一所述汉字的字向量。
相比于现有技术,本实施例更细致粒度考虑了汉字形状蕴含的信息,并提取更多隐含信息用于生成字向量,从而使最终生成的字向量更加准确可靠,以及使最终生成的字向量在语言处理下游任务中可以具有更好的表现。
在一实施例中,如图2所示,所述步骤S101包括:步骤S201~S204。
S201、根据等距分割原则将每一所述汉字按照九宫格的方式进行划分;
S202、针对每一所述汉字,计算对应所述九宫格的每一网格中所述汉字所占像素与对应所述九宫格中所述汉字的总像素的比例,将计算得到的比例作为每一所述汉字在对应所述九宫格的每一网格中的交并比,并将所述交并比与预设阈值进行比较;
S203、若所述交并比大于或者等于所述预设阈值,则保留对应网格中的交并比;
S204、若所述交并比小于所述预设阈值,则将对应网格中的交并比重置为0;
S205、将所述九宫格中的每一网格中的交并比依次进行拼接,得到每一所述汉字的初始向量。
本实施例中,对于每一个汉字而言,其在九宫格中的每一网格占据的像素比例可能各不相同,所述交并比(IOU,Intersection overUnion)即是指所述汉字在每一网格中的像素与所述汉字在九宫格总像素的比例。通过将所述汉字在所述九宫格中的每一网格中的的交并比与预设阈值(即预设的交并比阈值)进行比较,并根据比较结果确定是保留相应的交并比还是重置相应的交并比,然后在保留或者重置后将所述九宫格内的每一网格的交并比进行拼接,便可得到每一所述汉字的初始向量,且每一所述汉字的初始向量均为9维初始向量。例如,对于汉字“智”,预设阈值为0.1,按照先从左至右、再从上至下的顺序,所述九宫格中的第一网格中的汉字的交并比为0.15,大于预设阈值0.1,那么第一网格中的交并比即为0.15,以此类推,对所述九宫格中的每一网格的交并比进行集合后,得到“智”的初始向量[0.15,0.23,0,0,…,0.31]。
在一实施例中,所述步骤S102包括:
对所述训练样本中每一所述汉字所属的造字类型进行统计,并根据每种造字类型的出现频率对相应造字类型的汉字的初始向量赋予权重,从而得到所述初始几何特征向量。
汉字具有六种造字类型,即象形、指事、形声、会意、转注、假借。根据汉字所属的造字类型为该汉字赋予权重,可以得到该汉字的几何特征向量。本实施例通过统计所述训练样本中每一所述汉字所属的造字类型,并对统计的造字类型出现频率进行排序,从而可以按照次序为不同造字类型赋予不同的权重,进而将造字类型的权重赋予对应的汉字的初始向量,即可得到对应的汉字的初始特征向量。
例如,汉字“智”,其为形声字,并假设“智”的初始向量为[0.15,0.23,0,0,…,0.31],形声字在所述训练样本中的权重为0.3,因此对“智”的初始向量赋予权重0.3,得到初始几何特征向量,即[0.15*0.3,0.23*0.3,…,0.11*0.3]。
当然,在其他实施例中,还可以采用其他方式对每一所述汉字的初始向量赋予权重。
在一实施例中,所述步骤S103包括:
针对每一所述汉字,获取对应所述汉字的笔划顺序,并统计每一笔划跨越的网格;
将每一笔划跨越的网格依次进行排序得到所述汉字的笔划序列,然后将所述笔划序列中各元素对应的初始几何特征向量中的同维度数值,按照所述所述笔划序列中各元素的位次进行排列,得到所述汉字对应的目标几何特征向量。
本实施例中,可以根据预先构建的汉字笔划顺序表获取每一所述汉字的笔划顺序,并将每一笔划在所述九宫格中跨越的网格排序形成每一所述汉字的笔划序列。在具体应用过程中,可以先对九宫格的网格进行ID分配,如按照先从左到右、再从上到下的顺序分别分配:1、2、3、4、5、6、7、8、9共9个网格ID。那么对于汉字“智”字,按照笔划顺序,其第一个笔划为“丿”,对于“丿”这一笔划跨越的网格ID为[1],其第二笔划为“—”,这一笔划跨越的网格ID为[1,2],后面依次类推,这样得到“智”的所有笔划所跨越的网格ID依次为{[1],[1,2],[4,5],[1,2,4],[5],[2,5],[2,3],[3,6],[5,6],[4,7],[4,5,6],[6,9],[7,8,9],[7,8],9},形成的笔划序列为{1,1,2,4,5,1,2,4,5,2,5,2,3,3,6,5,6,4,7,4,5,6,6,9,7,8,9,7,8,9}。所述笔划序列中元素即为所述九宫格的网格ID,使每个网格ID对应的初始几何特征向量中的同维度数值,例如网格ID为1对应的初始几何特征向量中的同维度数值即为0.15*0.3,网格ID为9对应的初始几何特征量中的同维度数值即为0.11*0.3,按照所述笔划序列中所有元素的位次对所述初始几何特征向量中的同维度数值进行排列,即可得到所述目标几何特征向量。例如上述汉字“智”,假设其初始几何特征向量为[A,B,C,D,E,F,G,H,I],那么其目标几何特征向量为[A,A,B,D,E,A,B,D,E,B,E,B,C,C,F,E,F,D,G,D,E,F,F,I,G,H,I,G,H,I]。
在一实施例中,如图3所示,所述步骤S104包括:步骤S301~S304。
S301、对每一所述汉字在所述训练样本中的出现频率进行统计,并进行排列,然后根据排列后的结果为每一所述汉字分配初始ID;
S302、针对每一所述汉字,利用最大熵方法识别每一所述汉字在所述训练样本中对应的词性,并将每一所述汉字的词性在所述训练样本中的出现频率进行排序,然后根据出现频率最高的词性为每一所述汉字赋予赋予词性重要度;
S303、将每一所述汉字的初始ID和对应的词性重要度进行相加,得到每一所述汉字的训练ID;
S304、对每一所述汉字的训练ID进行归一化处理,得到每一所述汉字的目标ID。
本实施例中,首先统计每一所述汉字在所述训练样本中出现的频率,并进行排列,例如按照升序或者降序的方式进行排列,形成根据汉字出现频率排列的队列,然后按照该队列为每一所述汉字依次分配初始ID,即每一所述汉字在该队列中的位序索引x。然后利用最大熵方法识别所述训练样本中每一所述汉字的所有词性,例如对于汉字“干”,其既有形容词的词性,也有动词的词性。按照每一所述汉字的每种词性的出现频率,从低到高对所有词性进行排序,并为出现频率最高的词性赋予重要度,作为对应汉字的词性重要度。在一具体实施例中,根据词性标注规范定义33种词性,并为33种词性分配1~33的重要度。
再将每一所述汉字的初始ID和词性重要度相加,即可得到对应汉字最终用于训练字向量的训练ID。同时,考虑到汉字的ID数值相较于初始几何特征向量的数值过大,因此本实施例中对汉字的训练ID进行归一化处理,从而得到,唯一所述汉字最终用于生成字向量的归一化ID,即所述目标ID。
在一实施例中,所述步骤S105包括:
随机选择所述训练样本中的一个汉字作为目标汉字;
将所述目标汉字的目标几何特征向量依次与其最相邻的若干汉字的目标ID进行向量拼接,得到所述目标汉字的样本数据。
本实施例中,对于所述训练样本中的每一所述汉字,若其为目标汉字,则可以根据所述目标汉字在其所在句子中的位置选择临近的汉字构成所述目标汉字的样本数据。具体而言,当选定目标汉字后,根据实际情况选择所述目标汉字相邻的若干个汉字,例如所述目标汉字左边最近第1,2,...,i个汉字以及所述目标汉字右边最近第1,2,...,i个汉字。
按照(目标汉字的目标几何特征向量:左边最近第一个汉字的目标ID)、(目标汉字的目标几何特征向量:右边最近第一个汉字的目标ID)、(目标汉字的目标几何特征向量:左边最近第2个汉字的归一化ID)、(目标汉字的目标几何特征向量:右边最近第2个汉字的归一化ID)、以此类推,最终生成所述目标汉字的样本数据。其中,“:”表示向量的拼接。需要说明的是,在语料中,左右相邻或者说越靠近目标汉字的汉字和目标汉字之间具有某种语义上的联系,越近联系越紧密,因此通过本实施例的样本数据构建方法可以使得样本数据更加准确可靠,从而更加支持后续操作。
举例来说,若所述训练样本中存在句子“目标汉字生成字向量”,共包含汉字“目、标、汉、字、生、成、字、向、量”,假设每一汉字在目标ID分别为5073,2018,4049、4408、3345、1208、2204、4497、5086。当所述目标汉字为“生”,并使其样本数据包含相邻的4个汉字,那么其样本数据为:[目标ID为3345的汉字的目标几何特征向量:“字”的目标ID4408]、[目标ID为3345的汉字的目标几何特征向量:“成”的目标ID1208]、[目标ID为3345的汉字的目标几何特征向量:“汉”的目标ID4049]、[ID为3345的目标汉字几何特征向量:“字”的目标ID2204]。
在一实施例中,如图4所示,所述步骤S106包括:步骤S401~S403。
S401、将所述目标汉字的样本数据输入至所述神经网络模型的输入层中,并由所述输入层输出所述目标汉字的样本数据对应的特征向量;
S402、利用所述神经网络模型的隐藏层对所述特征向量进行求和处理和平均处理,得到中间层向量;
S403、利用所述神经网络模型网络的输出层所述所述中间层向量进行归一化处理,得到所述目标汉字的样本数据对应的概率值,将所述概率值作为所述目标汉字的字向量。
本实施例中,利用所述神经网络模型对每一所述汉字的样本数据进行训练即可生成每一所述汉字的字向量。例如通过连续词袋模型(CBOW)对每一所述汉字的样本数据进行训练,使每一所述汉字的样本数据依次经过输入层、隐藏层和输出层的训练,从而最终生成每一所述汉字的字向量。
进一步的,在生成所述汉字的字向量后,将所述汉字的字向量输入至对应的神经网络中并获得对应的隐含向量,再对该隐含向量进行相应操作以达到相应的目的。举例来说,当需要进行文本分类时,获取文本分类对应的段落或者句子,通过本实施例提供的汉字字向量生成方法得到文本分类中的汉字字向量,然后将该汉字字向量输入至双向LSTM网络模型或Transformer等编码模型中,并由该模型输出该汉字字向量对应的隐含向量,再通过softmax函数对该隐含向量进行分类,从而达到文本分类的目的。通过本实施例提供的汉字字向量生成方法可以获得更加丰富的语义表示,进而使最终的文本分类结果更加准确。
图5为本发明实施例提供的一种汉字字向量生成装置500的示意性框图,该装置500包括:
划分单元501,用于获取包含多个汉字的训练样本,根据等距分割原则将每一所述汉字按照九宫格的方式进行划分,并计算每一所述汉字在对应所述九宫格的每一网格中的交并比,得到每一所述汉字的初始向量;
权重赋予单元502,用于根据每一所述汉字的造字类型对对应所述汉字的初始向量赋予权重,得到初始几何特征向量;
向量排列单元503,用于根据每一所述汉字的笔划顺序对对应所述汉字的初始几何特征向量中的同维度数值进行排列,得到每一所述汉字对应的目标几何特征向量;
设置单元504,用于根据每一所述汉字在训练样本中的出现频率以及词性重要度设置对应的目标ID;
结合单元505,用于从所述训练样本中选择一个汉字作为目标汉字,将所述目标汉字的目标几何特征向量和所述目标汉字相邻的若干汉字的目标ID分别结合作为所述目标汉字的样本数据;
训练学习单元506,用于将所述目标汉字的样本数据输入到神经网络模型中进行训练学习,得到所述目标汉字的字向量。
在一实施例中,如图6所示,所述划分单元501包括:
等距分割单元601,用于根据等距分割原则将每一所述汉字按照九宫格的方式进行划分;
计算单元602,用于针对每一所述汉字,计算对应所述九宫格的每一网格中所述汉字所占像素与对应所述九宫格中所述汉字的总像素的比例,将计算得到的比例作为每一所述汉字在对应所述九宫格的每一网格中的交并比,并将所述交并比与预设阈值进行比较;
第一比较单元603,用于若所述交并比大于或者等于所述预设阈值,则保留对应网格中的交并比;
第二比较单元604,用于若所述交并比小于所述预设阈值,则将对应网格中的交并比重置为0;
拼接单元605,用于将所述九宫格中的每一网格中的交并比依次进行拼接,得到每一所述汉字的初始向量。
在一实施例中,所述权重赋予单元502包括:
统计单元,用于对所述训练样本中每一所述汉字所属的造字类型进行统计,并根据每种造字类型的出现频率对相应造字类型的汉字的初始向量赋予权重,从而得到所述初始几何特征向量。
在一实施例中,所述向量排列单元503包括:
笔划获取单元,用于针对每一所述汉字,获取对应所述汉字的笔划顺序,并统计每一笔划跨越的网格;
笔划排列单元,用于将每一笔划跨越的网格依次进行排序得到所述汉字的笔划序列,然后将所述笔划序列中各元素对应的初始几何特征向量中的同维度数值,按照所述所述笔划序列中各元素的位次进行排列,得到所述汉字对应的目标几何特征向量。
在一实施例中,如图7所示,所述设置单元504包括:
分配单元701,用于对每一所述汉字在所述训练样本中的出现频率进行统计,并进行排列,然后根据排列后的结果为每一所述汉字分配初始ID;
词性排列单元702,针对每一所述汉字,用于利用最大熵方法识别每一所述汉字在所述训练样本中对应的词性,并将每一所述汉字的词性在所述训练样本中的出现频率进行排序,然后根据出现频率最高的词性为每一所述汉字赋予赋予词性重要度;
相加单元703,用于将每一所述汉字的初始ID和对应的词性重要度进行相加,得到每一所述汉字的训练ID;
归一化单元704,用于对每一所述汉字的训练ID进行归一化处理,得到每一所述汉字的目标ID。
在一实施例中,所述结合单元505包括:
选择单元,用于随机选择所述训练样本中的一个汉字作为目标汉字;
拼接单元,用于将所述目标汉字的目标几何特征向量依次与其最相邻的若干汉字的目标ID进行向量拼接,得到所述目标汉字的样本数据。
在一实施例中,如图8所示,所述训练学习单元506包括:
输入单元801,用于将所述目标汉字的样本数据输入至所述神经网络模型的输入层中,并由所述输入层输出所述目标汉字的样本数据对应的特征向量;
求和及平均单元802,用于利用所述神经网络模型的隐藏层对所述特征向量进行求和处理和平均处理,得到中间层向量;
输出单元803,用于利用所述神经网络模型网络的输出层所述所述中间层向量进行归一化处理,得到所述目标汉字的样本数据对应的概率值,将所述概率值作为所述目标汉字的字向量。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。