中文姓名获取方法、中文姓名提取模型的训练方法及装置

文档序号:1614260 发布日期:2020-01-10 浏览:13次 >En<

阅读说明:本技术 中文姓名获取方法、中文姓名提取模型的训练方法及装置 (Chinese name acquisition method, and training method and device of Chinese name extraction model ) 是由 袁杰 张�杰 陈秀坤 高古明 于 2019-09-25 设计创作,主要内容包括:本申请提供一种中文姓名获取方法、中文姓名提取模型的训练方法及装置,获取每个候选姓名对应的特征向量,将多个特征向量组成特征矩阵,不同候选姓名对应的特征向量不同,无需考虑姓名之间的上下文关系,继而利用特征矩阵训练姓名提取模型中的参数列向量,根据姓名提取模型输出的索引向量中的最大值所处的位置,确定出第一特征向量,在第一特征向量与真实姓名对应的第二特征向量的距离值不等于预设值时,更新姓名提取模型,并将特征矩阵输入更新后的模型中,直到利用更新后的模型确定出的第三特征向量与第二特征向量的距离值等于预设值时,将更新后的模型作为训练好的姓名提取模型,保证训练好的模型能够从一系列姓名中准确的确定出真实姓名。(The application provides a Chinese name acquisition method, a training method and a device of a Chinese name extraction model, which are characterized in that a feature vector corresponding to each candidate name is acquired, a plurality of feature vectors form a feature matrix, the feature vectors corresponding to different candidate names are different without considering the context relationship among the names, then a parameter column vector in the name extraction model is trained by using the feature matrix, a first feature vector is determined according to the position of the maximum value in an index vector output by the name extraction model, when the distance value between the first feature vector and a second feature vector corresponding to a real name is not equal to a preset value, the name extraction model is updated, the feature matrix is input into the updated model, and when the distance value between a third feature vector determined by using the updated model and the second feature vector is equal to the preset value, the updated model is used as the trained name extraction model, the trained model can be ensured to accurately determine the real name from a series of names.)

中文姓名获取方法、中文姓名提取模型的训练方法及装置

技术领域

本申请涉及信息识别技术领域,具体而言,涉及一种中文姓名获取方法、中文姓名提取模型的训练方法及装置。

背景技术

在某些业务场景中,由于数据来源较多,往往会出现一个手机号对应多个姓名的情况出现,比如对于同一个人员,在不同关系网络中,对方在其通讯录的联系人信息保存不一致,例如对于一个具体的人员张三(男性)来说,其父母对其保存的联系人名称可能是昵称“宝贝儿子”,好友或同学对其保存的名称是真实姓名张三,同事和客户保存的名称可能与公司信息有关,比如“xx公司张三”。

然而,现有的提取中文姓名的方法通常基于长句子文本中的文字的上下文语境关系来提取文本中的中文姓名。例如对于一个句子“他在浙江金华出生,他的名字叫金华。”,对上述文本序列先进行分词,然后通过词性的上下文关系,利用深度学习或条件随机场等算法进行序列标注,得到每个分词对应的词性和实体类型,最终结果如下,“他\r在\p浙江\ns金华\ns出生\v,\w他\r的\u名字\n叫\v金华\nr。\w”,其中\ns表示地名,\nr代表人名,\v表示动词,\w表示标点符号。

由于现有技术只能针对具有上下文语境关系的长句子文本进行提取,难以针对没有语义环境的固定名词短语进行姓名的提取,因此,现有技术将无法实现从一系列姓名中准确的确定出真实姓名。

申请内容

鉴于此,本申请实施例的目的在于提供一种中文姓名获取方法、中文姓名提取模型的训练方法及装置,以实现从一系列姓名中准确的确定出真实姓名。

第一方面,本申请实施例提供一种中文姓名提取模型的训练方法,所述方法包括:获取多个候选姓名中的每个候选姓名对应的特征向量,并将所述多个特征向量组成特征矩阵;其中,不同的候选姓名对应的特征向量不同;所述多个候选姓名中包括需要从所述多个候选姓名中确定出的真实姓名;将所述特征矩阵输入至姓名提取模型中,获得索引向量;确定所述索引向量中的最大值在所述索引向量中的位置对应的第一特征向量与所述真实姓名对应的第二特征向量的第一距离值是否等于预设值;在确定所述第一距离值不等于所述预设值时,更新所述姓名提取模型中的参数列向量;其中,所述参数列向量的维度和所述特征向量的维度相同;将所述特征矩阵输入至更新后的姓名提取模型,得到新的索引向量;确定所述新的索引向量中的最大值在所述新的索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值;在确定所述第二距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型。

在上述实现过程中,通过获取每个候选姓名对应的特征向量,将所述多个特征向量组成特征矩阵,其中,不同的候选姓名对应的特征向量不同,使得候选姓名具有唯一性,无需考虑姓名之间的上下文语境关系,继而利用所述特征矩阵来训练所述姓名提取模型中的参数列向量,根据姓名提取模型输出的索引向量中的最大值所处的位置与特征矩阵中的特征向量的对应关系,确定出姓名提取模型预测出的第一特征向量,在第一特征向量与真实姓名对应的第二特征向量之间的距离值不等于预设值时,表征当前获取到的姓名提取模型还不能够准确的从多个候选姓名中确定出真实姓名,继而更新所述姓名提取模型中的参数列向量,并继续将所述特征矩阵输入更新后的姓名提取模型中,直到利用更新后的姓名提取模型确定出的第三特征向量与第二特征向量之间的距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型,继而保证利用训练好的姓名提取模型能够从一系列姓名中准确的确定出真实姓名。

