语句释义方法、装置、计算机设备与流程

文档序号:17927435发布日期:2019-06-15 00:31阅读:163来源:国知局
语句释义方法、装置、计算机设备与流程

本申请涉及自然语言处理技术领域,特别是涉及一种语句释义方法、装置、计算机设备和存储介质。



背景技术:

随着自然语言处理领域(naturallanguageprocessing,nlp)的发展,出现了释义自动生成技术,该技术被广泛应用于信息检索、语义解析、信息抽取、对话系统中的数据增强以及机器翻译等。例如,较多交互平台都需要将同一种意图的不同句子结构的语句填充到系统中,用于训练意图识别模型,使得当用户同时使用这些不同句子结构的语句的时候,系统都能够准确识别出用户的话语意图。

然而,目前的释义自动生成方法,因输入源句子结构复杂、以及不同用户语言习惯的差异性,存在根据目标源句子识别生成的目标释义句的准确性低的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高识别准确性的语句释义方法、装置、计算机设备和存储介质。

一种语句释义方法,所述方法包括:

获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列;

将所述目标源句子序列输入到预设的释义模型,得到与所述目标源句子对应的候选词的概率分布;所述释义模型是根据样本源句子和样本释义句进行模型训练得到的;

根据所述候选词的概率分布对所述候选词进行随机采样,得到目标词;

根据所述目标词生成与所述目标源句子对应的至少一个目标释义句子。

在其中一个实施例中,所述释义模型的生成方式包括:获取中文释义对,根据所述中文释义对构建中文语料库,其中,每个中文释义对包括一个样本源句子和至少一个样本释义句;将所述中文释义对中的样本源句子和样本释义句进行数据预处理得到样本源句子序列和样本释义句序列;根据所述样本源句子序列和样本释义句序列进行模型训练得到释义模型。

在其中一个实施例中,所述获取中文释义对,根据所述中文释义对构建中文语料库,包括:对包含英文源句子和英文释义句的英文释义对,进行翻译处理,得到包含中文源句子和中文释义句的中文释义对,统计所述中文源句子和所述中文释义句长度,选取所述中文源句子和所述中文释义句长度均不大于第预设的长度阈值的中文释义对,得到第一语料库;对预配置的特定场景的中文源句子进行同义词和句子结构变换处理,得到所述特定场景的中文释义句,根据所述特定场景的中文源句子和所述特定场景的中文释义句构成第二语料库;根据所述第一语料库和所述第二语料库构建中文语料库。

在其中一个实施例中,所述将所述中文释义对中的样本源句子和样本释义句进行数据预处理得到样本源句子序列和样本释义句序列包括:

获取中文释义对中的样本源句子和样本释义句;根据所述样本源句子和样本释义句进行分词处理得到各自对应的词语序列;根据词语与索引值的对应关系将所述词语序列转换为对应的索引值序列;将所述样本源句子对应的索引值序列的向量表示作为样本源句子序列,以及将所述样本释义句对应的索引值序列的向量表示作为样本释义句序列。

在其中一个实施例中,所述根据所述样本源句子序列和样本释义句序列进行模型训练得到释义模型包括:

获取所述释义模型的权值矩阵的初始值;根据输入的所述样本源句子序列和所述样本释义句序列进行模型训练,根据所述释义模型的损失函数对所述权重矩阵的初始值进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵的目标值。

在其中一个实施例中,所述根据输入的所述样本源句子序列和所述样本释义句序列进行模型训练,根据所述释义模型的损失函数对所述权重矩阵的初始值进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵的目标值包括:

通过所述释义模型的输入层获取所述样本源句子序列和所述样本释义句序列,将所述样本源句子序列输入到编码模块中,得到样本源句子的隐含状态信息和样本源句子的高层特征信息;

将所述样本源句子的隐含状态信息和所述样本源句子的高层特征信息,以及所述样本释义句序列输入到解码模块,得到样本释义句隐含状态信息和样本释义句的高层特征信息;

根据所述样本源句子的隐含状态信息和所述样本释义句的隐含状态信息,计算得到样本释义句的注意力向量;将所述注意力向量和所述样本释义句的高层特征信息输入到分类层,得到与所述样本源句子对应的候选词的概率分布;根据所述候选词的概率分布计算得到模型的损失函数;根据损失函数对所述权重矩阵进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵。

