首页> 中国专利> 句子向量处理方法、句子匹配方法、装置、设备和介质

句子向量处理方法、句子匹配方法、装置、设备和介质

摘要

本发明涉及人工智能技术领域,提供一种句子向量处理方法、句子匹配方法、装置、设备和介质。该向量处理方法通过对获取的待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括被包含在预设词向量字典中且与常规词向量关联的常规字词;根据预设词向量字典确定待替换字词中是否存在特殊字词;在待替换字词中存在特殊字词时,获取与待替换句子中的各常规字词关联的所有常规词向量;根据所有常规词向量以及预设词向量叠加处理方法,确定与特殊字词对应的特殊词向量;将特殊词向量以及所有常规词向量,关联记录为待替换句子对应的句子向量。本发明较好还原了特殊字词对应的词向量,提高了其它模型对该句子向量进行语义分析的准确率。

著录项

  • 公开/公告号CN112380860A

    专利类型发明专利

  • 公开/公告日2021-02-19

    原文格式PDF

  • 申请/专利权人 平安科技(深圳)有限公司;

    申请/专利号CN202011268270.2

  • 发明设计人 吴信朝;周宸;周宝;陈远旭;

    申请日2020-11-13

  • 分类号G06F40/289(20200101);G06F40/30(20200101);G06F40/211(20200101);G06F16/33(20190101);G06K9/62(20060101);

  • 代理机构44325 深圳众鼎专利商标代理事务所(普通合伙);

  • 代理人周燕君

  • 地址 518000 广东省深圳市福田区福田街道福安社区益田路5033号平安金融中心23楼

  • 入库时间 2023-06-19 09:55:50

说明书

技术领域

本发明涉及人工智能技术领域,尤其涉及一种句子向量处理方法、句子匹配方法、装置、设备和介质。

背景技术

随着科学技术的发展,人工智能技术也得以应用在各个领域,例如自然语言处理领域、图像识别领域等。在自然语言处理领域中,越来越多的语言模型可以实现如文字识别、文本相似度比较等功能。

其中,文本相似度比较主要是比较两个句子之间的语义相似度,而在对句子进行语义分析时,常常需要对句子中的代词以及集外词(集外词是指在应用场景下的词典中未出现过的词语)进行消歧处理。现有技术中的消歧处理通常是通过人工标注的方式将代词替换成目标词,或将集外词替换成特殊符号。上述方法存在以下不足之处:首先,当句子中出现较多实体对象时,可能会将代词替换成错误的目标词,进而导致句子语义偏差较大;其次,由于特殊字符并不存在于词典中,且每一集外词存在各自的含义,将其替换成特殊字符后,会降低原始句子的语义,进而导致句子语义解析出现偏差或错误。

发明内容

本发明实施例提供一种句子向量处理方法、句子匹配方法、装置、设备和介质,以解决现有技术中语义解析中语义偏差较大的问题。

一种句子向量处理方法,包括:

对待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括常规字词;每一个所述常规字词均为被包含在预设词向量字典中、且与常规词向量关联的待替换字词;

根据预设词向量字典确定所有待替换字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在、且并未与词向量关联的待替换字词;

在所述待替换句子中存在特殊字词时,根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量;

根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量;

将所述特殊词向量以及获取的所有所述常规词向量,关联记录为所述待替换句子对应的句子向量。

一种句子匹配方法,包括:

获取待匹配句子以及样本句子集;所述样本句子集包括至少一个样本句子;一个所述样本句子关联一个样本向量;

对所述待匹配句子进行分词预处理,得到多个待匹配字词,并根据预设词向量字典确定所有待匹配字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在且并未关联词向量的待匹配字词;

在所有所述待匹配字词中存在特殊字词时,将所述待匹配句子记录为待替换句子,并根据上述句子向量处理方法,得到与所述待替换句子对应的句子向量;

根据所述句子向量以及各所述样本向量,确定所述待匹配句子与各所述样本句子之间的语义相似度;

选取与各所述样本句子对应的语义相似度中的最大值,在所述最大值大于或等于预设相似度阈值时,将与所述最大值对应的所述样本句子记录为与所述待匹配句子对应的相似句子。

一种句子向量处理装置,包括:

句子分词模块,用于对待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括常规字词;每一个所述常规字词均为被包含在预设词向量字典中、且与常规词向量关联的待替换字词;

特殊字词检测模块,用于根据预设词向量字典确定所有待替换字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在、且并未与词向量关联的待替换字词;

词向量获取模块,用于在所述待替换句子中存在特殊字词时,根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量;