基于第一方面,在一种可能的设计中,所述姓名提取模型为

Figure BDA0002214374880000031

其中,X表示所述多个候选姓名,f(X)表示所述特征矩阵,α表示所述参数列向量;vi表示第i个候选姓名对应的特征向量,z表示所述索引向量;其中,i为大于等于1的整数。

在上述实现过程中,由于所述姓名提取模型中的参数列向量中的每个参数相当于需要与每个特征向量相乘的权重,通过不断调整权重的值,使得所述姓名提取模型输出的索引向量中的最大值对应的特征向量与真实姓名的特征向量相同,以保证训练好的参数列向量对各个候选姓名的区分能力,继而能够保证训练好的姓名提取模型的准确性。

基于第一方面,在一种可能的设计中,获取多个候选姓名中的每个候选姓名对应的特征向量,包括:确定该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的距离和;获取用于表征该候选姓名中的第一个字是否属于姓氏的判断结果;获取该候选姓名中的每个字在所述多个候选姓名中出现的次数和;利用所述距离和、所述判断结果,以及所述次数和,分别给所述对应的特征向量中的对应元素赋予相应的值,得到所述对应的特征向量。

在上述实现过程中,由于距离和能够体现该候选姓名与其他候选姓名之间的相似性,距离和越小,越相似,该候选姓名越可能为真实姓名,同时,由于真实姓名的第一字肯定属于姓氏,而其他候选姓名可能不是姓氏,因此,通过判断该候选姓名是否属于姓氏,可以将真实姓名与其他候选姓名进行简单区分,其次,若该候选姓名中的字出现的次数越多,表征该候选姓名为真实姓名的可能性越大,反之,越小,因此,将所述距离和、所述判断结果,以及所述次数和分别作为该候选选姓名的特征向量的元素,继而保证真实姓名与其他候选姓名的区别,有助于姓名提取模型能够更准确、更快速的确定出候选姓名。

基于第一方面,在一种可能的设计中,更新所述姓名提取模型中的参数列向量,包括:基于所述第二特征向量和所述第一特征向量的差,更新所述姓名提取模型中的参数列向量。

在上述实现过程中,利用第一特征向量与真实姓名对应的特征向量之间的差值对所述参数列向量进行更新,能使更新后的参数列向量能够快速的接近真实的参数列向量,减少训练次数,提高模型训练效率。

基于第一方面,在一种可能的设计中,确定所述第二距离值是否等于所述预设值之后,所述方法还包括:在确定所述第二距离值不等于所述预设值时,确定当前更新次数是否等于预设更新次数;在确定所述当前更新次数等于所述预设更新次数时,从所述第一距离值和所述第二距离值中确定出最小距离值;利用所述最小距离值对应的参数列向量更新所述姓名提取模型。

在上述实现过程中,在对姓名提取模型训练的过程中,可能会存在获取到的距离值一直不等于所述预设值的情况,此时,为了避免训练过程一直持续进行,因此,通过在确定所述当前更新次数等于所述预设更新次数时,结束训练过程,提高训练效率,同时,由于距离值越小,表示利用姓名提取模型确定出的姓名与真实姓名越接近,因此,利用所述最小距离值对应的参数列向量更新所述姓名提取模型,保证姓名提取模型的准确性。

基于第一方面,在一种可能的设计中,确定当前更新次数是否等于预设更新次数之后,所述方法还包括:在确定所述当前更新次数小于所述预设更新次数时,更新所述姓名提取模型中的参数列向量,获得新的更新后的姓名提取模型;在利用新的更新后的姓名提取模型确定出的第三距离值等于所述预设值时,将所述新的更新后的姓名提取模型作为所述训练好的姓名提取模型;或在下一次更新次数等于所述预设更新次数时,利用所述第一距离值、所述第二距离值和所述第三距离值中的最小距离值对应的参数列向量更新所述姓名提取模型。

在上述实现过程中,在确定所述当前更新次数小于所述预设更新次数或当前获取到的距离值不等于预设值时,继续对姓名提取模型进行训练,直到利用新的更新后的姓名提取模型确定出的第三距离值等于所述预设值时,将所述新的更新后的姓名提取模型作为所述训练好的姓名提取模型,或在下一次更新次数等于所述预设更新次数时,利用所述第一距离值、所述第二距离值和所述第三距离值中的最小距离值对应的参数列向量更新所述姓名提取模型,保证训练好的姓名提取模型的精度。

基于第一方面,在一种可能的设计中,获取表征该候选姓名特征的特征向量之前,所述方法还包括:获取相同手机号码对应的多个备选称呼;利用分词方法对所述多个备选称呼进行分词,获得所述多个候选姓名。

在上述实现过程中,利用分词方法对备选称呼进行分词,使得所述多个候选姓名的数量大于等于所述多个备选称呼的数量,增加真实姓名在候选姓名中出现的概率。