在其中一个实施例中,所述通过所述释义模型的输入层获取所述样本源句子序列和所述样本释义句序列,将所述样本源句子序列输入到编码模块中,得到样本源句子的隐含状态信息和样本源句子的高层特征信息包括:

通过所述释义模型的输入层获取所述样本源句子序列和所述样本释义句序列,将所述样本源句子序列输入到编码模块中;通过所述编码模块获取所述样本源句序列的前向信息初始值和后向信息初始值,对前向信息初始值和后向信息初始值进行处理,得到所述样本源句序列对应的包含前向上下文信息的前向模型输出和含后向上下文信息的后向模型输出;对所述前向模型输出和后向模型输出进行封装;将所述封装后的前向模型输出和后向模型输出进行拼接,得到所述样本源句子的上下文信息和固定维度的样本句向量,将所述样本源句子的上下文信息作为所述样本源句子的隐含状态信息,将所述固定维度的样本句向量作为所述样本源句子的高层特征信息。

在其中的一个实施例中,所述获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列包括:获取目标源句子,对所述目标源句子进行分词处理,得到目标源句词语序列;根据词语与索引值的对应关系将所述目标源句词语序列转换为对应的目标源句索引值序列;将所述目标源句索引值序列的向量表示作为目标源句子序列。

在其中的一个实施例中,所述将所述目标源句子序列输入到预设的释义模型,得到与所述目标源句子对应的候选词的概率分布,包括:将所述目标源句子序列输入到预设的释义模型,计算每一个时间步下产生的所述候选词的被抽取概率,并对所述被抽取概率进行权重运算,得到所述候选词的概率分布数组;

所述根据所述候选词的概率分布对所述候选词进行随机采样,得到目标词,包括:根据所述候选词的概率分布数组进行随机采样,取所述概率分布数组中权重运算结果值较大的候选词为目标词;

所述根据所述目标词生成与所述目标源句子对应的至少一个目标释义句子,包括:根据所述目标词生成目标释义句子,直到生成的目标释义句子的数量达到数量阈值。

在其中的一个实施例中,所述根据所述目标词生成与所述目标源句子对应的至少一个目标释义句子,包括:根据所述目标词生成目标释义句子;当所述目标释义句子在列表中不存在时,将所述目标释义句子加入到所述列表中;当所述列表中存储的目标释义句子的数量达到数量阈值,则将所述列表中存储的目标释义句子作为与所述目标源句子对应的至少一个目标释义句子。

一种语句释义装置,所述装置包括:

语料库构建模块,用于获取样本源句子和样本释义句构建中文语料库;

数据预处理模块,用于将所述中文语料库进行数据预处理得到样本源句子序列和样本释义句序列;

模型训练模块,用于对所述样本源句子序列和所述样本释义句序列进行模型训练得到释义模型;

释义生成模块,用于将所述目标源句子序列输入到所述释义模型,得到目标词并生成至少一个目标释义句子。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述语句释义方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述语句释义方法的步骤。

上述语句释义方法、装置、计算机设备和存储介质,通过对获取的目标源句子进行数据预处理,使得目标源句子以数值形式表示,然后将目标源句子直接输入到训练好的释义模型生成与目标源句子对应的候选词的概率分布,采用候选词筛选机制来生成目标释义句,提高了根据目标源句子生成的目标释义句的准确性。

附图说明

图1为一个实施例中语句释义方法的应用环境图;

图2为一个实施例中语句释义方法的流程示意图;

图3为一个实施例中释义模型生成步骤的流程示意图;

图4为一个实施例中中文语料库构建步骤的流程示意图;

图5为一个实施例中数据预处理步骤的流程示意图;

图6为一个实施例中模型训练步骤的流程示意图;

图7为另一个实施例中模型训练步骤的流程示意图;

图8为另一个实施例中语句释义方法的流程示意图;

图9为一个实施例中语句释义装置的模块示意图;

图10为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中语句释义方法的应用环境图。参照图1,该语句释义方法应用于计算机设备100,计算机设备100可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑、穿戴式设备、个人数字助理等。计算机设备100也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一实施例中,图2是一个实施例中语句释义方法的流程示意图,参照图2,提供了一种语句释义方法,以该方法应用于图1中的计算机设备100为例进行说明,包括以下步骤:

步骤202,获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列。