向量叠加模块,用于根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量;

句子向量记录模块,用于将所述特殊词向量以及获取的所有所述常规词向量,关联记录为所述待替换句子对应的句子向量。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述句子向量处理方法,或者所述处理器执行所述计算机程序时实现上述句子匹配方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述句子向量处理方法或者所述计算机程序被处理器执行时实现上述句子匹配方法。

上述句子向量处理方法、句子匹配方法、装置、设备和介质,该句子向量处理方法,通过获取待替换句子,并对待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括常规字词;每一个所述常规字词均为被包含在预设词向量字典中、且与常规词向量关联的待替换字词;根据预设词向量字典确定所有待替换字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在、且并未与词向量关联的待替换字词;在所有所述待替换字词中存在特殊字词时,根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量;根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量;将所述特殊词向量以及获取的所有所述常规词向量,关联记录为所述待替换句子对应的句子向量。

相较于现有技术,本发明通过结合与特殊字词对应的前后文的词向量确定特殊字词对应的特殊词向量,可以避免人工标注出现标注错误的现象,以及出现特殊字符不能代表特殊字词原有语义的现象。本发明针对句子中出现的特殊字词,利用与特殊字词对应的前后文的词向量确定特殊字词对应的特殊词向量,不仅可以保证包含特殊词向量的句子向量符合该句子的语义,还在应用该待替换句子的句子向量进行语义分析时,使得其语义分析结果的准确率较高。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中句子向量处理方法的一应用环境示意图;

图2是本发明一实施例中句子向量处理方法的一流程图;

图3是本发明一实施例中句子向量处理方法中步骤S20的一流程图;

图4是本发明一实施例中句子向量处理方法中步骤S40的一流程图;

图5是本发明一实施例中句子向量处理装置的一原理框图;

图6是本发明一实施例中句子向量处理装置中特殊字词检测模块的一原理框图;

图7是本发明一实施例中句子向量处理装置中向量叠加模块的一原理框图;

图8是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的句子向量处理方法,该句子向量处理方法可应用如图1所示的应用环境中。具体地,该句子向量处理方法应用在句子向量处理系统中,该句子向量处理系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于解决将代词替换成错误的目标词,或者将其集外词换成特殊字符句子之后,导致语义偏差较大的问题。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一实施例中,如图2所示,提供一种句子向量处理方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:

S10:获取待替换句子,并对待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括常规字词;每一个所述常规字词均为被包含在预设词向量字典中、且与常规词向量关联的待替换字词。

其中,待替换句子可以为任意场景下的中文句子,示例性地,该待替换句子可以为推荐系统中的推荐信息,也可以为问答系统中的对话句子。常规字词指的是被包含在预设词向量字典中,且存在关联的常规词向量的待替换字词。

具体地,在获取待替换句子之后,对待替换句子进行分词预处理,得到多个待替换字词;进一步地,在进行分词预处理过程中,需要去掉待替换句子中的停用词(如“的”、“是”、“把”等),也即,待替换字词中不存在上述停用词。其中,可以通过如下中文分词工具对待替换句子进行分词预处理:Jieba,SnowNLP,PkuSeg,THULAC,HanLP等工具。

进一步地,在对待替换句子进行分词预处理时,也可以根据预设词向量字典进行分词预处理,进而可以在分词之后,即可确定该待替换句子中是否仅存在常规字词。

S20:根据预设词向量字典确定所有待替换字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在、且并未与词向量的关联待替换字词。

其中,预设词向量字典可以根据具体应用场景,选取该应用场景下各种不同文本进行训练得到。

进一步地,特殊字词可以为指示代词(如他、她等),也可以为集外词(集外词指的是除了代词之外其它未被包含在预设向量字典中的且未与任意词向量关联的待替换字词)。示例性地,假设预设词向量字典中包括:“深圳”、“是”、“喜欢”以及“城市”四个字词以及与各字词对应的词向量;而待替换句子为“深圳是我非常喜欢的城市”,对待替换句子进行分词预处理之后,得到“深圳”、“是”、“他”、“非常”、“喜欢”、“城市”(步骤S10中已指出“的”为停用词,需要去掉),可以知道“他”为指示代词,“非常”为集外词,因此对于该预设词向量字典而言,“他”以及“非常”即为特殊字词。

具体地,如图3所示,步骤S20中,也即所述根据预设词向量字典确定所有待替换字词中是否存在特殊字词,包括:

S201:根据所述预设词向量字典确定与所述待替换句子中的各常规字词关联的常规词向量,并采用各所述常规词向量替换所述待替换句子中与其关联的各所述常规字词,得到初始替换向量。