第二方面,本申请实施例提供一种中文姓名提取方法,所述方法包括:获取多个候选姓名中每个候选姓名的特征向量,以得到由所述多个特征向量构成的特征矩阵;将所述特征矩阵输入利用第一方面所述的方法训练好的姓名提取模型中,获得索引向量;获取所述索引向量中的最大值在所述索引向量中的位置;确定所述多个候选姓名中与所述位置对应的姓名为真实姓名。

在上述实现过程中,通过获取多个候选姓名中每个候选姓名的特征向量,并将由所述多个特征向量构成的特征矩阵输入训练好的姓名提取模型,由于不同候选姓名对应的特性向量的唯一性,继而能够利用训练好的姓名提取模型快速、准确的从多个候选姓名中准确的确定出真实姓名。

第三方面,本申请实施例提供一种中文姓名提取模型的训练装置,所述装置包括:第一特征向量获单元,用于获取多个候选姓名中的每个候选姓名对应的特征向量,并将所述多个特征向量构成的特征矩阵;其中,不同的候选姓名对应的特征向量不同;所述多个候选姓名中包括需要从所述多个候选姓名中确定出的真实姓名;第一获取单元,用于将所述特征矩阵输入至姓名提取模型中,获得索引向量;第一确定单元,用于确定所述索引向量中的最大值在所述索引向量中的位置对应的第一特征向量与所述真实姓名对应的第二特征向量的第一距离值是否等于预设值;更新单元,用于在确定所述第一距离值不等于所述预设值时,更新所述姓名提取模型中的参数列向量;其中,所述参数列向量的维度和所述特征向量的维度相同;第二获取单元,用于将所述特征矩阵输入至更新后的姓名提取模型,得到新的索引向量;第二确定单元,用于确定所述新的索引向量中的最大值在所述新的索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值;模型确定单元,用于在确定所述第二距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型。

基于第三方面,在一种可能的设计中,所述姓名提取模型为

Figure BDA0002214374880000061

其中,X表示所述多个候选姓名,f(X)表示所述特征矩阵,α表示所述参数列向量;vi表示第i个候选姓名对应的特征向量,z表示所述索引向量;其中,i为大于等于1的整数。

基于第三方面,在一种可能的设计中,所述第一特征向量获单元,还用于确定该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的距离和;以及获取用于表征该候选姓名中的第一个字是否属于姓氏的判断结果;获取该候选姓名中的每个字在所述多个候选姓名中出现的次数和;获取所述距离和、所述判断结果,以及所述次数和为元素的向量,所述向量为所述对应的特征向量。

基于第三方面,在一种可能的设计中,所述更新单元,还用于基于所述第二特征向量和所述第一特征向量的差,更新所述姓名提取模型中的参数列向量。

基于第三方面,在一种可能的设计中,所述装置还包括:次数确定单元,用于在确定所述第二距离值不等于所述预设值时,确定当前更新次数是否等于预设更新次数;最小距离值确定单元,用于在确定所述当前更新次数等于所述预设更新次数时,从所有所述第一距离值和所述第二距离值中确定出最小距离值;模型更新单元,用于利用所述最小距离值对应的参数列向量更新所述姓名提取模型。

基于第三方面,在一种可能的设计中,所述装置还包括:参数更新单元,用于在确定所述当前更新次数小于所述预设更新次数时,更新所述姓名提取模型中的参数列向量,获得新的更新后的姓名提取模型;在利用新的更新后的姓名提取模型确定出的第三距离值等于所述预设值时,将所述新的更新后的姓名提取模型作为所述训练好的姓名提取模型;或在下一次更新次数等于所述预设更新次数时,利用所述第一距离值、所述第二距离值和所述第三距离值中的最小距离值对应的参数列向量更新所述姓名提取模型。

基于第三方面,在一种可能的设计中,所述装置还包括:备选称呼获取单元,用于获取相同手机号码对应的多个备选称呼;候选姓名获取单元,用于利用分词方法对所述多个备选称呼进行分词,获得所述多个候选姓名。

第四方面,本申请实施例提供一种中文姓名获取装置,所述装置包括:第二特征向量获取单元,用于获取多个候选姓名中每个候选姓名的特征向量,以得到由所述多个特征向量构成的特征矩阵;第三获取单元,用于将所述特征矩阵输入利用第一方面所述的方法训练好的姓名提取模型中,获得索引向量;位置获取单元,用于获取所述索引向量中的最大值在所述索引向量中的位置;姓名确定单元,用于确定所述多个候选姓名中与所述位置对应的姓名为真实姓名。

第五方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面和第二方面所述的方法。

第六方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面和第二方面所述的方法。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,图1为本申请实施例提供的一种中文姓名提取模型的训练方法的流程图,所述方法包括步骤:S100、S200、S300、S400、S500、S600以及S700。

S100:获取多个候选姓名中的每个候选姓名对应的特征向量,并将所述多个特征向量组成特征矩阵;其中,不同的候选姓名对应的特征向量不同;所述多个候选姓名中包括需要从所述多个候选姓名中确定出的真实姓名。

S200:将所述特征矩阵输入至姓名提取模型中,获得索引向量。

S300:确定所述索引向量中的最大值在所述索引向量中的位置对应的第一特征向量与所述真实姓名对应的第二特征向量的第一距离值是否等于预设值。

S400:在确定所述第一距离值不等于所述预设值时,更新所述姓名提取模型中的参数列向量;其中,所述参数列向量的维度和所述特征向量的维度相同。