其中,目标源句子可指用户输入的或计算机设备存储的待释义的句子,目标释义句子即为计算机设备100输出的与目标源句子意思相同或相似的句子。计算机设备100用于将输入的目标源句子进行同种语言翻译生成至少一个目标释义句子。

预处理可为对目标源句子进行分词处理,得到各个词语,将词语在目标源句子中的位置顺序排序构成目标源句词语序列,将目标源句词语序列作为目标源句子序列,也可以将目标源句词语序列转换为目标源句索引值序列,将目标源句索引值序列作为目标源句子序列,也可将

目标源句索引值序列进行向量化处理得到向量化的目标源句索引值序列作为目标源句子序列。在其他实施例中,预处理过程中还可以对词语进行去噪处理,如去掉无意义的词,例如“了”、“的”等。

可选地,目标源句词语序列可指按照词语在目标源句子中的位置顺序排序构成的包含完整目标源句子信息的序列。

可选地,目标源句索引值序列可指按照每个词语与其索引值的对应关系将词语序列转换成的数字形式的序列。

可选地,目标源句子序列可指可被释义模型识别的包含完整目标源句子信息的序列。目标源句子序列可为词语形式的词语序列,也可为数字形式的索引值序列,也可为向量形式的向量化的索引值序列。

步骤204,将所述目标源句子序列输入到预设的释义模型,得到与所述目标源句子对应的候选词的概率分布;所述释义模型是根据样本源句子和样本释义句进行模型训练得到的。

其中,释义模型可指预先经过大量语句样本训练的模型。释义模型的语句训练样本可为样本源句子和样本释义句,其中样本源句子可指可被释义的样本句子,样本释义句可指与所述对应样本源句子有相同或相似意思的样本句子。

可选地,释义模型可指根据从已有语料库中获取的样本源句子和样本释义句进行模型训练得到的神经网络模型,也可指根据人工配置的样本源句子和样本释义句进行模型训练得到的神经网络模型,也可指根据特定场景和/或非特定场景构建的语料库中获取的样本源句子和样本释义句进行模型训练得到的神经网络模型。

其中,候选词可指释义模型获取的与目标源句子中词语意思相同或相近的词语。与目标源句子对应的候选词的概率分布可指存储有候选词被抽取的概率的分布式数据。候选词的概率分布可为数组形式,也可为列表形式,也可为向量形式等。

在一实施例中,将所述目标源句子序列输入到预设的释义模型,得到与所述目标源句子对应的候选词的概率分布可包括:将所述目标源句子序列输入到预设的释义模型,计算候选词的被抽取概率,再进行二次运算,得到候选词的概率分布。

步骤206,根据所述候选词的概率分布对所述候选词进行随机采样,得到目标词。

其中,随机采样可指根据候选词的概率分布和随机数对候选词进行抽取,目标词可指目标释义句子的组成单元。

在一实施例中,可根据候选词的概率分布对获取的多个候选词进行抽取得到目标词。抽取可指根据候选词的概率大小排序进行抽取,也可指根据候选词的概率分布进行二次计算,根据二次计算结果值的排序进行抽取,也可指根据候选词的概率分布进行二次计算,根据二次计算结果值以及随机数进行随机抽取。其中,二次计算可为根据概率的权重计算。

步骤208,根据所述目标词生成与所述目标源句子对应的至少一个目标释义句。

其中,目标释义句子即为计算机设备100输出的与目标源句子意思相同或相似的句子。

目标词可根据与目标源句子中对应词语的顺序进行拼接生成目标释义句子,也可根据释义模型的时间步顺序进行拼接,直到预设的目标释义句子长度的时间步结束,得到设定长度的目标释义句子,也可根据模型的时间步顺序进行拼接,直到生成的目标释义句子的数量达到数量阈值,得到满足设定个数的至少一个目标释义句子。

其中,可设置目标释义句子的存储形式,比如列表、数组等,对生成的目标释义句子进行存储,判断生成的目标释义句子与上一个生成的目标释义句子是否重复,若重复则放弃该目标释义句子,重新生成下一个目标释义句子,统计生成的目标释义句子的个数,直到生成的目标释义句子的数量达到数量阈值,将生成的至少一个目标释义句子作为输出结果。

上述语句释义方法中,通过对获取的目标源句子进行数据预处理,使得目标源句子的数据形式更加适合后续的训练操作;通过将目标源句子直接输入到训练好的释义模型生成与目标源句子对应的候选词的概率分布,采用候选词筛选机制来生成目标释义句,提高了根据目标源句子生成的目标释义句的准确性。