在对待替换句子进行分词预处理,得到多个待替换字词之后,根据预设词向量字典确定与待替换句子中各常规字词关联的常规词向量,并且采用各常规词向量替换待替换句子中与其关联的各常规字词,得到初始替换向量。可以理解地,在预设词向量字典中包含每一常规字词且与其关联的常规词向量,因此替换时,将每一常规字词均替换成与其对应的常规词向量。

S202:检测所述初始替换向量中是否存在未被替换为常规词向量的待替换字词。

S203:在存在未被替换为常规词向量的待替换字词时,将所述未被替换的待替换字词记录为所述待替换句子中存在的所述特殊字词。

具体地,在根据所述预设词向量字典确定与所述待替换句子中的各常规字词关联的常规词向量,并采用各所述常规词向量替换所述待替换句子中与其关联的各所述常规字词,得到初始替换向量之后,检测初始替换向量中是否仍然存在未被替换为常规词向量的待替换字词;在初始替换向量中仍存在未被替换为常规词向量的待替换字词时,将未被替换的待替换字词记录为待替换句子中存在的特殊字词。

进一步地,在初始替换向量中不存在未被替换为常规词向量的待替换字词,则表征待替换字词中各字词均为常规字词,进而不需要对该待替换句子进行步骤S30至S50的方法。

S30:在所有所述待替换字词中存在特殊字词时,根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量。

具体地,在根据预设词向量字典确定所有待替换字词中存在特殊字词时,根据预设词向量字典获取与待替换句子中各常规字词关联的所有常规词向量;并将各常规词向量替代与其对应的常规字词,以得到与待替换句子对应的待替换句子向量。

S40:根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量。

其中,预设词向量叠加处理方法指的是,将常规词向量进行累加求和取平均以得到特殊字词对应的特殊词向量的方法。可选地,本实施例中,常规词向量以及特殊词向量的维度均为512维。

具体地,如图4所示,步骤S40中包括如下步骤:

S401:检测所述待替换句子中的所述特殊字词的数量。

S402:在所述特殊字词为一个时,根据所述预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与所述特殊字词对应的特殊词向量。

具体地,在根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量之后,将各常规词向量替代与其对应的常规字词,以得到与待替换句子对应的待替换句子向量,并检测待替换句子中的特殊字词的数量;在待替换句子中的特殊字词有且仅有一个时,则根据预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与所述特殊字词对应的特殊词向量;也即累加所有常规词向量得到词向量之和,再将词向量之和与常规词向量的数量的商记录为该特殊字词对应的特殊词向量。

示例性地,假设待替换句子为“小明喜欢吃苹果,但是他的妻子喜欢吃香蕉”,分词预处理之后对应的待替换字词为“小明”、“喜欢”、“吃”、“苹果”、“但是”、“他”、“妻子”“喜欢”“吃”“香蕉”;假设仅仅“他”这一待替换字词为特殊字词,将常规字词替换成常规词向量后得到:“小明(0.12,2.13,1.45……)、喜欢(9.02,6.13,1.95……)、吃(8.62,5.43,3.15……)、苹果(5.02,6.23,7.95……)、但是(0.92,1.03,9.05……)、他(?)、妻子(9.72,0.33,5.15……)、喜欢(7.67,1.73,0.25……)、吃(8.62,5.43,3.15……)、香蕉(1.02,5.00,1.25……)”其中,()内即为每个常规字词对应的常规词向量。

进一步地,根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与该特殊字词对应的特殊词向量:(5.64,3.72,3.71……)(“他”对应的特殊词向量)=[(0.12,2.13,1.45……)+(9.02,6.13,1.95……)+

(8.62,5.43,3.15……)+(5.02,6.23,7.95……)+(0.92,1.03,9.05……)+

(9.72,0.33,5.15……)+(7.67,1.73,0.25……)+(8.62,5.43,3.15……)+

(1.02,5.00,1.25……)]/9(9为常规词向量总数),可以理解地,上述即为将各常规词向量进行累加求和取平均,得到该特殊字词对应的特殊词向量的方法。

在另一具体实施例中,步骤S401之后,也即所述检测所述待替换句子中的所述特殊字词的数量之后,还包括:

S403:在所述待替换句子中的所述特殊字词为多个时,按照各所述特殊字词在所述待替换句子中的排序顺次插入叠加队列。

其中,叠加队列中包含根据待替换句子中的排序顺次插入的各特殊字词。