S500:将所述特征矩阵输入至更新后的姓名提取模型,得到新的索引向量。

S600:确定所述新的索引向量中的最大值在所述新的索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值。

S700:在确定所述第二距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型。

下面对上述方法进行详细介绍:

在某些业务场景中,由于数据来源较多,往往会出现一个手机号对应多个姓名的情况出现,比如对于同一个人员,在不同关系网络中,对方在其通讯录的联系人信息保存不一致,因此,如何能够准确的从一个手机号对应的多个姓名中提取真实姓名以解决一些姓名匹配的业务就非常有价值了。例如,帮助公安民警从多个候选姓名中快速准确的找到犯罪嫌疑人的真实姓名,可以便于后续的调查取证和案件侦破。

在S100之前,所述方法还包括步骤:A和B。

A:获取相同手机号码对应的多个备选称呼。

在实际实施过程中,A可以按照如下方式实施,针对同一个手机号码,收集不同人对该手机号码对应的联系人的姓名称呼,其中,收集备选称呼的手段不做具体要求。其中,手机号码不做限制。一个手机号码对应的备选称呼越多和/或训练模型所用的手机号码越多,相当于样本数据越多,势必越能提高训练好的姓名提取模型的适用性和性能。

B:利用分词方法对所述多个备选称呼进行分词,获得所述多个候选姓名。

由于多个备选称呼中可能不存在真实姓名,因此,为了增加真实姓名在候选姓名中出现的概率,获取相同手机号码对应的多个备选称呼之后,利用分词的方法对所述多个备选称呼中的能够进行分词的备选称呼进行分词处理,获得所述多个候选姓名;可以理解的是,对于能够进行分词的备选称呼进行分词,无法进行分词的备选称呼不进行分词,例如,“张三”,对“张三”进行分词处理后仍然是“张三”,对“xx公司张三”会被分词为(“xx”,“公司”和“张三”)或者(“xx公司”和张三)。

由于分词处理可以把一个备选称呼划分一个、两个、三个等候选姓名,因此,利用分词方法所获得的候选姓名的数量大于等于备选称呼的数量。值得一提的是,若一个备选称呼只能被划分为一个候选姓名,相当于该备选称呼无法进行划分。

其中,分词方法可以为JIEBA分词方法、HANLP分词法,以及STANFORD分词法等,由于利用分词方法对所述多个备选称呼进行分词的具体实施方式为本领域技术人员所熟知的内容,因此在此不再赘述。

S100:获取多个候选姓名中的每个候选姓名对应的特征向量,并将所述多个特征向量组成特征矩阵;其中,不同的候选姓名对应的特征向量不同;所述多个候选姓名中包括需要从所述多个候选姓名中确定出的真实姓名。

其中,在本本实施例中,定义所述多个候选姓名的数量为m,其中,m为大于等于2整数,m的取值根据实际情况而定,每个对应的特征向量的维度n*1,在其他实施例中,每个特征向量对应的维度也可以为1*n,其中,n为大于等于2的正整数,n的取值根据实际需求而定。n的值越大,不同候选姓名对应的特征向量之间的相似度越小,越有利于姓名的区分。

定义特征映射函数为f,xi表示候选姓名中的第i个候选姓名,该候选姓名对应的特征向量vi定义如下:

vi=f(xi)i=1,2,..m

因此,针对一个包含m个候选姓名的集合X,X=<x1,x2,...,xi,...,xm>,在获取m个候选姓名中的每个候选姓名对应的特征向量之后,得到一个由所述多个特征向量构成的维度为n*m的特征矩阵:

f(X)=<v1,v2,...,vi,...,vm>

在获取到多个候选姓名之后,为了能够更好的区分候选姓名,使得每个候选姓名具有唯一性,因此,作为一种实施方式,S100包括步骤:C、D、E和F。

C:确定该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的距离和。

针对多个候选姓名中的每个候选姓名,利用Jaccard算法计算该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的Jaccard距离,Jaccard距离用来度量两个集合之间的差异性。其中,两个候选姓名之间的Jaccard距离越小,表示两个候选姓名之间越相似。由于利用Jaccard算法计算两个候选姓名之间的Jaccard距离为本领域技术人员所熟知的内容,因此在此不再赘述。

例如:集合A={a,b,c,d},集合B={c,d,e,f},A∩B={c,d},A∪B={a,b,c,d,e,f},Jaccard距离为:1–1/3=2/3。

D:获取用于表征该候选姓名中的第一个字是否属于姓氏的判断结果。

将百家姓字典、书籍中出现的姓氏字典和历史人名的姓氏词典等姓氏词典中的姓氏进行预先存储,收集的姓氏数据越多,越能保证判断结果的准确性,针对所述多个候选姓名中的每个候选姓名,确定出该候选姓名中的第一个字,通过字符比较,确定所述候选姓名的第一个字是否存在于预先存储的库中,若存在,获取用于表征该候选姓名中的第一个字是属于姓氏的判断结果,若不存在,获取用于表征该候选姓名中的第一个字不属于姓氏的判断结果。在本实施例中,用1表示属于姓氏的判断结果,用0表示不属于姓氏的判断结果。在其他实施例中,也可以用-1,-2,2等其他数字表示是否属于姓氏的判断结果。

E:获取该候选姓名中的每个字在所述多个候选姓名中出现的次数和。