在一实施例中,获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列包括:

获取目标源句子,对所述目标源句子进行分词处理,得到目标源句词语序列;根据词语与索引值的对应关系将所述目标源句词语序列转换为对应的目标源句索引值序列;将所述目标源句索引值序列的向量表示作为目标源句子序列。其中,词语与索引值的对应关系可以预先配置。

例如词语“请问”对应索引值“20”。计算机设备100获取的目标源句子为“请问您准备什么时候出发”,将对目标源句子进行分词处理得到目标源句词语序列为“请问您准备什么时候出发”,然后将其转换为目标源句索引值序列为“2019810050102030”,目标源句索引值序列即可作为目标源句子序列。目标源句子索引值的向量表示可为(20,198,100,50,1020,30)。

在另一实施例中,获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列还包括:在目标源句子的词语序列首尾添加开始符号和结束符号,若添加后的目标源句子的词语序列不满足长度阈值,在该结束符号后面添加填充符号,直到样本源句子的词语序列满足长度阈值。其中,开始符号和结束符号可用于词语序列的读取与标识,便于识别语句边界。

例如,目标源句子“请问您准备什么时候出发”将首先经过分词模块处理为“请问您准备什么时候出发”,然后将其转换为目标源句索引值序列,假定为“2019810050102030”。假定开始符号“<start>”、结束符号“<end>”和填充符号“uuunkkk”的数字索引分别为0、1、2。最后目标源句子将被处理为“02019810050102030122”,并将其表示成向量形式。

在一实施例中,将所述目标源句子序列输入到预设的释义模型,得到与所述目标源句子对应的候选词的概率分布包括:将目标源句子序列输入到预设的释义模型,计算每一个时间步下产生的候选词的被抽取概率,并对被抽取概率进行权重运算,得到候选词的概率分布数组。

具体地,计算机设备100将预处理后得到的目标源句子序列输入到释义模型,释义模型按照时间步对目标源句子进行处理,每一个时间步生成一个与目标源句子中的词语对应的候选词,并计算该候选词的概率,当遍历完与目标源句子长度对应的时间步时,输出与目标源句子中所有词语对应的候选词的概率分布。

例如,目标源句子的长度为20,需要20个时间步读取并处理目标源句子中的词语。释义模型在第一个时间步可读取目标源句子中的第一个词语,在第二个时间步可读取目标源句子中的第二个词语,以此类推进行读取,直到读取完目标源句子中的所有词语。然后按照时间步对目标源句子中的词语进行解码,得到与每个词语对应的多个候选词,再通过计算可得到与第一个词语对应的多个候选词的概率为a1=[a11,a12,...,a1k],与第二个词语对应的多个候选词的概率为a2=[a21,a22,...,a2k],以此类推得到[a1,a2,...,ak],将[a1,a2,...,ak]作为候选词的概率分布。其中,k为概率分布数组的长度,可表示目标源句子的词语规模。

在一实施例中,根据所述候选词的概率分布对所述候选词进行随机采样,得到目标词,包括:根据所述候选词的概率分布数组进行随机采样,取所述概率分布数组中权重运算结果值较大的候选词为目标词。

其中,权重运算可指对概率分布数组进行对数运算,再将运算结果除以一个采样温度,其中采样温度是一个介于0到1之间的实数。具体地,将模型输出的所有候选词的概率分布数组[a1,a2,...,ak]进行对数运算后除以一个采样温度,假定计算结果为zj,其中j=1,2,...,k,根据公式对zj进行运算,得到优化后的候选词的概率分布。其中,k=1,2,...,k,k为概率分布数组的长度,具体地,对第j个候选词的概率采用k作为累加因子,计算第j个候选词的概率在所有候选词概率中占有的比例。当j=1时,第1个候选词的概率在所有候选词概率中占有的比例为σ(z)1,当j=k时,第k个候选词的概率在所有候选词概率中占有的比例为σ(z)k。假设概率分布数组的长度k为10,且j=2,则第2个候选词的概率在所有候选词概率中占有的比例

具体地,计算机设备100获取释义模型输出的候选词的概率分布,并获取一个随机数,根据随机数从候选词的概率分布中随机选取候选词作为目标词。例如,若产生候选词“出发”的概率为0.8,则10次中将会有8次该词将被选取为目标词,2次会选取其他候选词。目标词可指通过筛选的候选词,目标释义句包括与目标源句子中词语对应的目标词。