具体地,在检测所述待替换句子中的所述特殊字词的数量之后之后,若待替换句子中存在多个特殊字词,则按照各特殊字词在待替换句子中的排序顺次插入叠加队列,也即在待替换句子中所有特殊字词中排序第一的特殊字词,在叠加队列中也应为排序第一。

示例性地,假设待替换句子为“深圳是一个生活节奏很快,并且深受年轻人喜爱的城市”,假设在预设词向量字典中不存在“节奏”以及“喜爱”,且不存在这两个待替换字词关联的词向量,则“节奏”和“喜爱”即为待替换句子中的特殊字词。

S404:自所述叠加队列中选取序列第一的第一特殊字词,根据所述预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与第一特殊字词对应的第一特殊词向量。

具体地,在所述待替换句子中的所述特殊字词为多个时,按照各所述特殊字词在所述待替换句子中的排序顺次插入叠加队列之后,自叠加队列充选取序列第一的第一特殊字词,根据预设词向量叠加处理方法,对待替换句子中的各常规字词关联的所有常规词向量进行叠加处理,得到与第一特殊字词对应的第一特殊词向量。需要说明的是,除了第一特殊字词外还存在其它特殊字词(如第二特殊字词等),因此在确定第一特殊字词对应的第一特殊词向量时,可以将位于第一特殊字词后的特殊字词对应的特殊词向量设置为0向量;将其设置为0向量的原因是,后续的特殊字词对于第一特殊字词来说一般不会影响第一特殊字词的具体含义,并且对于一个待替换句子几乎不会出现距离很近的两个代词,若是代词与集外词相聚很近的话,代词和集外词之间的互相影响较小,因此在确定第一特殊字词对应的第一特殊词向量时,可以将其它特殊字词对应的特殊词向量先设置为0向量。

S405:自所述叠加队列中选取序列第二的第二特殊字词,根据所述预设词向量叠加处理方法,对所述第一特殊词向量以及所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与第二特殊字词对应的第二特殊词向量。

具体地,在根据所述预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与第一特殊字词对应的第一特殊词向量之后,自叠加队列中选取序列第二的第二特殊字词,并根据预设词向量叠加处理方法,对第一特殊词向量以及待替换句子中的各常规字词关联的所有常规词向量进行叠加处理,得到与第二特殊字词对应的第二特殊词向量。

可以理解地,在步骤S404中确定了第一特殊字词对应的第一特殊词向量,因此在确定第二特殊字词对应的第二特殊词向量时,不应该将第一特殊词向量设置为0向量,即使第一特殊字词的第一特殊词向量可能不会影响第二特殊词向量的确定(也即也可以将第一特殊词向量设置为0向量),但是加入已确定的第一特殊词向量后待替换句子各词向量更加完整,因此在确定第二特殊字词的第二特殊词向量时,应该在所有常规词向量的基础上加入第一特殊字词的第一特殊词向量,提高第二特殊词向量生成的准确率。

进一步地,在第二特殊词向量确认完毕之后,若还存在第三特殊字词,则在确定第三特殊字词对应的第三特殊词向量时,应该根据预设词向量叠加处理方法,对第一特殊词向量、第二特殊词向量以及待替换句子中各常规字词关联的所有常规词向量进行叠加处理,后续特殊字词对应的特殊词向量也是如此,在此不再赘述。

S406:检测所述叠加队列中的所有特殊字词是否均已被选取完毕,并在均已被选取完毕之后,确认所述待替换句子中的所有所述特殊字词均已确定与其对应的特殊词向量。

具体地,在自叠加队列中选取特殊字词过程中,检测叠加队列中的所有特殊字词是否均已被选取完毕,并在均已被选取完毕之后,确认待替换句子中的所有特殊字词均已确定与其对应的特殊词向量。

S50:将所述特殊词向量以及获取的所有所述常规词向量,关联记录为所述待替换句子对应的句子向量。

具体地,在根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量之后,将特殊词向量以及获取的所有常规词向量关联记录为待替换句子对应的句子向量。

在本实施例中,通过结合与特殊字词对应的前后文的词向量确定特殊字词对应的特殊词向量,可以避免人工标注出现标注错误的现象,以及出现特殊字符不能代表特殊字词原有语义的现象。本发明针对句子中出现的特殊字词,利用与特殊字词对应的前后文的词向量确定特殊字词对应的特殊词向量,不仅可以保证包含特殊词向量的句子向量符合该句子的语义,还在应用该待替换句子的句子向量进行语义分析时,使得其语义分析结果的准确率较高。此外,如果应用通过本发明中的句子向量处理方法得到的句子及其句子向量训练语义分析模型,可以使得该语义分析模型的语义分析结果的准确率较高。