作为一种实施方式,针对该候选姓名中的每个字,通过将该字与所述多个候选姓名中的每个字进行一一比较,确定出该字与所述多个候选姓名中的字相同的次数,继而可以得到该候选姓名中的每个字在所述多个候选姓名中出现的次数和。

例如,所述多个候选姓名包括:“张三”、“小张”、“儿子”,“张”的次数为2,针对候选姓名张三,将“张”与所述多个候选姓名中的每个字进行一一比较,确定出“张”与所述多个候选姓名中的字相同的次数为2,即张在候选姓名中出现的次数为2;将“三”与所述多个候选姓名中的每个字进行一一比较,确定出“张”与所述多个候选姓名中的字相同的次数为1,即张在候选姓名中出现的次数为1。因此,候选姓名张三中的每个字在所述多个候选姓名中出现的次数和为2+1=3。

作为一种方式,在确定出该候选姓名中每个字出现的次数之后,建立与所述多个候选姓名对应的字与次数的第一对应关系,在再次获取到该字时,从所述第一对应关系中快速查找出与该字对应的次数,提高效率。

作为一种实施方式,预先确定出所述多个候选姓名中的每个字在所述多个候选姓名的总字数中出现的次数,建立并存储与所述多个候选姓名对应的字与次数的第二对应关系,针对所述多个候选姓名中的每个候选姓名,基于该候选姓名中的每个字,从所述第二对应关系中快速的查找出与该字对应的次数,继而确定出该候选姓名中的每个字出现的次数的和。

例如,所述多个候选姓名包括:“张三”、“小张”、“儿子”,“张”的次数为2,“三”的次数为1,“小”的次数为1,“儿”的次数为1,“子”的次数为1。候选姓名“张三”中的每个字在所述多个候选姓名中出现的次数和为2+1=3。候选姓名“儿子”中的每个字在所述多个候选姓名中出现的次数和为1+1=2。

其中,C、D和E的执行顺序不作限制。

F:获取所述距离和、所述判断结果,以及所述次数和为元素的向量,所述向量为所述对应的特征向量。

其中,在本实施例中,所述判断结果的值为0或1。

针对所述多个候选姓名中的每个候选姓名,在获得该候选姓名对应的距离和、所述判断结果,以及次数和之后,利用该候选姓名对应的距离和的值赋值给该候选姓名对应的特征向量中的第一个元素,将该候选姓名对应的判断结果的值赋值给该候选姓名对应的特征向量中的第二个元素,将该候选姓名对应的次数和的值赋值给该候选姓名对应的特征向量中的第三个元素,继而得到所述对应的特征向量。

值得一提的是,可以分别将该候选姓名对应的距离和的值、所述次数和的值和判断结果的值赋值给该候选姓名对应的特征向量中的任意一个元素。该候选姓名对应的距离和的值一次只能赋予给一个特征向量中的一个元素,可以理解的是,该候选姓名对应的距离和的值不能同时赋予给所述对应的特征向量中的两个元素、三个元素等多个元素。同理,所述次数和的值和判断结果的值亦如此。

例如,在该候选姓名的所述距离和为1.5、所述判断结果为0,以及所述次数和为2时,所述候选姓名的特征向量可以为[1.5,0,2],也可以为[1.5,2,0],也可以为[2,1.5,0],可以理解的是,这三个维度的值在所述对应的特征向量中的位置不作限制。只要保证每个候选姓名均是利用相同的方式得到特征向量即可。

作为一种实施方式,利用所述距离和,以及所述判断结果,分别给所述对应的特征向量中的对应元素赋予相应的值,得到所述对应的特征向量。

作为一种实施方式,S100包括:获取该候选姓名的字数;该候选姓名中的每个字在所述多个候选姓名中出现的频率的和;获取该候选姓名中的每个字在所述多个候选姓名中出现的次数和;获取用于表征该候选姓名中的第一个字是否属于姓氏的判断结果;确定该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的距离和;获取所述距离和、所述判断结果、所述次数和、所述字数,以及所述频率的和为元素的向量,所述向量为所述对应的特征向量。S200:将所述特征矩阵输入至姓名提取模型中,获得索引向量。

其中,所述姓名提取模型为

Figure BDA0002214374880000141

其中,X表示所述多个候选姓名,f(X)表示所述特征矩阵,α表示所述参数列向量;vi表示第i个候选姓名对应的特征向量,z表示所述索引向量;其中,i为大于等于1的整数。

其中,在本实施例中,通过给所述化参数列向量α中的所有元素赋值为0来初始化α。在其他实施例中,也可以给所述化参数列向量α中的元素赋除0以外的其他值来进行初始化。参数列向量α的维度为n*1,索引向量z的维度为m*1。

为了对所述姓名提取模型中的参数列向量进行训练,在参数列向量训练结束之后,就能得到训练好的姓名提取模型,因此,针对所述多个候选姓名,在获取到与所述多个候选姓名对应的特征矩阵f(X)之后,将所述特征矩阵输入所述姓名提取模型中,获得索引向量z中各个元素的值。

S300:确定所述索引向量中的最大值在所述索引向量中的位置对应的第一特征向量与所述真实姓名对应的第二特征向量的第一距离值是否等于预设值。其中,为了保证训练好的提取模型的性能,在本实施例中,所述预设值为0。在其他实施例中,所述预设值也可以为大于0小于1的数。