在一实施例中,根据所述目标词生成与所述目标源句子对应的至少一个目标释义句子,包括:根据所述目标词生成目标释义句子,直到生成的目标释义句子的数量达到数量阈值。

其中,数量阈值是指设定的需要生成的目标释义句子的个数。例如,当输入一个目标源句子,设定数量阈值为10,则计算机设备100输出10个目标释义句子。

在另一实施例中,根据所述目标词生成与所述目标源句子对应的至少一个目标释义句子,包括:根据所述目标词生成目标释义句子;当所述目标释义句子在列表中不存在时,将所述目标释义句子加入到所述列表中;当所述列表中存储的目标释义句子的数量达到数量阈值,则将所述列表中存储的目标释义句子作为与所述目标源句子对应的至少一个目标释义句子。

其中,列表可为目标释义句子的一种存储形式。

上述语句释义方法中,通过对获取的目标源句子进行数据预处理,使得目标源句子的数据形式更加适合后续的训练操作;通过将目标源句子直接输入到训练好的释义模型生成与目标源句子对应的候选词的概率分布,采用候选词筛选机制来生成目标释义句,提高了根据目标源句子生成的目标释义句的识别准确性。

在一实施例中,参照图3,图3为释义模型生成步骤的流程示意图,释义模型的生成方式包括:

步骤302,获取中文释义对,根据所述中文释义对构建中文语料库,其中,每个中文释义对包括一个样本源句子和至少一个样本释义句。

其中,中文释义对可指包括一个样本源句子和对应至少一个样本释义句

样本源句子可指存储在中文语料库中的可被释义的样本句子,样本释义句可指存储在中文语料库中的与对应样本源句子有相同或相似意思的样本句子。本实施例中,一个样本源句子与所述对应样本释义句可组成一个中文释义对,样本源句子与所述对应样本释义句以中文释义对的形式存储在中文语料库中。

步骤304,将所述中文释义对中的样本源句子和样本释义句进行数据预处理得到样本源句子序列和样本释义句序列。

其中,数据预处理是指将样本源句子处理为样本源句子的词语序列再转换为样本源句子的索引值序列,样本源句子的索引值序列即为样本源句子序列,样本源句子序列可用向量形式表示,样本源句子序列可指数字化的可包含样本源句子完整语句信息的序列。同样的,将样本释义句处理为样本释义句的词语序列再转换为样本释义句的索引值序列,样本释义句的索引值序列即为样本释义句序列。样本释义句序列可指数字化的可包含样本释义句完整语句信息的序列。

步骤306,根据所述样本源句子序列和样本释义句序列进行模型训练得到释义模型。

其中,模型训练可指根据样本源句子序列和样本释义句序列对模型参数进行训练,模型参数可为权重矩阵,训练开始时获取权重矩阵的初始值,权重矩阵满足设定条件时训练结束,得到训练好的释义模型。

上述释义模型生成步骤中,通过构建中文语料库,使得模型训练有充足的训练样本;通过数据预处理使得样本源句子和样本释义句的数据形式更加适合后续的训练操作;通过模型训练得到模型参数,实现了释义模型的生成。

在一实施例中,参照图4,图4为中文语料库的构建步骤的流程示意图,中文语料库的构建步骤即步骤302包括:

步骤402,对包含的英文源句子和英文释义句的英文释义对,进行翻译处理,得到包含中文源句子和中文释义句的中文释义对,统计所述中文源句子和所述中文释义句长度,选取所述中文源句子和所述中文释义句长度均不大于预设的长度阈值的中文释义对,得到第一语料库。

其中,英文源句子可指包含英文语句信息的可被释义的英文样本句子,英文释义句可指包含英文语句信息的与对应英文源句子有相同或相似意思的英文样本句子,英文样本源句子与所述对应英文释义句可组成一个英文释义对,英文源句子与所述对应英文释义句以英文释义对的形式存储在英文语料库中。其中翻译处理可通过机器和/或人工进行翻译处理,机器翻译可通过谷歌翻译等。

步骤404,对预配置的特定场景的中文源句子进行同义词和句子结构变换处理,得到所述特定场景的中文释义句,根据所述特定场景的中文源句子和所述特定场景的中文释义句构成第二语料库。