在另一具体实施例中,为了保证上述实施例中的预设词向量字典以及待替换句子的私密以及安全性,可以将预设词向量字典以及待替换句子存储在区块链中。其中,区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。

例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。

在一实施例中,步骤S20之前,也即所述根据预设词向量字典确定所有待替换字词中是否存在特殊字词之前,还包括:

(1)获取训练样本集以及包含初始参数的预设语言模型;所述训练样本集中包括至少一个训练样本;所述预设语言模型中包含预设训练词典。

其中,训练样本可以根据不同应用场景进行选取,如推荐系统场景下的推荐信息等。预设语言模型可以为包含两层卷积网络的模型,也可以是如卷积神经网络模型、自然语言处理模型等其它模型。预设训练词典指的是预设语言模型应用的场景下初始词典,该预设训练词典中包含一定数量的词向量。

(2)将所述训练样本输入至所述预设语言模型中,根据所述预设训练词典,对各所述训练样本进行词向量预测处理,得到与所述训练样本中每一字符对应的预测词向量。

其中,词向量预测处理指的是对训练样本中各字词对应的词向量进行预测的过程。

具体地,步骤S22中,也即将所述训练样本输入至所述预设语言模型中,根据所述预设训练词典,对各所述训练样本进行词向量预测处理,得到各训练样本中每一字符对应的预测词向量,包括:

A:从所述预设训练词典中,获取所述训练样本中第一字符对应的第一预测词向量;所述第一字符指的是所述训练样本中位于首位的字符。

可以理解地,对于每一个训练样本中的第一字符,在预设训练词典中均有对应的第一预测词向量,除了第一字符外,训练样本中的其他字符对应的词向量均通过词向量预测处理得到。

B:根据所述第一词向量,对所述训练样本中第二字符进行词向量预测处理,得到与所述第二字符对应的第二预测词向量;所述第二字符指的是所述训练样本中位于第二位的字符。

具体地,在从所述预设训练词典中,获取所述训练样本中第一字符对应的第一预测词向量之后,根据该第一预测词向量,并在第一预测词向量前面增加一个0向量(也即空向量),进而根据该第一预测词向量与该增加的0向量对第二字符进行词向量预测处理,以得到与第二字符对应的第二预测词向量。

进一步地,在得到第二字符对应的第二预测词向量之后,根据第一预测词向量以及第二预测词向量对第三字符(也即训练样本中位于第三位的字符)进行词向量预测处理,进而得到第三字符对应的第三预测词向量;同理,根据第二预测词向量以及第三预测词向量对第四字符(也即训练样本中位于第四位的字符)进行词向量预测处理,进而得到第四字符对应的第三预测词向量。可以理解地,对训练样本中某一字符进行词向量预测处理时,均通过位置在前面的两个字符对其进行词向量预测处理,其它字符同理,在此不再赘述。

C:在对所述训练样本中所有字符进行词向量预测处理后,得到与所述训练样本中每一字符对应的预测词向量。

具体地,在对训练样本中所有字符进行词向量预测处理后,得到与各训练样本中每一字符对应的预测词向量。

(3)对各所述预测词向量进行解码处理,得到与各预测词向量对应的预测字词。

其中,解码处理指的是将预测词向量解码成字词的过程。

具体地,在根据所述预设训练词典,对各所述训练样本进行词向量预测处理,得到各训练样本中每一字符对应的预测词向量之后,对各预测词向量进行解码处理,得到与各预测词向量对应的预测字词。其中,该解码过程可以在预设语言模型中的解码模块中进行,解码模块可以为LSTM(Long Short-Term Memory,长短期记忆网络)模型,BILSTM(Bi-directional Long Short-Term Memory,双向长短期记忆网络)模型等。

(4)将各预测字词按照与其对应的训练样本中各字符对应的顺序进行结合,得到预测句子。

(5)根据所述预测句子以及所述训练样本,确定所述预设语言模型的预测损失值。

具体地,在对各所述预测词向量进行解码处理,得到与各预测词向量对应的预测字词之后,将各预测字词按照与其对应的训练样本中各字符对应的顺序进行结合,得到预测句子;并根据预测句子以及训练样本,确定预设语言模型的预测损失值。

(6)在所述预测损失值未达到预设收敛条件时,迭代更新所述预设语言模型的初始参数,直至所述预测损失值达到所述预设收敛条件时,将收敛之后的所述预设语言模型记录为词向量语言模型。