在获取到所述索引向量之后,确定出所述索引向量中的元素的最大值,在确定出元素的最大值之后,确定该最大值在该索引向量中的位置,该最大值在该索引向量中的位置由该最大值在所述索引向量中的行号表示,确定出该最大值在所述索引向量中的行号之后,从所述特征矩阵中查找出列号的值与该最大值在所述索引向量中的行号的值相等的所述第一特征向量,为了确定利用所述姓名提取模型预测出的姓名是否与真实姓名相同,因此,确定出第一特征向量与所述真实姓名对应的第二特征向量之间的欧式距离值,其中,该欧式距离值为第一距离值,将所述第一距离值与所述预设值进行作差比较,在差值为0时,表征所述第一距离值等于所述预设值,即利用所述姓名提取模型预测出的姓名和真实姓名相同;在差值不为0时,表征所述差值不等于预设值,即利用所述姓名提取模型预测出的姓名和真实姓名不同。

例如,在索引向量

Figure BDA0002214374880000161

真实姓名的第二特征向量为

Figure BDA0002214374880000162

时,所述索引向量中的最大值为8,所述最大值对应的位置为3,那么第一特征向量为

Figure BDA0002214374880000163

因此,第一特征向量与第二特性向量之间的第一距离值为

Figure BDA0002214374880000164

值得一提的是,在所述索引向量中的存在值相同的至少两个最大值时,从所述至少两个最大值在所述索引向量中的位置中任意选取一个位置,继而根据选取出的位置确定与该选取出的位置对应的第一特征向量。

S400:在确定所述第一距离值不等于所述预设值时,更新所述姓名提取模型中的参数列向量;其中,所述参数列向量的维度和所述特征向量的维度相同。

可以理解的是,在所述姓名提取模型中的参数列向量被更新后,所述姓名提取模型相当于也被更新了。

在利用S300确定出所述第一距离值不等于所述预设值时,需要对最近一次获取到的参数列向量进行更新,为了使得更新后的参数列向量能够快速的接近真实的参数列向量,减少训练次数,提高模型训练效率,因此,作为一种实施方式,S400包括:基于所述第二特征向量和所述第一特征向量的差,更新所述姓名提取模型中的参数列向量。

通过将所述第二特征向量与所述第一特征向量作差,得到差向量,其中,差向量的维度和所述参数列向量的维度相同,利用所述差向量和所述参数列向量的和更新所述姓名提取模型中的参数列向量,可以理解的是,所述差向量和所述参数列向量的和为更新后的参数列向量。

例如,第二特征向量为[1,2,3]T,第一特征向量为[2,2,3]T,那么,所述差向量为[-1,0,0]T,假设所述参数列向量为[0,0,0]T,那么更新后的参数列向量为所述差向量为[-1,0,0]T和所述参数列向量为[0,0,0]T的和,即所述更新后的参数列向量为[-1,0,0]T

作为一种实施方式,通过将所述第一特征向量与所述第二特征向量作差,得到差向量,利用所述差向量和所述参数列向量的和更新所述姓名提取模型中的参数列向量。

在其他实施例中,也可以采用其他方式更新所述参数列向量。

S500:将所述特征矩阵输入至更新后的姓名提取模型,得到新的索引向量。

在获取到更新后的姓名提取模型之后,为了验证更新后的姓名提取模型是否能够真实的预测出真实姓名,因此,将所述特征矩阵输入更新后的姓名提取模型,得到新的索引向量中各个元素的值,可以理解的是,所述新的索引向量中的各个元素的值与上一次计算出的索引向量中对应元素的值不完全相同。由于S500的具体实施方式与S200相同,因此在此不再赘述。

S600:确定所述新的索引向量中的最大值在所述新的索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值。

由于S600的具体实施方式与S300的具体实施方式相同,因此不再赘述。

S700:在确定所述第二距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型。

在确定所述第二距离值等于所述预设值时,表征利用所述更新后的姓名提取模型预测出的姓名与真实姓名相同,因此,将所述更新后的姓名提取模型作为训练好的姓名提取模型。可以理解的是,所述更新后的姓名提取模型中的参数列向量为所述训练好的姓名提取模型中的参数列向量。

作为一种实施方式,在S600之后,所述方法还包括:在确定所述第二距离值不等于所述预设值时,执行S400-S600,直到利用姓名提取模型预测出的姓名和真实姓名相同。

由于存在无法训练出能够利用姓名提取模型准确的确定出真实姓名的情况,因此,为了在保证训练好的姓名提取模型的性能的条件下,避免训练过程陷入死循环,因此,作为一种实施方式,在S300之后,所述方法还包括步骤:G、H和I。

G:在确定所述第二距离值不等于所述预设值时,确定当前更新次数是否等于预设更新次数。

其中,所述预设更新次数可以为8,10,15,18等正整数,其中,所述预设次数越高,训练好的姓名提取模型的精度越高,但是训练模型所花时间也相对较长。

在确定出第一特征向量与所述真实姓名对应的第二特征向量之间的欧式距离值不等于所述预设值时,确定出当前更新次数,在确定出当前更新次数之后,通过将所述当前更新次数与所述预设更新次数进行作差比较,在差值为0时,确定当前更新次数等于预设更新次数,在差值不为0时,确定当前更新次数不等于预设更新次数。