其中,特定场景的中文源句子可指人工配置的可用于不同类别场景的源句子,该中文源句子的应用场景可为财务指标查询、出差申请、流程审批、商品采购和人力资源管理等。特定场景的中文释义句可指由特定场景的中文源句子释义生成的与特定场景的中文源句子具有相同或相似意思的句子。根据特定场景的中文释义句与特定场景的中文源句子得到特定场景的中文释义对。其中,同义词变换处理可指人工翻译和/或机器基于同义词词林的方法对特定场景的中文源句子进行处理,句子结构变换处理可指人工翻译和/或机器基于语法的方法对特定场景的中文源句子进行处理。

在一实施例中,统计特定场景的中文源句子和特定场景的中文释义句的长度,选取特定场景的中文源句子和特定场景的中文释义句长度均不大于预设的长度阈值的中文释义对,得到第二语料库。

在另一实施例中,统计语料库中样本源句子长度,并根据样本源句子长度将语料库分组,同一长度的样本源句子为一组,根据分组结果对语料库分别进行模型训练。例如,根据中文源句子和中文释义句的最大长度将语料库分为3组,分别为长度为5的、长度为10的和长度为20的。

步骤406,根据所述第一语料库和所述第二语料库构建中文语料库。

上述中文语料库的构建步骤中,通过翻译英文释义对并根据生成的中文释义对的长度进行筛选,得到能保证释义生成效果的批量语料;通过人工或机器翻译配置不同类别场景的中文释义对,得到能适应特定场景的语料。

在一实施例中,参照图5,图5为数据预处理步骤的流程示意图,数据预处理步骤即步骤304包括,

步骤502,获取中文释义对中的样本源句子和样本释义句。

步骤504,根据所述样本源句子和样本释义句进行分词处理得到各自对应的词语序列。

步骤506,根据词语与索引值的对应关系将所述词语序列转换为对应的索引值序列;将所述样本源句子对应的索引值序列的向量表示作为样本源句子序列,以及将所述样本释义句对应索引值序列的向量表示作为样本释义句序列。

在另一实施例中,统计语料库中样本源句子的长度,对于在同一长度组中的样本源句子,根据样本源句子进行分词处理得到各自对应的词语序列之后,在样本源句子的词语序列首尾添加开始符号和结束符号,若添加后的样本源句子的词语序列不满足长度阈值,在所述结束符号后面添加填充符号,知道样本源句子的词语序列满足长度阈值。其中,开始符号和结束符号可用于词语序列的读取与标识,便于识别语句边界。同样的样本释义句也可做相同处理。

例如,源句子“请问您准备什么时候出发”将首先经过分词模块处理为“请问您准备什么时候出发”,然后将其转换为索引形式,假定为“2019810050102030”。假定开始符号“<start>”、结束符号“<end>”和填充符号“uuunkkk”的数字索引分别为0、1、2。最后源句子将被处理为“02019810050102030122”,并将其表示成向量形式。

上述数据预处理步骤中,通过将样本源句子处理为样本源句子的词语序列再转换为样本源句子的索引值序列,样本源句子的索引值序列即为样本源句子序列,样本源句子序列可用向量形式表示;同样将样本释义句处理为样本释义句的词语序列再转换为样本释义句的索引值序列,样本释义句的索引值序列即为样本释义句序列,使得样本源句子和样本释义句的数据形式更加适合后续的训练操作。

在一实施例中,参照图6,图6为模型训练步骤的流程示意图,模型训练步骤即步骤306包括:

步骤602,获取所述释义模型的权值矩阵的初始值。

其中,权值矩阵可指神经网络模型的各层之间的权值构成的矩阵,权值矩阵作为模型参数在模型训练中进行迭代。

步骤604,根据输入的所述样本源句子序列和所述样本释义句序列进行模型训练,根据所述释义模型的损失函数对所述权重矩阵的初始值进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵的目标值。

其中,损失函数是指量化和评估实际模型参数与理想模型参数的差值的函数,本实施例通过最小化损失函数求解和评估模型。其中,预设的训练次数可指设置epoch,epoch是指对整个训练集进行遍历的次数,每遍历一次,降低损失函数的值,直到所有的epoch都走完后,表示模型已训练完成。

其中,通过目标函数或损失函数更新模型的权值矩阵,具体地,损失函数对各层之间的权值求偏导并乘以学习率(learningrate),得到计算结果,然后用当前的权值减去这个结果赋值给新的权值矩阵。其中,学习率(learningrate)用于使目标函数在合适的时间内收敛到局部最小值。

