具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供一种语句通顺度及句法评分模型、针对该语句通顺度及句法评分模型的训练方法及装置,以及一种语句通顺度及句法评分方法。本申请实施例提供的技术方案可以解决以下场景中。
现有技术中,基于自然语言处理技术的及其自动评分方法逐渐应用广泛,例如,使用一深度学习的神经网络模型确定考生答案与标准答案的语义相似度,以对考生答案进行评分。然而,由于不同考生的表达能力、表达习惯以及思维方式存在较大差异,以及对同义词、反义词、近义词以及否定词的使用等,导致自动评分方法及模型准确率较低。
为了提高自动评分方法及模型的准确性,本申请首先提供一种语句通顺度及句法评分模型,并通过本申请提供的训练方法对模型进行训练,将优化的语句通顺度及句法评分模型应用到机器自动评分场景中,在现有的自动评分方法和/或模型的基础上,结合语句通顺度及句法评分得到最终评分结果,从而有效提高自动评分方法的准确性。
值得注意的是,本申请提供的语句通顺度及句法评分模型及其训练方法包括但不限于应用于于自动评分场景,还可以应用于自动写文章(报告、总结等)***的诸如校正或语法纠错等环节中。
图1为本申请根据一示例性实施例示出的语句通顺度及句法评分模型示意图,如图1所示,该模型可以包括:表示模块11,第一特征提取模块12、第二特征提取模块13、合并模块14、基于全连接神经网络结构的全连接模块15和输出模块16。第一特征提取模块包括自注意力层、Bi-LSTM(Bi-Long Short-Term Memory,双向的长短期记忆网络)层和第一池化层,第二特征模块包括卷积层和第二池化层。
在一个句子中,每个词语的词性及其顺序是影响句子通顺度及句法正确性的重要参考因素,词性的顺序的正确与否往往反映了一个句子是否通顺及其句法是否正确。
示例性地,一典型的句法结构如主谓宾结构如:
句子对应的词序列:我/s 喜欢/v 音乐/n
其词性顺序为:我/主语 喜欢/谓语 音乐/宾语
若将上述句子修改为:我/s 音乐/n 喜欢/v
变化后的词性顺序为:我/主语 音乐/宾语 喜欢/谓语,显然为不通顺且存在句法错误的句子。
通常,一个存在句法错误的句子,往往也是不通顺的,同时一个不通顺的句子很大可能性地存在句法错误。本申请将词性信息输入到模型中,通过模型提取到词性信息的顺序特征,以结合顺序特征和其他特征预测语句的通顺度及句法正确性。
在图1所示模型中,表示模块用将输入词序列分别表示为第一输入矩阵和第二输入矩阵。其中,第一输入矩阵为第一特征提取模块的输入矩阵,第二输入矩阵为第二特征提取模块的输入矩阵。
在第二特征提取模块用于从初始词矩阵中提取用于通顺度及句法评分的特征信息,并且,从图1可以看出,本申请在第二特征提取模块中引入inner-Attention机制,通过inner-Attention使模块不同的输入词具有不同权重,从而优化模型。
第二特征提取模块中用于提取输入词序列中的字特征信息,可以改善模型的OOV现象。
最后,通过合并模块对第一特征提取模块和第二特征提取模块的输出进行合并,并通过一全连接模块对合并结果进行降维,并利用输出模块预测通顺度及句法评分。
对于一般的自然语言处理模型(如文本分类模型、命名实体抽取模型、词性标注模型等等)而言,根据基本语料数据生成训练数据和/或测试数据的过程,主要是对基本语料数据进行标注。例如,对基本语料标注类别或词性,以用于训练文本分类模型或词性标注模型。
然而,基于语句通顺度及句法评分任务的特殊性,很难直接获得通顺度参差不齐、句法错误不一且同时具有通顺度及句法量化指标(如通顺度及句法的标准分值)的训练数据。
也就是说,虽然对于一个已知语句,虽然可以明确其是否通顺或是否存在句法错误,却无法衡量该语句的通顺度及句法的具体评分,而对于多个已知语句,虽然可以明确某一些语句的通顺度较差,另一些的通顺度很差,却无法衡量这些语句的通顺度的差值具体为多少。
示例性地:
语句1:言行不一的人,是一种极坏的作风
语句2:我们要继承和发挥勤俭节约的优良作风
上述语句1和语句2,哪个语句的通顺度更高呢?高出多少呢?
如果不解决这个问题,就无法获得语句通顺度及句法评分模型的训练数据,进而无法获得优化的语句通顺度及句法评分模型。
为了解决这个问题,本申请提供一种语句通顺度及句法评分模型的训练方法。图2为所述语句通顺度及句法评分模型的训练方法的一个实施例流程图,如图2所示,该方法可以包括:
步骤21,获取语料集中每条语料对应的原始词序列。
本实施例中,语料集作为基本文本数据,用于生成模型的训练数据和测试数据。语料集包括若干条语料,其中每条语料可以是一个长文本中的一行或一个完成的句子。例如,采用sougou新闻语料集,以其中的每一行文本作为一条语料;或者采用豆瓣影评集,并以其中的每一个句子作为一条语料。
每条语料包含至少一个词汇,对一条语料进行切词,即获得该条语料对应的原始词序列。原始词序列区别于下述输入词序列,原始词序列中的词汇未经本申请步骤22所述的词替换处理。
示例性地,语料集的部分数据如下:
云南香格里拉,被雪山环抱的原始森林。
雨季里空气阴凉,在松树和栎树自然混交林中,想尽可能地跟上卓玛的脚步不是一件容易的事情。卓玛和妈妈正在寻找一种精灵般的食物。卓玛在松针下找到的是松茸,一种珍贵的食用菌。这种菌子只有在高海报的山地中才能存活。
若以每一个完整句子作为一条语料,则上述部分包含5条语料:
①云南香格里拉,被雪山环抱的原始森林。
②雨季里空气阴凉,在松树和栎树自然混交林中,想尽可能地跟上卓玛的脚步不是一件容易的事情。
③卓玛和妈妈正在寻找一种精灵般的食物。
④卓玛在松针下找到的是松茸,一种珍贵的食用菌。
⑤这种菌子只有在高海报的山地中才能存活。
若以一行数据作为一条语料,则上述部分包含4条语料:
①云南香格里拉,被雪山环抱的原始森林。
②雨季里空气阴凉,在松树和栎树自然混交林中,想尽可能地跟上卓玛的脚步不是一
③件容易的事情。卓玛和妈妈正在寻找一种精灵般的食物。卓玛在松针下找到的是松
④茸,一种珍贵的食用菌。这种菌子只有在高海报的山地中才能存活。
示例性地,使用结巴分词工具对语料①进行切词处理,获得对应的原始词序列如下:
云南 香格里拉 被 雪山 环抱 的 原始森林
词序列,如本申请涉及的原始词序列和输入词序列的长度是指序列所包含的词汇数量,原始词序列的长度为其所包含的原始词的数量,输入词序列的长度为其所述包含的输入词的数量。由于输入词序列由相应的原始词序列经步骤22详述的词替换处理得到,因而输入词序列与其相应的原始词序列的长度相同。
步骤22,采用符合预设替换规则的替换词对原始词序列中的目标词进行替换,得到输入词序列。
目标词为原始词序列中将被替换的词。对于同一原始词序列,它可以包含一个或多个目标词。例如,对于上述语料①对应的原始词序列,“云南”“香格里拉”“被”“雪山”“环抱”“的”“原始森林”中的任意一个或多个均可以作为目标词。
替换词用于替换原始词序列中的某个目标词。替换词可以根据预设词表中词汇的频率随机得到。由于高频词在实际的应用语言中更容易出现,更符合实际应用需求,因此本申请从预设词表中的频率符合一定范围的词汇中随机出一个替换词。
在步骤22中,在默认每条语料完全通顺且句法完全正确的情况下,通过替换原始词序列中的至少一个词可以降低该语料的通顺度或改变原有句法结构。在数量上,被替换的词越多,通顺度越差、出现句法错误的概率越高;此外,当替换后的词与被替换的词的词义及词性大相径庭时,也将对语料的通顺度及句法产生较大影响。因此通过步骤22,可以获得大量的通顺度参差不齐、句法错误不一的输入词序列。
本实施例中,预设替换规则是指判断替换词是否可以用于替换某一特定目标词的规则。
具体实现中,按照图3所示步骤,判断所述替换词是否符合所述预设替换规则:
步骤221,在预设词表的总词频区间内随机获取第一随机值,所述总词频区间包括预设词表中每一词汇对应的词频区间。
词表根据语料分词得到,词表中包括大量的词汇和每一词汇对应的词频。
示例性地,一词表如下:
词汇 |
词频 |
整体 |
1230 |
立刻 |
2580 |
… |
… |
苹果 |
3100 |
将词表中每一词汇对应词频相加可以得到总词频,在数轴上任意选取一个起点,以总词频为长度,可以确定预设词表对应的总词频区间。
例如,假设上述词表仅包含示出的“整体”、“立刻”和“苹果”这三个词汇,则对应的总词频为1230+2530+3100=6910。若选取数轴上的0点为起点,则总词频区间为[0,6910]。
总词频区间包括词表中每一词汇对应的词频区间,或者说,单个词汇对应的词频区间属于总词频区间的一部分,单个词汇对应的词频区间在总词频区间上占据的比例即该词汇的频率,因此根据每一词汇对应的词频可以确定其对应的词频区间的长度,而单个词汇对应的词频区间在总词频区间上的位置可以根据每个词汇在词表中的顺序确定。
例如,按照“整体”、“立刻”和“苹果”在词表中的排序,以及三者分别对应的词频1230、2530、3100,可以确定“整体”对应的词频区间为[0,1230),“立刻”对应的词频区间为[1230,2530),“苹果”对应的词频区间为[2530,6910]。
步骤222,根据所述第一随机值所属的词频区间确定替换词,并为所述替换词随机分配第二随机值,所述第二随机值属于第一预设范围或第二预设范围。
示例性地,如果在总词频区间[0,6910]内随机获取的第一随机值为800,则该第一随机值属于[0,1230),则确定“整体”为替换词,如果第一随机值为1500,则确定“立刻”为替换词。
在一场景中,假设欲将语料①中的“雪山”替换成“河流”,由于“雪山”和“河流”的词性相同,导致替换后的语句(“云南香格里拉,被河流环抱的原始森林”)还是很通顺,从而并未达到降低通顺度的效果。因此,为了避免上述问题,本申请所述的预设替换规则可以包括词性判别规则。
具体的,在步骤222中,为替换词随机分配第二随机值,该第二随机值属于一个预设范围,该预设范围包括第一预设范围和第二预设范围,第一预设范围与第二预设范围的分配比例可以根据一预先设置的界限值确定。
例如,在[0,1]内随机获取第二随机值,若界限值为0.5,则第一预设范围为[0,0.5],第二预设范围为(0.5,1]。当针对替换词在[0,1]范围内随机获取第二随机值时,第二随机值必然属于第一预设范围或第二预设范围。
步骤223,判断所述第二随机值是否属于第一预设范围。
步骤224,如果所述第二随机值属于第一预设范围,则判断所述替换词与所述目标词的词性是否相同。
步骤225,如果所述替换词属于第二预设范围,或者,如果所述替换词与所述目标词的词性不相同,则计算所述替换词与所述目标词的第一相似度。
在另一种场景中,假设欲将语料①中的“环抱”替换成“环绕”,由于“环抱”和“环绕”在语义上很相近,导致替换后的语句还是很通顺,而并未达到降低通顺度的效果。因此,为了避免替换词与目标词在语义上相近,预设替换规则还可以包括替换词与目标词的相似度规则。
具体的,对于每次随机获取的第二随机值,如其属于第一预设范围,则判断该替换词与目标词的词性是否相同,若相同,则丢弃该替换词并重新执行步骤221及后续步骤,以确定一个新的替换词,若不同,则可以进行进一步相似度判断。如果该第二随机值属于第二预设范围,则跳过词性判别步骤,直接进行进一步的相似性判断。
可见,当预设的界限值为0.5时,可以保证原始数据中50%以上的目标词与其对应的替换词的词性是不同的,从而避免保证训练数据的有效性。
作为一种可选的实现方式,使用下式计算替换词与目标词的第一相似度:
式(1)中,A表示替换词的n向量表示,B表示目标词的n维向量表示。
步骤226,判断第一相似度小于第一阈值,如果是,则执行步骤22,即采用所述替换词替换所述目标词;如果否,则回到步骤221,即确定一个新的替换词。
其中,如果第一相似度小于第一阈值,说明替换词符合预设替换规则。第一阈值预先设定,例如可以等于0.6。
此外,由于表示层在对输入词序列对应的词矩阵进行训练时,会考虑输入词序列中上下文之间的关联,因此本申请预设替换规则还可以包括替换词与目标词的上下词的相似度规则。
具体实现中,按照下述步骤,判断所述替换词是否符合所述预设替换规则:在预设词表的总词频区间内随机获取第一随机值,所述总词频区间包括预设词表中每一词汇对应的词频区间;根据所述第一随机值所属的词频区间确定替换词,并为所述替换词随机分配第二随机值,所述第二随机值属于第一预设范围或第二预设范围;如果所述第二随机值属于第一预设范围,则判断所述替换词与所述目标词的词性是否相同;如果所述第二随机值属于第二预设范围,或者,如果所述替换词与所述目标词的词性不相同,则分别计算所述替换词与所述目标词的第一相似度、所述替换词与所述目标词的上文词的第二相似度、所述替换词与所述目标词的下文词的第三相似度;如果所述第一相似度、第二相似度和第三相似度分别小于第一阈值、第二阈值以及第三阈值,则则执行步骤22,即则采用所述替换词替换所述目标词,若否,则需要重新随机出一个替换词。其中,如果第一相似度小于预设替换规则设定的第一阈值、第二相似度小于第二阈值、第三相似度小于第三阈值,则说明该替换词符合预设替换规则。
需要说明的是,第一相似度为替换词与目标词的相似度,第二相似度为替换词与目标词的上文词的相似度,第三相似度为替换词与目标词的下文词的相似度。特别的,如果目标词为原始词序列的起始词,则无需计算第二相似度,如果目标词为原始词序列的末尾词,则无需计算第三相似度。其中相似度计算方式可以参考式(1),此处不再赘述。
示例性地,在下述原始词序列中,如果目标词为“雪山”,则目标词的上文词为“被”,下文词为“环抱”。
云南 香格里拉 被 雪山 环抱 的 原始森林
示例性地,采用如下替换词分别对语料①对应的原始词序列中的相应目标词进行替换,得到输入词序列:
本实施例中,原始词序列中目标词的数量根据预设的替换比确定。替换比为目标词的数量与原始词序列的长度的比值。将原始词序列的长度与预设替换比相乘,可以获得该原始词序列中的目标词数量。例如,预设替换比为0.4,那么对于语料①对应的原始词序列,将其长度8(包含8个分词)与0.5相乘,得到目标词数量为4。其中,若相乘结果非整数,则对相乘结果做取整处理。
另外,为了能够根据规模较小的语料集获得规则较大的训练数据,本申请实施例可以预设多个不同的替换比,以根据不同的替换比对同一原始词序列进行词替换,以获得多个不同的输入词序列。此时,该多个不同输入词序列所对应的通顺度及句法评分不同。
示例性地,预先设定3个替换比,分别为0.2、0.4、0.6,分别根据该3个替换比对语料①对应的原始词序列进行词替换。
当替换比为0.2时,目标词数量为0.2×8=1.6,取整为2。
当替换比为0.4时,目标词数量为0.4×8=3.2,取整为3。
当替换比为0.6时,目标词数量为:0.6×8=4.8,取整为5。
可见,采用根据不同的替换比对同一原始词序列进行词替换,可以得到多个不同的输入词序列,其中的每一词序列的通顺度及句法评分有所不同。
需要说明的是,可以按照从左至右的顺序依序从原始词序列选定计算数量的目标词,以可以从原始词序列中随机选定计算数量的目标词。例如,从左至右依序选定:
原始词序列:云南 香格里拉 被 雪山 环抱 的 原始森林
目标词(数量为1):云南
目标词(数量为2):云南 香格里拉
目标词(数量为3):云南 香格里拉 被
···
目标词(数量为6):云南 香格里拉 被 雪山 环抱 的
···
步骤23,根据输入词序列的长度和所替换的目标词数量,确定输入词序列对应的标准分值。
标准分值为输入词序列的通顺度及句法的真实评分,是对通顺度及句法正确性的量化表示。由于本实施例默认语料集中的每条语料完全通顺且句法完全正确,因此原始词序列中被替换的目标词的数量越多,意味着得到的输入词序列的通顺度越差、出现句法错误的可能性越高。进而每个输入词序列对应的标准分值可以根据该输入词序列的长度和所替换的目标词数量计算确定。
具体的,首先根据所替换的目标词数量和所述输入词序列的长度,计算实际替换比。
由于在根据预设替换比确定目标词数量时,存在取整处理,因此实际替换比可能不等于预设替换比。可以使用下式计算实际替换比:
然后根据实际替换比与所述原始词序列预设的原始分值,计算输入词序列对应的标准分值。
原始分值为语句完全通顺时的通顺度及句法评分。由于本申请通过词替换的方式降低原始词序列的通顺度,因此可以根据实际替换比与原始词序列预设的原始分值计算输入词序列对应的标准分值,具体可以使用下式:
标准分值=原始分值×实际替换比 式(3)
实际应用中,可设定原始分值为1,则标准分值=实际替换比。
步骤24,使用所述输入词序列及对应的标准分值训练所述语句通顺度及句法评分模型。
语句通顺度及句法评分模型为回归模型,现有技术中回归模型种类有多种,优选地,本实施例中采用神经网络回归模型。
训练的目的是为了使语句通顺度及句法评分模型的实际预测结果与输入词序列对应的标准分值无限的接近。具体是将预测结果与标准分值代入到预先设定好的损失函数中计算损失值,进而可以根据损失值确定模型的迭代更新方向和更新量,从而不断优化模型的更新参数,包括优化模型中字向量、词向量及模型变量。
需要说明的是,由于通过词替换的方式获得的输入词序列均非完全通顺,因此,为了使训练数据更加全面以提供模型的泛化性,本申请实施例在使用输入词序列对应的标准分值对模型进行训练的基础上,使部分原始词序列及其预设的原始分值也加入到训练中。
具体的,在每一轮训练过程中,将部分原始词序列和具有不同标准分值的输入词序列添加到该轮的训练集中,并使训练集中不同标准分值对应的输入数据(包括输入词序列和原始词序列)的数量均匀或者符合预设比例。
示例性地,训练集的规模为320,数量分布如下:
标准分值范围 |
输入数据比例 |
输入数据数量 |
<0.2 |
25% |
80 |
0.2~0.5 |
25% |
80 |
0.5~0.8 |
25% |
80 |
>0.8 |
25% |
80 |
语句通顺度及句法评分模型对其输入数据的处理过程,实际上是根据神经网络模型算法对输入数据进行处理,神经网络模型的算法基于神经网络模型的类型不同而不同,由于属于已有技术,在此不再赘述。
具体的,步骤24可以包括图4所示步骤:
步骤241,根据所述输入词序列分别获取第一输入矩阵和第二输入矩阵,所述第一输入矩阵包含所述输入词序列对应的词矩阵和词性矩阵,所述第二输入矩阵为所述输入词序列对应的字矩阵;
对于第一输入矩阵,首先获取所述输入词序列中每一输入词的词性信息。
示例性地:
输入词序列 |
云南 |
立刻 |
整体 |
雪山 |
环抱 |
的 |
原始森林 |
词性 |
ns |
d |
n |
n |
v |
s |
n |
然后,根据所述输入词序列生成词矩阵,并根据每一输入词的所述词性信息生成词性矩阵。
假设输入词序列的长度为m,可以通过随机初始化或Word2Vec模型将每个输入词表示成一个n维向量,m个n维向量构成大小为m×n的词矩阵。再通过随机初始化或Word2Vec模型将每个输入词对应的词性表示成一个u维向量,m个u维向量构成大小为m×u的词性矩阵。
最后将所述词矩阵与所述词性矩阵拼接,得到第一输入矩阵。假设词矩阵的大小为m×n,词性矩阵的大小为m×u,则输入到语句通顺度及句法评分模型中的矩阵大小为m×(n+u)。其中,m表示输入词序列的长度或所包含的输入词的个数,n表示输入词的向量维度,u表示输入词的词性的向量维度。
对于第二输入矩阵,首先对输入词序列中的每个输入词进行切字,得到字序列;再将字序列转换成字矩阵。
步骤242,将所述第一输入矩阵和第二输入矩阵分别输入至第一特征提取模块和第二特征提取模块中,输出模块输出预测分值。
由图1可知,本申请语句通顺度及句法评分模型包括第一特征提取模块、第二特征提取模块、合并模块、全连接模块和输出模块。
在步骤242中,具体是将第一输入矩阵输入到第一特征提取模块中,输出第一特征向量;将第二输入矩阵输入至第二特征提取模块中,输出第二特征向量;最后将第一特征向量与第二特征向量同时输入到合并模块中,合并模块对第一特征向量与第二特征向量进行拼接或加和(保证两个向量形状相同),再将合并结果输入到全连接模块中进行降维,并使用输出模块对全连接模块的输出结果进行预测,得到预测评分。
其中,第一特征提取模块对第一输入矩阵的处理过程如下:
首先将第一输入矩阵输入至内注意力层中,输出第一向量[h1,h2,…,ht,…,hm]。其中,m表示所述输入词序列的长度,i∈[1,m]。具体的,内注意力层包括一Bi-LSTM神经网络,利用该Bi-LSTM神经网络对第一输入矩阵进行处理,得到第一向量。再根据第一向量[h1,h2,…,ht,…,hm]生成所述输入词序列的注意力矩阵,并使用所述注意力矩阵对输入矩阵进行加权。具体可使用下式:
xat=xt×at; 式(6)
式(4)-(6)中,at表示输入词序列中每个输入词对应的注意力权重;Mqi表示初始注意力矩阵;xt表示输入矩阵中每个输入词对应的向量表示;σ表示sigmoid函数;xat表示加权结果。
再将加权结果输入到Bi-LSTM层中,输出第二向量[H1,H2,…,Ht,…,Hm]。
然后将所述第二向量[H1,H2,…,Ht,…,Hm]输入至第一池化层以分别进行平均池化处理和最大池化处理,输出第一特征向量。
池化层用于对第二向量进行压缩,一方面降低向量维度,简化网络计算复杂度,另一方面通过压缩来进一步提取主要特征。池化处理一般分为两种,一种是最大池化处理,另一种是平均池化处理。其中,最大池化处理是在输入向量的每一个区域中查找最大值来构成输出向量,而平均池化处理是求取每个区域内元素的平均数来构成输出向量。本实施例中,利用第一池化层对第二向量分别进行最大池化操作和平均池化操作,输出最大池化处理结果和平均池化处理结果,为第一特征向量。
第二特征提取模块对第二输入矩阵的处理过程如下:
首先,对第二输入矩阵(输入词序列对应的字矩阵)进行卷积处理,并利用所述第二池化层对卷积处理结果进行最大池化处理,输出第二特征向量。
本实施例中,卷积层用于提取输入矩阵的字特征。例如,字序列长度为k,第二输入矩阵大小为k×d,d为每个字的向量维度;分别使用d×c1,d×c2,d×c3大小的卷积核对第二输入矩阵进行卷积计算,再对每一卷积计算结果进行最大池化操作,得到3个1×P大小的向量,将这3个1×P大小的向量连接,得到第二特征向量。其中,P为输出通道个数。
步骤243,根据所述预测分值和标准分值计算如下损失函数的损失值。
式(7)中,MSE表示损失值;表示第j个输入词序列的预测分值;Yj表示第j个输入词序列对应的标准分值;z表示在每一轮训练过程所使用的输入词序列的数量,所述输入词序列包括至少一个输入词。
步骤244,根据所述损失值对所述语句通顺度及句法评分模型的参数进行优化,直到所述语句通顺度及句法评分模型满足预设条件。
通过本申请提供的方法,不断更新迭代所述语句通顺度及句法评分模型的参数,最终在满足预设条件时,终止训练,得到优化模型。所谓预设条件,可如迭代次数达到一定数量,或者模型参数呈收敛状态,或者对模型测试得到的准确率达到一定阈值等等。
本申请实施例提供一种语句通顺度及句法评分模型的训练方法,首先获取语料集中每条语料对应的原始词序列;然后采用符合预设替换规则的替换词对原始词序列中的目标词进行替换,得到输入词序列;再根据输入词序列的长度和所替换的目标词数量,确定输入词序列对应的标准分值;最后使用输入词序列及对应的标准分值训练所述语句通顺度及句法评分模型。本申请通过词替换的方式获得通顺度参差不齐的输入词序列,并根据输入词序列的长度和所替换的目标词数量确定输入词序列对应的标准分值,实现对通顺度的量化表示,使用输入词序列及对应的标准分值训练语句通顺度及句法评分模型,最终利用优化的语句通顺度及句法评分模型解决至少一个可应用领域中语句通顺度的评分问题。
本申请还提供一种语句通顺度及句法评分方法,该方法首先生成待测语句的初始字向量和包含词性信息的初始词向量;再将初始字向量和所述初始词向量输入到通过本申请技术方案训练得到的语句通顺度及句法评分模型中,具体是将初始字向量输入到第二特征提取模块中,将初始词向量输入到第一特征提取模块中,模型输出所述待测语句的通顺度及句法评分,以解决至少一个可应用领域中语句通顺度及句法的评分问题。
在一个优选实施例中,在获得待测语句的通顺度及句法评分后,对通顺度及句法评分进行归一化处理。具体的,根据通顺度及句法评分与所述通顺度及句法评分所在的评分区间的左边界及右边界的距离,将所述通顺度及句法评分归一到所述左边界或右边界。其中,所述评分区间的个数及每个评分区间的边界根据所述待测语句的长度确定。
示例性地:
待测语句:看着她平安幸福
模型预测的通顺度及句法评分:0.93
由于待测语句长度4,因此对应的评分区间可以包括4个,分别为[0,0.25)、[0.25,0.5)、[0.5,0.75)和[0.75,1]。可见,通顺度及句法评分0.93所在的评分区间为[0.75,1]。
对于[0.75,1],其左边界为0.75,右边界为1。由于0.93与1的距离更近,因此将通顺度及句法评分0.93归一到1,即最后的通顺度及句法评分为1。
图5为本申请根据一示例性实施例示出的一种语句通顺度及句法评分模型的训练装置框图。如图5所示,该装置可以包括:
获取模块51,用于获取语料集中每条语料对应的原始词序列;
替换模块52,用于采用符合预设替换规则的替换词对所述原始词序列中的目标词进行替换,得到输入词序列。优选地,所述替换模块根据预设的替换比,确定每一原始词序列中的目标词数量;以及根据不同的替换比对同一原始词序列进行词替换,以获得分别对应于不同标准分值的多个输入词序列。
确定模块53,用于根据所述输入词序列的长度和所替换的目标词数量,确定所述输入词序列对应的标准分值。所述确定模块,具体用于根据所替换的目标词数量和所述输入词序列的长度,计算实际替换比;根据所述实际替换比与所述原始词序列预设的原始分值,计算所述输入词序列对应的标准分值。
训练模块54,用于使用所述输入词序列及对应的标准分值训练所述语句通顺度及句法评分模型。所述训练模块,具体用于根据所述输入词序列分别获取第一输入矩阵和第二输入矩阵,所述第一输入矩阵包含所述输入词序列对应的词矩阵和词性矩阵,所述第二输入矩阵为所述输入词序列对应的字矩阵;将所述第一输入矩阵和第二输入矩阵分别输入至第一特征提取模块和第二特征提取模块中,输出预测分值;根据所述预测分值和标准分值计算如下损失函数的损失值;
根据所述损失值对所述语句通顺度及句法评分模型的参数进行优化,直到所述语句通顺度及句法评分模型满足预设条件;其中,MSE表示损失值;表示第j个输入词序列的预测分值;Yj表示第j个输入词序列对应的标准分值;z表示在每一轮训练过程所使用的输入词序列的数量,所述输入词序列包括至少一个输入词。
其中,所述第一特征提取模块对第一输入矩阵的处理过程,包括:将所述第一输入矩阵输入到自注意力层中,输出第一向量[h1,h2,…,ht,…,hm];根据所述第一向量[h1,h2,…,ht,…,hm]生成所述输入词序列的注意力矩阵,并使用所述注意力矩阵对输入矩阵进行加权;将加权结果输入到Bi-LSTM层中,输出第二向量[H1,H2,…,Ht,…,Hm];将所述第二向量[H1,H2,…,Ht,…,Hm]输入至第一池化层以分别进行平均池化处理和最大池化处理,输出第一特征向量,t∈[1,m]。
生成所述输入词序列的注意力矩阵,以及对输入矩阵进行加权所使用的公式如下:
xat=xt×at;
其中,at表示输入词序列中每个输入词对应的注意力权重;Mqi表示初始注意力矩阵;xt表示输入矩阵中每个输入词对应的向量表示;σ表示sigmoid函数;xat表示加权结果。
所述第二提取特征提取模块对第二输入矩阵的处理过程,包括:将所述第二输入矩阵输入到所述卷积层中,以对所述第二输入矩阵进行卷积处理,并利用所述第二池化层对卷积处理结果进行最大池化处理,输出第二特征向量。
在一个优选实施例中,本申请语句通顺度及句法评分模型的训练装置还包括:判断模块;
所述判断模块,用于计算所述替换词与所述目标词的第一相似度;如果所述第一相似度符合所述预设替换规则,则采用所述替换词替换所述目标词。
或者,所述判断模块,用于分别计算所述替换词与所述目标词的第一相似度、所述替换词与所述目标词的上文词的第二相似度、所述替换词与所述目标词的下文词的第三相似度;如果所述第一相似度、第二相似度和第三相似度均符合所述预设替换规则,则采用所述替换词替换所述目标词。
由以上技术方案可知,本申请提供一种语句通顺度及句法评分模型的训练方法及装置、语句通顺度评分及句法方法,所述训练方法中,首先获取语料集中每条语料对应的原始词序列;然后采用符合预设替换规则的替换词对原始词序列中的目标词进行替换,得到输入词序列;再根据输入词序列的长度和所替换的目标词数量,确定输入词序列对应的标准分值;最后使用输入词序列及对应的标准分值训练所述语句通顺度及句法评分模型。本申请通过词替换的方式获得通顺度参差不齐的输入词序列,并根据输入词序列的长度和所替换的目标词数量确定输入词序列对应的标准分值,实现对通顺度的量化表示,使用输入词序列及对应的标准分值训练语句通顺度及句法评分模型,最终利用优化的语句通顺度及句法评分模型解决至少一个可应用领域中语句通顺度的评分问题。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。