例如,在第二次对姓名提取模型进行更新,并在利用第二次更新后的姓名提取模型确定出的距离值不等于所述预设值时,确定当前更新次数为2。

H:在确定所述当前更新次数等于所述预设更新次数时,从所述第一距离值和所述第二距离值中确定出最小距离值。

针对所述多个候选姓名,每个参数列向量均对应一个距离值,因此,在确定所述当前更新次数等于所述预设更新次数时,为了保证训练好的姓名提取模型的性能,通过将所有所述距离值中的每两个距离值进行作差比较,确定出值最小距离值,其中,所述值最小的距离值为所述最小距离值。

I:用所述最小距离值对应的参数列向量更新所述姓名提取模型。

基于预先存储的参数列向量与距离值的对应关系中,查找出与所述最小距离值对应的参数列向量,利用所述对应的参数列向量更新所述姓名提取模型中的参数列向量,得到更新后的姓名提取模型。

为了保证训练好的姓名提取模型的性能,因此,作为一种实施方式,在G之后,所述方法还包括:在确定所述当前更新次数小于所述预设更新次数时,获得新的更新后的姓名提取模型;在利用新的更新后的姓名提取模型确定出的第三距离值等于所述预设值时,将所述新的更新后的姓名提取模型作为所述训练好的姓名提取模型;或在下一次更新次数等于所述预设更新次数时,利用所述第一距离值、所述第二距离值和所述第三距离值中的最小距离值对应的参数列向量更新所述姓名提取模型。

其中,更新所述姓名提取模型中的参数列向量的具体实施方式与S400-S600、G、H和I相同,因此,在此不再赘述。

下面对中文姓名提取模型的训练方法进行一个总体介绍。

首先,获取与所述多个候选姓名对应的特征矩阵;将所述特征矩阵输入初始化的姓名提取模型中,获得第一索引向量;确定所述第一索引向量中的最大值对应的第一特征向量与真实姓名对应的特征向量的第一距离值是否等于预设值;在确定所述第一距离值不等于所述预设值时,更新所述初始化的姓名提取模型中的参数列向量,得到第一次更新后的姓名提取模型;将所述特征矩阵输入至第一次更新后的姓名提取模型,得到第二索引向量;确定所述第二索引向量中的最大值在所述第二索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值;在确定所述第二距离值不等于所述预设值时,确定当前更新次数是否等于预设次数;在确定当前更新次数不等于预设更新次数时,更新第一次更新后的姓名提取模型中的参数列向量,得到第二次更新后的姓名提取模型;将所述特征矩阵输入至所述第二次更新后的姓名提取模型,获得第三索引向量;确定所述第三索引向量中的最大值在所述第三索引向量中的位置对应的第四特征向量与所述第二特征向量的第三距离值是否等于所述预设值;在确定所述第三距离值等于所述预设值时,将所述第二次更新后的姓名提取模型位训练好的姓名提取模型。

或者,在确定所述第三距离值不等于所述预设值时,确定当前更新次数是否等于所述预设次数,在确定当前更新次数等于所述预设次数时,从所述第一距离值、所述第二距离值和所述第三距离值中确定出最小距离值,利用所述最小距离值对应的参数列向量更新所述初始化的姓名提取模型,得到训练好的姓名提取模型。

请参照图2,本申请实施例提供一种中文姓名获取方法的流程示意图,所述方法包括步骤:S10、S20、S30以及S40。

S10:获取多个候选姓名中每个候选姓名的特征向量,以得到由所述多个特征向量构成的特征矩阵。

S20:将所述特征矩阵输入上述实施方式所述的中文姓名提取模型的训练方法训练好的姓名提取模型中,获得索引向量。

S30:获取所述索引向量中的最大值在所述索引向量中的位置。

S40:确定所述多个候选姓名中与所述位置对应的姓名为真实姓名。

由于S10-S30的具体实施方式和上述中文姓名提取模型的训练方法的实施方式基本相同,唯一不同的是,S20所利用的模型是利用上述中文姓名提取模型的训练方法训练好的姓名提取模型,因此,在此不再赘述。

在实际实施过程中,S40可以按照如下方式实施,由于所述位置由所述最大值在所述索引向量中的行号表示,因此,在获取到所述位置之后,从所述特征矩阵中查找出与列号等于所述最大值在所述索引向量中的行号的特征向量,由于所述特征矩阵中的特征向量与姓名是一一对应的,因此,能够确定出该特征向量对应的姓名,即所述对应的为所述真实姓名。

请参照图3,本申请实施例提供一种中文姓名提取模型的训练装置,所述装置包括:

第一特征向量获单元410,用于获取多个候选姓名中的每个候选姓名对应的特征向量,并将所述多个特征向量组成特征矩阵;其中,不同的候选姓名对应的特征向量不同;所述多个候选姓名中包括需要从所述多个候选姓名中确定出的真实姓名。

第一获取单元420,用于将所述特征矩阵输入至姓名提取模型中,获得索引向量。

第一确定单元430,用于确定所述索引向量中的最大值在所述索引向量中的位置对应的第一特征向量与所述真实姓名对应的第二特征向量的第一距离值是否等于预设值。