上述模型训练步骤中,通过损失函数对模型参数进行迭代,使得训练完的模型具备更加强大的释义性能。

在另一实施例中,参照图7,图7为另一实施例中的模型训练步骤的流程示意图,步骤604包括:

步骤702,通过所述释义模型的输入层获取所述样本源句子序列和所述样本释义句序列,将所述样本源句子序列输入到编码模块中,得到样本源句子的隐含状态信息和样本源句子的高层特征信息;

其中,释义模型的主要对输入的样本源句子序列和样本释义句序列进行词语分类训练。高层特征信息可指句子的概要信息,高层特征(high-level)能够更好地表现句子的特征,使得模型进行更精准的分类训练。隐含状态信息可包括句子的上下文信息,释义模型在时间步下进行训练,每一个时间步更新一次隐含状态信息。隐含状态信息能够体现句子的上下文信息,使得模型对句子序列进行更好的分类训练。高层特征信息的数据形式为固定维度的向量表示。

其中,释义模型可指包括编码模块和解码模块的神经网络模型。编码模块(encoder)可为将输入的样本源句子序列映射为固定维度的向量表示的神经网络模型,包括输入层(input)、嵌入层(embedding)和双向长短时记忆网络层(blstm);解码模块(decoder)可为将输入的源句子序列的固定维度的向量表示映射为目标释义句序列的神经网络模型。输入层(input)可为释义模型输入数据的神经网络层,嵌入层(embedding)用于将输入的序列进行降维处理,使得后续的分类训练更易进行。

双向长短时记忆网络层(blstm)用于同时对前向上下文信息和后向上下文信息进行存储或遗忘,由于blstm层是双向上下文记忆,可以进行正序读取也可进行反序读取,例如t5时间步下,可读取t1存储的词也可读取t10时间步的词。前向上下文信息可指按照词语读取的时序,语句中某词语前面的词所包含的信息;后向上下文信息可指按照词语读取的时序,语句中某词语后面的词所包含的信息。例如t5时刻下读取词语为“北京”,则“北京”的前向上下文信息指t1时刻下读取的词语—“我们”,后向上下文信息指t10时刻下读取的词语—“出发”。

在一实施例中,通过释义模型的输入层获取样本源句子序列和样本释义句序列,将样本源句子序列输入到编码模块中;通过编码模块获取样本源句序列的前向信息初始值和后向信息初始值,对前向信息初始值和后向信息初始值进行处理,得到样本源句序列对应的包含前向上下文信息的前向模型输出和包含后向上下文信息的后向模型输出;对前向模型输出和后向模型输出进行封装;将封装后的前向模型输出和后向模型输出进行拼接,得到样本源句子的上下文信息和固定维度的样本句向量,将样本源句子的上下文信息作为所述样本源句子的隐含状态信息,将所述固定维度的样本句向量作为所述样本源句子的高层特征信息。

双向长短时记忆网络层(blstm)可输出隐含状态信息和模型输出,模型输出包括前向模型输出和后向模型输出。例如,通过调用tf.nn.bidirectional_dynamic_rnn函数输出一个包含模型输出和隐含状态信息的二元组。为防止模型出现过拟合,采用dropout层通过调用tf.contrib.rnn.dropoutwrapper对模型输出进行封装;调用tf.concat函数对模型的前向输出和后向输出进行拼接,得到一个固定维度的向量表示。

步骤704,将所述样本源句子的隐含状态信息和所述样本源句子的高层特征信息,以及所述样本释义句序列输入到解码模块,得到样本释义句隐含状态信息和样本释义句的高层特征信息。

其中,解码模块(decoder)可包括输入层(input)、单向长短时记忆层(lstm)和分类层(softmax),单向长短时记忆层(lstm)用于将样本释义句的单向上下文信息进行存储或遗忘。

步骤706,根据所述样本源句子的隐含状态信息和所述样本释义句的隐含状态信息,计算得到样本释义句的注意力向量。

其中,注意力向量是指根据注意力机制(attentionmodel)得到的可用于筛选候选词的向量值。