可以理解地,该收敛条件可以为预测损失值小于设定阈值的条件,也即在预测损失值小于设定阈值时,停止训练;收敛条件还可以为预测损失值经过了10000次计算后值为很小且不会再下降的条件,也即预测损失值经过10000次计算后值很小且不会下降时,停止训练,并将收敛之后的所述预设语言模型记录为所述词向量语言模型。

进一步地,根据所述预测句子以及所述训练样本,确定所述预设语言模型的预测损失值之后,在预测损失值未达到预设的收敛条件时,根据该预测损失值调整预设翻译模型的初始参数,并将该训练样本重新输入至调整初始参数后的预设语言模型中,以在该训练样本对应的预测损失值达到预设的收敛条件时,选取训练样本集中另一训练样本,并执行上述步骤(2)至(5),得到与该训练样本对应的预测损失值,并在该预测损失值未达到预设的收敛条件时,根据该预测损失值再次调整预设语言模型的初始参数,使得该训练样本对应的预测损失值也达到预设的收敛条件。

如此,在通过训练样本集中所有训练样本对预设语言模型进行训练之后,使得预设语言模型输出的结果可以不断向准确地结果靠拢,让识别准确率越来越高,直至所有训练样本对应的预测损失值均达到预设的收敛条件时,将收敛之后的所述预设语言模型记录为词向量语言模型。

(7)将所述训练样本输入至所述词向量语言模型中,得到与各训练样本中每个字词对应的样本词向量。

具体地,在将收敛之后的所述预设语言模型记录为词向量语言模型之后,将各训练样本输入至词向量语言模型中,进而得到与各训练样本中每个字词对应的样本词向量;可以理解地,在预设语言模型训练完成之后(也即得到词向量模型之后),为了在步骤S20以及S30中可以使用预设词向量字典进行常规词向量获取,因此此时可以将训练样本输入至词向量语言模型中,得到与各训练样本中每个字词对应的样本词向量;也可以根据具体应用场景,选取对应的样本输入至词向量语言模型中。

(8)将各所述样本词向量存储至所述预设训练词典中,并将存储之后的预设训练词典记录为所述预设词向量字典。

具体地,在将所述训练样本输入至所述词向量语言模型中,得到与各训练样本中每个字词对应的样本词向量之后,将各样本词向量存储至预设训练词典中,并将存储之后的预设训练词典记录为预设词向量字典。

在一实施例中,提供一种句子匹配方法,包括:

(1)获取样本句子集以及包含特殊字词的待匹配句子;所述样本句子集包括至少一个样本句子;一个所述样本句子关联一个样本向量;所述特殊字词是指所述预设向量字典中不存在且并未关联词向量的待匹配字词。

其中,待匹配句子指的是等待匹配与其语义相似句子的句子。样本句子集可以根据该方法使用的场景的不同进行选取,示例性地,样本句子集可以为问答系统场景下常用的问答句子,也可以是推荐系统场景下常用的推荐信息等。样本向量指的是与样本句子对应的词向量句子,该样本向量是由样本句子中各个字词对应的词向量构成的。

进一步地,预设词向量字典可以根据具体应用场景,选取该应用场景下各种不同文本进行训练得到。特殊字词可以为指示代词(如他、她等),也可以为集外词(集外词指的是除了代词之外其它未被包含在预设向量字典中的且未关联词向量的待匹配字词)。

具体地,在获取待匹配句子之后,对待匹配句子进行分词预处理,得到多个待匹配字词;进一步地,在进行分词预处理过程中,需要去掉待替换句子中的停用词(如“的”、“是”、“把”等),也即,待匹配字词中不存在上述停用词。其中,可以通过如下中文分词工具对待匹配句子进行分词预处理:Jieba,SnowNLP,PkuSeg,THULAC,HanLP等工具。

进一步地,在获取待匹配句子之前,需要对所述待匹配句子进行分词预处理,以确定待匹配句子中是否包含特殊字词。也即,对待匹配句子进行分词预处理得到多个待匹配字词之后,根据预设词向量字典确定所有所述待匹配字词中是否存在特殊字词,也即检测待匹配字词中是否存在,不被包含在预设向量字典内,且并未关联词向量的待匹配字词。具体检测步骤可以参见上述实施例的句子向量处理方法中的步骤S201至S203,在此不再赘述。

(2)将所述待匹配句子记录为待替换句子,并根据上述实施例中句子向量处理方法,得到与所述待匹配句子对应的句子向量。