更新单元440,用于在确定所述第一距离值不等于所述预设值时,更新所述姓名提取模型中的参数列向量;其中,所述参数列向量的维度和所述特征向量的维度相同。

第二获取单元450,用于将所述特征矩阵输入至更新后的姓名提取模型,得到新的索引向量。

第二确定单元460,用于确定所述新的索引向量中的最大值在所述新的索引向量中的位置对应的第三特征向量与所述第二特征向量的第二距离值是否等于所述预设值。

模型确定单元470,用于在确定所述第二距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型。

作为一种实施方式,所述姓名提取模型为其中,X表示所述多个候选姓名,f(X)表示所述特征矩阵,α表示所述参数列向量;vi表示第i个候选姓名对应的特征向量,z表示所述索引向量;其中,i为大于等于1的整数。

作为一种实施方式,所述第一特征向量获单元410,还用于确定该候选姓名与所述多个候选姓名中剩余的每个候选姓名之间的距离和;以及获取用于表征该候选姓名中的第一个字是否属于姓氏的判断结果;获取该候选姓名中的每个字在所述多个候选姓名中出现的次数和;获取所述距离和、所述判断结果,以及所述次数和为元素的向量,所述向量为所述对应的特征向量。

作为一种实施方式,所述更新单元440,还用于基于所述第二特征向量和所述第一特征向量的差,更新所述姓名提取模型中的参数列向量。

作为一种实施方式,所述装置还包括:次数确定单元,用于在确定所述第二距离值不等于所述预设值时,确定当前更新次数是否等于预设更新次数;最小距离值确定单元,用于在确定所述当前更新次数等于所述预设更新次数时,从所有所述第一距离值和所述第二距离值中确定出最小距离值;模型更新单元,用于利用所述最小距离值对应的参数列向量更新所述姓名提取模型。

作为一种实施方式,所述装置还包括:参数更新单元,用于在确定所述当前更新次数小于所述预设更新次数时,更新所述姓名提取模型中的参数列向量。

作为一种实施方式,所述装置还包括:备选称呼获取单元,用于获取相同手机号码对应的多个备选称呼;候选姓名获取单元,用于利用分词方法对所述多个备选称呼进行分词,获得所述多个候选姓名。

第四方面,本申请实施例提供一种中文姓名获取装置,所述装置包括:

第二特征向量获取单元510,用于获取多个候选姓名中每个候选姓名的特征向量,以得到由所述多个特征向量构成的特征矩阵。

第三获取单元520,用于将所述特征矩阵输入利用第一方面所述的方法训练好的姓名提取模型中,获得索引向量。

位置获取单元530,用于获取所述索引向量中的最大值在所述索引向量中的位置。

姓名确定单元540,用于确定所述多个候选姓名中与所述位置对应的姓名为真实姓名。

本实施例对的各功能单元实现各自功能的过程,请参见上述图1和图2所示实施例中描述的内容,此处不再赘述。

请参照图5,本申请实施例提供一种电子设备100,应用于图1和图2所述的方法,在本申请实施例中,电子设备100可以是平板电脑、智能手机、个人数字助理(personaldigital assistant,PDA)等。

电子设备可以包括:存储器102、处理101和通信总线,通信总线用于实现这些组件的连接通信。

存储器102用于存储参数列向量中的元素值、多个候选姓名中每个候选姓名的特征向量、姓名提取模型、训练好的姓名提取模型,以及本申请实施例提供的中文姓名提取模型的训练方法、中文姓名提取方法及装置对应的计算程序指令等各种数据,其中,存储器102可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(ReadOnly Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM)等。

处理器101用于读取并运行存储于存储器中的与中文姓名提取模型的训练方法对应的计算机程序指令时,执行本申请实施例提供的中文姓名提取模型的训练的方法,以对姓名提取模型进行训练,得到训练好的姓名提取模型。

处理器101用于读取并运行存储于存储器中的与中文姓名提取方法对应的计算机程序指令时,执行本申请实施例提供的中文姓名提取方法,以确定所述多个候选姓名中与所述位置对应的姓名为真实姓名。

其中,处理器101可能是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、分立门或者晶体管逻辑器件、分立硬件组件。

此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。

综上所述,本申请各实施例提出的中文姓名获取方法、中文姓名提取模型的训练方法及装置,通过获取每个候选姓名对应的特征向量,将所述多个特征向量组成特征矩阵,其中,不同的候选姓名对应的特征向量不同,使得候选姓名具有唯一性,无需考虑姓名之间的上下文语境关系,继而利用所述特征矩阵来训练所述姓名提取模型中的参数列向量,根据姓名提取模型输出的索引向量中的最大值所处的位置与特征矩阵中的特征向量的对应关系,确定出姓名提取模型预测出的第一特征向量,在第一特征向量与真实姓名对应的第二特征向量之间的距离值不等于预设值时,表征当前获取到的姓名提取模型还不能够准确的从多个候选姓名中确定出真实姓名,继而更新所述姓名提取模型中的参数列向量,并继续将所述特征矩阵输入更新后的姓名提取模型中,直到利用更新后的姓名提取模型确定出的第三特征向量与第二特征向量之间的距离值等于所述预设值时,将所述更新后的姓名提取模型作为训练好的姓名提取模型,继而保证利用训练好的姓名提取模型能够从一系列姓名中准确的确定出真实姓名。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于GPT-2模型的中文电子病历实体识别方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!