具体地,注意力向量的计算方式为:先计算注意力权值αts,其中,s为目标源句子序列的隐含状态的实际个数,s是指在s个目标源句子序列隐含状态中第s个隐含状态,ht表示目标释义句序列第t时刻的隐含状态信息,表示目标源句子序列隐含状态信息的平均值,score为对齐模型(alignmentmodel),计算方式为其中,vα、w1和w2为需要学习的权值矩阵;然后根据注意力权值αts和目标源句子序列的隐含状态信息的平均值hs得到注意力向量ct,计算公式为

步骤708,将所述注意力向量和所述样本释义句的高层特征信息输入到分类层,得到与所述样本源句子对应的候选词的概率分布。

其中,分类层(softmax)用于根据注意力向量筛选出与所述样本源句子中的词语最相近的候选词,并计算得到候选词的概率分布。

步骤710,根据所述候选词的概率分布计算得到模型的损失函数。

步骤712,根据损失函数对所述权重矩阵进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵。

上述模型训练步骤中,通过采用上下文信息记忆和高层特征信息提取,对输入的样本源句子序列和样本释义句序列进行编码跟解码处理,对模型能够更好地对样本源句子序列和样本释义句序列的进行分类训练。

在一实施例中,参照图8,图8为另一个实施例中语句释义方法的流程示意图,包括如下步骤:

步骤802,获取中文释义对,根据所述中文释义对构建中文语料库,其中,每个中文释义对包括一个样本源句和至少一个样本释义句。

步骤804,将所述中文释义对中的样本源句子和样本释义句进行数据预处理得到样本源句子序列和样本释义句序列。

步骤806,获取模型权重矩阵的初始值,根据所述样本源句子序列和样本释义句序列进行编码处理和解码处理,得到模型的损失函数,根据损失函数对所述权重矩阵进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵,根据更新后的权值矩阵得到训练好的释义模型。

步骤808,获取目标源句子,对所述目标源句子进行预处理得到目标源句子序列;将所述目标源句子序列输入到预设的释义模型,生成与所述目标源句子对应的至少一个目标释义句子。

上述语句释义方法中,通过构建中文语料库、数据预处理、模型构建和模型运用,生成了至少一个目标释义句,提高了识别准确率。

应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图9所示,提供了一种语句释义装置,包括:语料库构建模块902、数据预处理模块904、模型训练模块906和释义生成模块908,其中:

语料库构建模块902,用于获取样本源句子和样本释义句构建中文语料库。

数据预处理模块904,用于将所述中文语料库进行数据预处理得到样本源句子序列和样本释义句序列。

模型训练模块906,用于对所述样本源句子序列和所述样本释义句序列进行模型训练得到释义模型。

释义生成模块908,用于将所述源句子序列源句子输入到所述释义模型,得到目标词并生成至少一个目标释义句子。

语料库构建模块902包括第一语料库构建单元和第二语料库构建单元,所述第一语料库构建单元用于根据英文释义对翻译处理得到中文语料库,第二语料库构建单元用于对预配置的特定场景的中文源句子进行同义词和句子结构变换处理,得到所述特定场景的中文释义句。

数据预处理模块904包括获取单元、分词处理单元、索引标识单元。数据获取单元用于获取中文释义对中的样本源句子和样本释义句;分词处理单元用于根据所述样本源句子和样本释义句进行分词处理得到各自对应的词语序列;索引标识单元用于根据词语与索引值的对应关系将所述词语序列转换为对应的索引值序列。

模型训练模块906包括编码单元、解码单元、注意力单元、分类单元和迭代单元。

其中,编码单元用于将获取的所述样本源句子序列和所述样本释义句序列进行编码处理得到样本源句子的隐含状态信息和样本源句子的高层特征信息;解码单元用于根据样本源句子的隐含状态信息和所述样本源句子的高层特征信息以及所述样本释义句序列进行解码处理,得到样本释义句隐含状态信息和样本释义句的高层特征信息。

其中,注意力单元用于根据样本源句子的隐含状态信息和样本释义句的隐含状态信息,计算得到样本释义句的注意力向量;分类单元用于将注意力向量及样本释义句的高层特征信息输入到分类层,得到与所述样本源句子对应的候选词的概率分布;迭代单元用于根据所述候选词的概率分布计算得到模型的损失函数,根据损失函数对所述权重矩阵进行更新,直到所述损失函数的值达到预设的范围或模型训练次数达到所述预设的训练次数,得到更新后的权值矩阵。

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

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

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述语句释义方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述语句释义方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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