可以理解地,在所有待匹配字词包含特殊字词时,表征待匹配句子中存在待匹配字词没有关联的词向量,因此将待匹配句子记录为待替换句子,并根据上述实施例中句子向量处理方法,得到与所述待替换句子对应的句子向量。

进一步地,在所有待匹配字词中不存在特殊字词时,表征待匹配句子中每一待匹配字词均有关联的词向量,因此可以直接根据每一待匹配字词对应的词向量,生成与待匹配句子对应的句子向量。

示例性地,假设待匹配句子为“今天阳光充足,没有下雨”,且待匹配句子中的特殊字词为“阳光”,也即假设“阳光”没有被包含在预设向量词典之内,且没有对应的词向量。因此,根据上述实施例中句子向量处理方法,根据“今天”、“充足”,“没有”、“下雨”对应的常规词向量,通过预设词向量叠加处理方法,将上述常规词向量进行累加求和取平均,进而得到与“阳光”这一特殊字词对应的特殊词向量,将该特殊词向量以及各常规词向量记录为句子向量。

(3)根据所述句子向量以及各样本句子的样本向量,确定所述待匹配句子与各所述样本句子之间的语义相似度。

其中,语义相似度指的是待匹配句子与各样本句子之间语义特征上的相似程度。

具体地,在根据上述实施例中句子向量处理方法,得到与所述待匹配句子对应的句子向量之后,对所述句子向量以及各样本向量进行解码处理,进而将解码后的句子向量与解码后的各样本向量进行相似度比较,进而确定待匹配句子与各样本句子之间的语义相似度。

示例性地,假设其中一个样本句子为:“今天天气晴朗”,另一个样本句子为“今天有雷阵雨”,且这两个样本句子均存在对应的样本向量(假设“今天天气晴朗”对应第一样本向量;“今天有雷阵雨”对应第二样本向量);因此在根据上述“今天阳光充足,没有下雨”对应的句子向量,与第一样本向量和第二样本向量,对待匹配句子和各样本句子进行语义匹配,进而可以得到句子向量与第一样本向量之间的语义相似度较高,也即“今天阳光充足,没有下雨”与“今天天气晴朗”之间的语义相近,而句子向量与第二样本向量之间的语义相似度较低,也即“今天阳光充足,没有下雨”与“今天有雷阵雨”之间的语义不相近。

(4)选取与各所述样本句子对应的语义相似度中的最大值,在所述最大值大于或等于预设相似度阈值时,将与所述最大值对应的所述样本句子记录为与所述待匹配句子对应的相似句子。

其中,预设相似度阈值可以根据具体应用场景和具体判断需求进行设定,预设相似度阈值的取值范围为0至1,语义相似度越高表征待匹配句子与样本句子之间相似程度越高,因此本实施例中将预设相似度阈值设定为0.9,0.95等。

具体地,在根据所述句子向量以及各所述样本向量,确定所述待匹配句子与各所述样本句子之间的语义相似度之后,获取各样本句子与待匹配句子之间的语义相似度,选取与各所述样本句子对应的语义相似度中的最大值,在该最大值大于或等于预设相似度阈值时,表征该最大值的语义相似度对应的样本句子与待匹配句子之间的相似程度高于预设相似度阈值,进而将与所述最大值对应的所述样本句子记录为与所述待匹配句子对应的相似句子。

进一步地,在选取与各所述样本句子对应的语义相似度中的最大值之后,若最大值小于预设相似度阈值,表征样本句子集中没有与待匹配句子之间的相似程度大于预设相似度阈值的句子,进而可以生成未查询到与待匹配句子对应的相似句子的提示信息。

在本实施例中,通过上述实施例中的句子向量处理方法,对句子中的特殊字词进行向量处理,以更好的还原每一个特殊字词在句子中的语义信息,从而提高了句子之间相似度匹配的准确率以及效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种句子向量处理装置,该句子向量处理装置与上述实施例中句子向量处理方法一一对应。如图5所示,该句子向量处理装置包括句子分词模块10、特殊字词检测模块20、词向量获取模块30、向量叠加模块40和句子向量记录模块50。各功能模块详细说明如下:

句子分词模块10,用于获取待替换句子,并对待替换句子进行分词预处理,得到多个待替换字词;所述待替换字词中包括常规字词;每一个所述常规字词均为被包含在预设词向量字典中、且与常规词向量关联的待替换字词;

特殊字词检测模块20,用于根据预设词向量字典确定所有待替换字词中是否存在特殊字词;所述特殊字词是指所述预设向量字典中不存在、且并未与词向量的关联待替换字词;

词向量获取模块30,用于在所述待替换句子中存在特殊字词时,根据所述预设词向量字典获取与所述待替换句子中的各所述常规字词关联的所有所述常规词向量;

向量叠加模块40,用于根据获取的所有所述常规词向量以及预设词向量叠加处理方法,确定与所述特殊字词对应的特殊词向量;

句子向量记录模块50,用于将所述特殊词向量以及获取的所有所述常规词向量,关联记录为所述待替换句子对应的句子向量。

优选地,如图6所示,特殊字词检测模块20中包括如下单元:

向量替换单元201,用于根据所述预设词向量字典确定与所述待替换句子中的各常规字词关联的常规词向量,并采用各所述常规词向量替换所述待替换句子中与其关联的各所述常规字词,得到初始替换向量;

向量检测单元202,用于检测所述初始替换向量中是否存在未被替换为常规词向量的待替换字词;

特殊字词确定单元203,用于在存在未被替换为常规词向量的待替换字词时,将所述未被替换的待替换字词记录为所述待替换句子中存在的所述特殊字词。

优选地,如图7所示,向量叠加模块40包括如下单元:

数量检测单元401,用于检测所述待替换句子中的所述特殊字词的数量;

第一叠加单元402,用于在所述特殊字词为一个时,根据所述预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与所述特殊字词对应的特殊词向量;

字词排序单元403,用于在所述待替换句子中的所述特殊字词为多个时,按照各所述特殊字词在所述待替换句子中的排序顺次插入叠加队列;

第二叠加单元404,用于自所述叠加队列中选取序列第一的第一特殊字词,根据所述预设词向量叠加处理方法,对所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与第一特殊字词对应的第一特殊词向量;

第三叠加单元405,用于自所述叠加队列中选取序列第二的第二特殊字词,根据所述预设词向量叠加处理方法,对所述第一特殊词向量以及所述待替换句子中的各所述常规字词关联的所有所述常规词向量进行叠加处理,得到与第二特殊字词对应的第二特殊词向量;

叠加完成单元406,用于检测所述叠加队列中的所有特殊字词是否均已被选取完毕,并在均已被选取完毕之后,确认所述待替换句子中的所有所述特殊字词均已确定与其对应的特殊词向量。

优选地,句子向量处理装置还包括:

数据获取模块,用于获取训练样本集以及包含初始参数的预设语言模型;所述训练样本集中包括至少一个训练样本;所述预设语言模型中包含预设训练词典;

预测处理模块,用于将所述训练样本输入至所述预设语言模型中,根据所述预设训练词典,对各所述训练样本进行词向量预测处理,得到各训练样本中每一字符对应的预测词向量;

向量解码模块,用于对各所述预测词向量进行解码处理,得到与各预测词向量对应的预测字词;

字词结合模块,用于将各预测字词按照与其对应的训练样本中各字符对应的顺序进行结合,得到预测句子;

损失值确定模块,用于根据所述预测句子以及所述训练样本,确定所述预设语言模型的预测损失值;

模型训练模块,用于在所述预测损失值未达到预设收敛条件时,迭代更新所述预设语言模型的初始参数,直至所述预测损失值达到所述预设收敛条件时,将收敛之后的所述预设语言模型记录为词向量语言模型;

词向量确定模块,用于将所述训练样本输入至所述词向量语言模型中,得到与各训练样本中每个字词对应的样本词向量;

向量存储模块,用于将各所述样本词向量存储至所述预设训练词典中,并将存储之后的预设训练词典记录为所述预设词向量字典。

优选地,预测处理模块包括如下单元:

预测词向量获取单元,用于从所述预设训练词典中,获取所述训练样本中第一字符对应的第一预测词向量;所述第一字符指的是所述训练样本中位于首位的字符;

向量预测单元,用于根据所述第一词向量,对所述训练样本中第二字符进行词向量预测处理,得到与所述第二字符对应的第二预测词向量;所述第二字符指的是所述训练样本中位于第二位的字符;

预测完成单元,用于在对所述训练样本中所有字符进行词向量预测处理后,得到与各训练样本中每一字符对应的预测词向量。

关于句子向量处理装置的具体限定可以参见上文中对于句子向量处理方法的限定,在此不再赘述。上述句子向量处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储上述实施例中句子向量处理方法,或者句子匹配方法中使用到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种句子向量处理方法,或者该计算机程序被处理器执行时以实现一种句子匹配方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中句子向量处理方法,或者处理器执行计算机程序时实现上述实施例中句子匹配方法。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中句子向量处理方法,或者计算机程序被处理器执行时实现上述实施例中句子匹配方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号