发明内容
基于此,有必要针对语义完整性识别准确性较低的技术问题,提供一种用于语义完整性识别的模型训练方法和装置、一种语义完整性识别方法和装置、一种计算机设备和一种存储介质。
一种用于语义完整性识别的模型训练方法,所述方法包括:
获取语义完整样本;
根据所述语义完整样本,得到语义不完整样本;
根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本;
根据所述模型训练样本对所述完整性识别模型进行训练,得到训练后完整性识别模型;所述训练后完整性识别模型用于对待识别语句进行语义完整性识别。
在其中一个实施例中,所述语义完整样本包括完整样本语句;所述根据所述语义完整样本,得到语义不完整样本,包括:
对所述完整样本语句进行切词处理,得到完整样本词;
通过去除所述完整样本词中的停用词,得到完整样本关键词;
通过对所述完整样本关键词进行不完全选取,得到不完整样本关键词;
根据所述不完整样本关键词,得到所述语义不完整样本。
在其中一个实施例中,所述根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本,包括:
对所述完整样本关键词进行编码,得到完整样本关键词编码,以及,对所述不完整样本关键词进行编码,得到不完整样本关键词编码;
根据所述完整样本关键词编码和所述不完整样本关键词编码,得到所述模型训练样本。
在其中一个实施例中,所述根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本,还包括:
获取所述完整样本关键词对应的完整样本词性,以及,获取所述不完整样本关键词对应的不完整样本词性;
对所述完整样本词性进行编码,得到完整样本词性编码,以及,对所述不完整样本词性进行编码,得到不完整样本词性编码;
根据所述完整样本关键词编码、所述不完整样本关键词编码、所述完整样本词性编码和所述不完整样本词性编码,得到所述模型训练样本。
在其中一个实施例中,所述获取语义完整样本,包括:
获取候选样本语句;
通过对所述候选样本语句进行句法分析处理,得到所述候选样本语句的语句结构;
根据所述语句结构,识别所述候选样本语句的语句意图;
若所述语句意图为单意图,则将所述候选样本语句作为所述完整样本语句;
根据所述完整样本语句,得到所述语义完整样本。
一种语义完整性识别方法,所述方法包括:
获取待识别语句;
对所述待识别语句进行预处理,得到所述待识别语句的词向量;
将所述词向量输入预设的完整性识别模型,得到所述完整性识别模型输出的完整性概率;所述完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
当所述完整性概率超过预设的概率阈值时,判定所述待识别语句具备语义完整性。
在其中一个实施例中,所述对所述待识别语句进行预处理,得到所述待识别语句的词向量,包括:
对所述待识别语句进行切词处理,得到待识别语句切词;
通过去除所述待识别语句切词中的停用词,得到待识别语句关键词;
通过对所述待识别语句关键词进行编码,得到待识别语句关键词编码;
根据所述待识别语句关键词编码,得到所述待识别语句的词向量。
在其中一个实施例中,所述方法还包括:
获取所述待识别语句关键词的词性;
通过对所述词性进行编码,得到关键词词性编码;
根据所述关键词词性编码,得到所述待识别语句的词性向量;
将所述词向量和所述词性向量输入所述完整性识别模型,得到所述完整性概率。
一种用于语义完整性识别的模型训练装置,所述装置包括:
完整样本获取模块,用于获取语义完整样本;
不完整样本获取模块,用于根据所述语义完整样本,得到语义不完整样本;
训练样本获取模块,用于根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本;
训练模块,用于根据所述模型训练样本对所述完整性识别模型进行训练,得到训练后完整性识别模型;所述训练后完整性识别模型用于对待识别语句进行语义完整性识别。
一种语义完整性识别装置,所述装置包括:
获取模块,用于获取待识别语句;
预处理模块,用于对所述待识别语句进行预处理,得到所述待识别语句的词向量;
概率计算模块,用于将所述词向量输入预设的完整性识别模型,得到所述完整性识别模型输出的完整性概率;所述完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
识别模块,用于当所述完整性概率超过预设的概率阈值时,判定所述待识别语句具备语义完整性。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取语义完整样本;
根据所述语义完整样本,得到语义不完整样本;
根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本;
根据所述模型训练样本对所述完整性识别模型进行训练,得到训练后完整性识别模型;所述训练后完整性识别模型用于对待识别语句进行语义完整性识别。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待识别语句;
对所述待识别语句进行预处理,得到所述待识别语句的词向量;
将所述词向量输入预设的完整性识别模型,得到所述完整性识别模型输出的完整性概率;所述完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
当所述完整性概率超过预设的概率阈值时,判定所述待识别语句具备语义完整性。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取语义完整样本;
根据所述语义完整样本,得到语义不完整样本;
根据所述语义完整样本和所述语义不完整样本,得到完整性识别模型的模型训练样本;
根据所述模型训练样本对所述完整性识别模型进行训练,得到训练后完整性识别模型;所述训练后完整性识别模型用于对待识别语句进行语义完整性识别。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待识别语句;
对所述待识别语句进行预处理,得到所述待识别语句的词向量;
将所述词向量输入预设的完整性识别模型,得到所述完整性识别模型输出的完整性概率;所述完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
当所述完整性概率超过预设的概率阈值时,判定所述待识别语句具备语义完整性。
上述用于语义完整性识别的模型训练方法和装置、语义完整性识别方法和装置、计算机设备和存储介质,通过首先获取语义完整样本,根据语义完整样本,得到语义不完整样本,然后,根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本,进而根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型,可以使训练样本中既包含语义完整样本又包含语义不完整样本,训练得到的模型能够结合语义完整特征和语义不完整特征识别语义完整性,可以提高语义完整性识别的准确性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的用于语义完整性识别的模型训练方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种用于语义完整性识别的模型训练方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S210,获取语义完整样本。
其中,语义完整样本为能够表达完整语义的语句样本。
具体实现中,可以通过终端102向服务器104随机输入一段语音或一段文本作为候选样本语句,通过对候选样本语句进行依存句法分析和意图识别,可以识别出语义完整的单意图样本,将其作为完整样本语句(表示为sent1),并用label=1对其进行标识,可以得到一个语义完整样本(sent1,label)。通过获取多个语义完整样本,可以得到一个语义完整样本集合{(sent1,label)},服务器104可以将语义完整样本集合存储在样本数据表中。
其中,依存句法分析通过分析语言单位内成分之间的依存关系揭示其句法结构,即分析识别句子中的“主谓宾”、“定状补”等语法成分,并分析各成分之间的关系。
其中,可以基于深度学习算法建立用于识别意图的意图识别模型,通过意图识别模型进行意图识别。
步骤S220,根据语义完整样本,得到语义不完整样本。
其中,语义不完整样本为能够表达不完整语义的语句样本。
具体实现中,服务器104可以通过jieba(结巴)对语义完整样本中的完整样本语句sent1进行切词和去停用词处理,得到sent1分成的多个词,组成完整样本语句的词集合{wordi,i=1,2,…,N},其中i为词索引,N为词个数。语义不完整样本可以通过在词集合{wordi,i=1,2,…,N}中选取子集来实现,初始情况下设置词索引i0=0,根据词索引选取的子集为空集,相应的不完整样本语句为空语句,通过随机选取1到N之间的整数作为词索引增量Δi1,词索引可以更新为i1=i0+Δi1,根据更新的词索引选取子集,得到下一次继续选取词索引增量Δi2,词索引可以更新为i2=i1+Δi2,根据更新的词索引选取子集,得到/>以此类推,可以依次得到不完整样本语句的词集合φ,/>通过对上述词集合中的词进行连接可以得到相应的不完整样本语句/>去除其中的空语句φ和完整样本语句sent2N,并用label=0对其余的不完整样本语句进行标记,可以得到一个语义不完整样本集合{(sent2,label)},服务器104可以将语义不完整样本集合存储在样本数据表中。
其中,jieba是Python中文分词组件,主要有三种特性,包括支持精确模式、全模式、搜索引擎模式3种分词模式,支持繁体分词,支持自定义词典。
进一步地,还可以获取完整样本语句中各个词的词性,由完整样本语句的词和词性共同组成语义完整样本,以及获取不完整样本语句中各个词的词性,由不完整样本语句的词和词性共同组成语义不完整样本。可以通过对完整样本语句中的各个词进行词性标注,得到完整样本语句的词性,可以根据完整样本语句中词和词性之间的映射关系,对不完整样本语句中的词一一映射,得到不完整样本语句的词性。
例如,对于(“请问有客服人员吗”,1),经过切词和去停用词后可以得到(“请问”,“有”,“客服人员”,“吗”,1),通过标注可以得到相应词性为(动词,动词,名词,介词,1),则(“请问有客服人员吗”,1)和(动词,动词,名词,介词,1)可以组成一个语义完整样本。根据词索引在(“请问”,“有”,“客服人员”,“吗”)中选取不完整样本,可以依次得到词集合(“请问”)、(“请问”,“有”)、(“请问”,“有”,“客服人员”)、(“请问”,“有”,“客服人员”,“吗”),相应的词性集合为(动词)、(动词,动词)、(动词,动词,名词)、(动词,动词,名词,介词),根据词集合组成不完整样本语句(“请问”)、(“请问有”)、(“请问有客服人员”)、(“请问有客服人员吗”),联合词性集合可以得到语义不完整样本(“请问”,0)、(动词,0)、(“请问有”,0)、(动词,动词,0)、(“请问有客服人员”,0)、(动词,动词,名词,0)、(“请问有客服人员吗”,0)、(动词,动词,名词,介词,0)。
步骤S230,根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本。
具体实现中,服务器104可以获取多个语义完整样本和多个语义不完整样本,合并得到一个语义样本集合,使用Keras的Tokenizer分别对语义样本中切词和去停用词后的词和词性进行编码,并用Keras的pad_sequences将词和词性的编码长度规范到预设长度,具体地,若编码长度大于预设长度,则可以根据预设长度进行截取,若编码长度不大于30,则可以在词和词性编码前进行补零,长度规范后得到的词编码和词性编码,可以组成模型训练样本。
其中,Keras是一个高层神经网络API(Application Programming Interface,应用程序接口),基于Theano和TensorFlow的深度学习库,Keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端。
其中,Tokenizer是Keras中一个用于向量化文本,或将文本转换为序列(即单词在字典中的下标构成的列表,从1算起)的类。
其中,pad_sequences是Keras中一个填充序列函数,可以将长度不定的序列规范化成定长的序列。
例如,服务器104可以将(“请问有客服人员吗”,1)、(动词,动词,名词,介词,1)、(“请问”,0)、(动词,0)、(“请问有”,0)、(动词,动词,0)、(“请问有客服人员”,0)、(动词,动词,名词,0)、(“请问有客服人员吗”,0)、(动词,动词,名词,介词,0)组成一个语义样本集合,经过切词和去停用词后得到(“请问”,“有”,“客服人员”,“吗”,1)、(动词,动词,名词,介词,1)、(“请问”,0)、(动词,0)、(“请问”,“有”,0)、(动词,动词,0)、(“请问”,“有”,“客服人员”,0)、(动词,动词,名词,0)、(“请问”,“有”,“客服人员”,“吗”,0)、(动词,动词,名词,介词,0),进行文本转序列编码后可以得到各个词和词性对应的编码向量,将词和词性编码长度规范到30的长度,其中,若编码长度>30,则截取前30位编码,若编码长度<=30,则在词和词性编码前添加(30-sent的长度)个0,保证词和词性编码长度规范到30,从而获得词和词性的编码,其中,文本转序列编码为将文本转化为数学序列的一种编码方式。
步骤S240,根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型;训练后完整性识别模型用于对待识别语句进行语义完整性识别。
其中,完整性识别模型为对待识别语句的语义完整性进行识别的模型,可以为LSTM(Long Short Term Memory,长短期记忆神经网络),还可以为TextCNN(TextConvolutional Neural Networks,文本卷积神经网络)、DCNN(Deep ConvolutionalNeural Networks,深度卷积神经网络)、RCNN(Region-based Convolutional NeuralNetworks,基于区域的卷积神经网络)、FastText(快速文本分类模型)、Attention(注意力模型)等模型。
具体实现中,以LSTM为例,完整性识别模型的结构可以包括2个输入层(Input)、2个词嵌入层(Embedding)、1个拼接层(Concatenate)、1个LSTM层和1个全连接层(dense),服务器104将词编码和词性编码分别输入2个输入层,通过词嵌入层后,在拼接层中进行拼接,拼接后输入LSTM层进行训练,得到完整性识别模型。在进行语义完整性识别时,可以将待识别语句输入服务器104,服务器104将待识别语句输入完整性识别模型,输出得到完整性概率,根据完整性概率,可以识别出待识别语句是否语义完整。
其中,LSTM是一种特殊的递归神经网络,可以解决长序列训练过程中的梯度消失和梯度爆炸问题,相比于普通的递归神经网络,能够在较长的序列中实现较好的性能。
上述用于语义完整性识别的模型训练方法,通过首先获取语义完整样本,根据语义完整样本,得到语义不完整样本,然后,根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本,进而根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型,可以使训练样本中既包含语义完整样本又包含语义不完整样本,训练得到的模型能够结合语义完整特征和语义不完整特征识别语义完整性,可以提高语义完整性识别的准确性。
在一个实施例中,上述步骤S220,可以具体包括:对完整样本语句进行切词处理,得到完整样本词;通过去除完整样本词中的停用词,得到完整样本关键词;通过对完整样本关键词进行不完全选取,得到不完整样本关键词;根据不完整样本关键词,得到语义不完整样本。
其中,完整样本词为完整样本语句中的词,完整样本关键词为去除完整样本词中停用词后得到的词。
具体实现中,服务器可以通过jieba对语义完整样本中的完整样本语句sent1进行切词和去停用词处理,得到sent1分成的多个词,组成完整样本语句的词集合{wordi,i=1,2,…,N},其中i为词索引,N为词个数。语义不完整样本可以通过在词集合{wordi,i=1,2,…,N}中选取子集来实现,初始情况下设置词索引i0=0,根据词索引选取的子集为空集,相应的不完整样本语句为空语句,通过随机选取1到N之间的整数作为词索引增量Δi1,词索引可以更新为i1=i0+Δi1,根据更新的词索引选取子集,得到下一次继续选取词索引增量Δi2,词索引可以更新为i2=i1+Δi2,根据更新的词索引选取子集,得到/>以此类推,可以依次得到不完整样本语句的词集合φ,通过对上述词集合中的词进行连接可以得到相应的不完整样本语句/>去除其中的空语句φ和完整样本语句sent2N,并用label=0对其余的不完整样本语句进行标记,可以得到一个语义不完整样本集合{(sent2,label)},服务器可以将语义不完整样本集合存储在样本数据表中。
本实施例中,通过首先对完整样本语句进行切词处理,得到完整样本词,然后通过去除完整样本词中的停用词,得到完整样本关键词,再通过对完整样本关键词进行不完全选取,得到不完整样本关键词,最后根据不完整样本关键词,得到语义不完整样本,可以根据语义完整样本构建出语义不完整样本,降低算法复杂度,且可以使训练样本中既包含语义完整样本又包含语义不完整样本,训练得到的模型能够结合语义完整特征和语义不完整特征识别语义完整性,可以提高语义完整性识别的准确性。
在一个实施例中,上述步骤S230,可以具体包括:对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码;根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本。
具体实现中,服务器可以获取多个语义完整样本和多个语义不完整样本,合并得到一个语义样本集合,使用Keras的Tokenizer分别对完整样本关键词和不完整样本关键词进行编码,并用Keras的pad_sequences将词的编码长度规范到预设长度,具体地,若编码长度大于预设长度,则可以根据预设长度进行截取,若编码长度不大于30,则可以在词编码前进行补零,长度规范后得到的完整样本关键词编码和不完整样本关键词编码,可以组成模型训练样本。
本实施例中,通过对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码,根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本,可以使训练样本中既包含语义完整样本又包含语义不完整样本,训练得到的模型能够结合语义完整特征和语义不完整特征识别语义完整性,可以提高语义完整性识别的准确性。
在一个实施例中,上述步骤S230,具体还可以包括:获取完整样本关键词对应的完整样本词性,以及,获取不完整样本关键词对应的不完整样本词性;对完整样本词性进行编码,得到完整样本词性编码,以及,对不完整样本词性进行编码,得到不完整样本词性编码;根据完整样本关键词编码、不完整样本关键词编码、完整样本词性编码和不完整样本词性编码,得到模型训练样本。
其中,完整样本词性为完整样本关键词的词性,不完整样本词性为不完整样本关键词的词性,完整样本词性编码为完整样本词性的编码,不完整样本词性编码为不完整样本词性的编码。
具体实现中,可以获取完整样本语句中各个词的词性,由完整样本语句的词和词性共同组成语义完整样本,以及获取不完整样本语句中各个词的词性,由不完整样本语句的词和词性共同组成语义不完整样本。可以通过对完整样本语句中的各个词进行词性标注,得到完整样本语句的词性,可以根据完整样本语句中词和词性之间的映射关系,对不完整样本语句中的词一一映射,得到不完整样本语句的词性。服务器可以获取多个语义完整样本和多个语义不完整样本,合并得到一个语义样本集合,使用Keras的Tokenizer分别对完整样本关键词、不完整样本关键词、完整样本关键词的词性、不完整样本关键词的词性进行编码,并用Keras的pad_sequences将词和词性的编码长度规范到预设长度,具体地,若编码长度大于预设长度,则可以根据预设长度进行截取,若编码长度不大于30,则可以在词和词性编码前进行补零,长度规范后得到的完整样本关键词编码、不完整样本关键词编码、完整样本词性编码、不完整样本词性编码,可以组成模型训练样本。
本实施例中,通过获取完整样本关键词对应的完整样本词性,以及,获取不完整样本关键词对应的不完整样本词性;对完整样本词性进行编码,得到完整样本词性编码,以及,对不完整样本词性进行编码,得到不完整样本词性编码;根据完整样本关键词编码、不完整样本关键词编码、完整样本词性编码和不完整样本词性编码,得到模型训练样本,可以综合语义完整样本和语义不完整样本的词和词性进行模型训练,训练得到的模型能够结合语义完整样本和语义不完整样本的词特征和词性特征识别语义完整性,通过词特征进行语义识别,通过词性特征进行重点词识别,可以提高语义完整性识别的准确性。
在一个实施例中,上述步骤S210,可以具体包括:获取候选样本语句;通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;根据完整样本语句,得到语义完整样本。
具体实现中,可以通过终端向服务器随机输入一段语音或一段文本作为候选样本语句,通过对候选样本语句进行依存句法分析和意图识别,若识别出语义完整的单意图样本,则可以将其作为完整样本语句(表示为sent1),并用label=1对其进行标识,可以得到一个语义完整样本(sent1,label)。通过获取多个语义完整样本,可以得到一个语义完整样本集合{(sent1,label)},服务器可以将语义完整样本集合存储在样本数据表中。
本实施例中,通过获取候选样本语句;通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;根据完整样本语句,得到语义完整样本,可以获取到单意图的语义完整样本,便于后续根据语义完整样本生成语义不完整样本,提高语义完整性识别的准确性。
在一个实施例中,如图3所示,提供了一种语义完整性识别方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S310,获取待识别语句;
步骤S320,对待识别语句进行预处理,得到待识别语句的词向量;
步骤S330,将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
步骤S340,当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性。
具体实现中,终端向服务器输入一段流式的语音或文本,服务器在接收到语音或文本后,将其作为待识别语句,通过对待识别语句进行切词和去停用词等预处理,可以得到待识别语句中的词和词性,通过对词进行文本转序列编码,编码后可以得到待识别语句的词向量,通过对词性进行文本转序列编码,编码后可以得到待识别语句的词性向量,将词向量和词性向量输入完整性识别模型,完整性识别模型可以输出待识别语句的完整性概率,若完整性概率高于预设的语义完整性概率阈值,则可以判定待识别语句语义完整,否则,可以判定当前语句的语义不完整,此时可以返回获取待识别语句,对待识别语句进行切词和去停用词等预处理的步骤,重新执行上述语义完整性识别过程。根据语义完整性识别结果,服务器可以动态调整静音等待时间。
本实施例中,通过获取待识别语句;对待识别语句进行预处理,得到待识别语句的词向量;将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性,可以结合语义完整特征和语义不完整特征对待识别语句进行语义完整性识别,识别准确性较高。
在一个实施例中,上述步骤S320,可以具体包括:对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量。
具体实现中,服务器在获取到待识别语句后,可以首先对待识别语句进行切词处理,得到待识别语句切词,然后去除待识别语句切词中的停用词,得到待识别语句关键词,通过对待识别语句关键词进行文本转序列编码,编码后可以得到待识别语句关键词编码,待识别语句关键词编码可以作为待识别语句的词向量。
本实施例中,通过对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量,可以将待识别语句转化为待识别语句的词向量,便于根据词向量对待识别语句的完整性进行识别,识别准确性较高。
在一个实施例中,上述语义完整性识别方法,具体还可以包括:获取待识别语句关键词的词性;通过对词性进行编码,得到关键词词性编码;根据关键词词性编码,得到待识别语句的词性向量;将词向量和词性向量输入完整性识别模型,得到完整性概率。
具体实现中,服务器还可以获取待识别语句关键词所对应的词性,通过对待识别语句关键词的词性进行文本转序列编码,编码后可以得到待识别语句的关键词词性编码,关键词词性编码可以作为待识别语句的词性向量,将词向量和词性向量共同输入完整性识别模型进行语义完整性判断,完整性识别模型可以根据词向量和词性向量,输出待识别语句的完整性概率。
本实施例中,通过获取待识别语句关键词的词性;通过对词性进行编码,得到关键词词性编码;根据关键词词性编码,得到待识别语句的词性向量;将词向量和词性向量输入完整性识别模型,得到完整性概率,可以综合待识别语句的词特征和词性特征进行语义完整性识别,识别准确性较高。
在一个实施例中,如图4所示,提供了一种语义完整性识别方法的流程示意图,包括以下步骤:
步骤S410,执行数据预处理,具体可以包括:
步骤S411,经过依存句法分析和意图识别模型处理后,生成<语义完整的单意图样本数据(sent1,label)>,其中样本的格式为(sent1,label),sent1为句子,label=1;
步骤S412,执行jieba切词、去停用词,并获取词和词性;
步骤S413,对每个语义完整的单意图样本的sent1,从0个词开始,每次随机增加1至n个词作为1个语义不完整的样本的sent2,直至len(sent2)=len(sent1)(其中len()表示求取sent的词长,len(sent2)=0或len(sent2)=len(sent1)时,不作为语义不完整的样本),生成<语义不完整的样本数据(sent2,label)>,其中label=0;
步骤S414,将<语义完整的单意图样本数据(sent1,label)>和<语义不完整的样本数据(sent2,label)>合并成<训练样本数据(sent,label)>,使用kera的Tokenizer分别对切词、去停用词的sent的词和词性进行文本转序列编码,并用Keras的pad_sequences将sent的词和词性编码长度规范到30的长度,其中若编码长度>30,则截取前30位编码,若编码长度<=30,则在sent的词和词性编码前添加(30-sent的长度)个0,保证sent的词和词性编码长度规范到30的长度,从而获得sent的词和词性的编码;
步骤S420,执行LSTM模型训练,模型结构包括2个输入层(Input,用于输入词和词性)、2个词嵌入层(Embedding,包括嵌入词和词性),1个拼接层(Concatenate,用于拼接词和词性),1个LSTM层,1个全连接层(dense);利用词和词性编码好的<训练样本数据(sent,label)>对该LSTM网络模型结构进行训练;
步骤S430,执行模型预测,具体可以包括:
步骤S431,使用jieba切词、去停用词技术对流式输入的待判断句子进行预处理,并获取词和词性;
步骤S432,使用文本转序列编码对切词、去停用词的待判断句子进行词和词性编码;
步骤S433,基于步骤S420中训练好的LSTM网络模型对当前流式输入句子进行语义完整性判断,若模型输出概率大于语义完整性阈值,则输出句子语义完整,否则返回至步骤S431。
本实施例中,通过随机增加1至n个词的方式生成语义不完整样本,采用词和词性融合特征进行语义识别和重点词识别,基于LSTM建模实现实时流式地判断客户话术语义表述完整性,以及实现动态调整静音等待时间,可以根据语义完整样本和语义不完整样本、以及词和词性的融合特征进行语义识别和重点词识别,可以提高识别的准确性。
在一个实施例中,如图5所示,提供了一种语义完整性识别方法的流程示意图,包括以下步骤:
步骤S501,获取候选样本语句;
步骤S502,通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;
步骤S503,根据完整样本语句,得到语义完整样本;
步骤S504,对完整样本语句进行切词处理,得到完整样本词;通过去除完整样本词中的停用词,得到完整样本关键词;
步骤S505,通过对完整样本关键词进行不完全选取,得到不完整样本关键词;
步骤S506,根据不完整样本关键词,得到语义不完整样本;
步骤S507,对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码;
步骤S508,根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本;
步骤S509,根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型;训练后完整性识别模型用于对待识别语句进行语义完整性识别。
步骤S510,获取待识别语句;
步骤S511,对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量;
步骤S512,将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
步骤S513,当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种用于语义完整性识别的模型训练装置600,包括:完整样本获取模块602、不完整样本获取模块604、训练样本获取模块606、训练模块608,其中:
完整样本获取模块602,用于获取语义完整样本;
不完整样本获取模块604,用于根据语义完整样本,得到语义不完整样本;
训练样本获取模块606,用于根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本;
训练模块608,用于根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型;训练后完整性识别模型用于对待识别语句进行语义完整性识别。
在一个实施例中,上述不完整样本获取模块604,还用于对完整样本语句进行切词处理,得到完整样本词;通过去除完整样本词中的停用词,得到完整样本关键词;通过对完整样本关键词进行不完全选取,得到不完整样本关键词;根据不完整样本关键词,得到语义不完整样本。
在一个实施例中,上述训练样本获取模块606,还用于对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码;根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本。
在一个实施例中,上述训练样本获取模块606,还用于获取完整样本关键词对应的完整样本词性,以及,获取不完整样本关键词对应的不完整样本词性;对完整样本词性进行编码,得到完整样本词性编码,以及,对不完整样本词性进行编码,得到不完整样本词性编码;根据完整样本关键词编码、不完整样本关键词编码、完整样本词性编码和不完整样本词性编码,得到模型训练样本。
在一个实施例中,上述完整样本获取模块602,还用于获取候选样本语句;通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;根据完整样本语句,得到语义完整样本。
关于模型训练装置的具体限定可以参见上文中对于模型训练方法的限定,在此不再赘述。上述模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图7所示,提供了一种语义完整性识别装置700,包括:获取模块702、预处理模块704、概率计算模块706、识别模块708,其中:
获取模块702,用于获取待识别语句;
预处理模块704,用于对待识别语句进行预处理,得到待识别语句的词向量;
概率计算模块706,用于将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;
识别模块708,用于当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性。
在一个实施例中,上述预处理模块704,还用于对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量。
在一个实施例中,上述语义完整性识别装置700,还用于获取待识别语句关键词的词性;通过对词性进行编码,得到关键词词性编码;根据关键词词性编码,得到待识别语句的词性向量;将词向量和词性向量输入完整性识别模型,得到完整性概率。
关于语义完整性识别装置的具体限定可以参见上文中对于语义完整性识别方法的限定,在此不再赘述。上述语义完整性识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储语义完整性识别数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种语义完整性识别方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取语义完整样本;根据语义完整样本,得到语义不完整样本;根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本;根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型;训练后完整性识别模型用于对待识别语句进行语义完整性识别。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对完整样本语句进行切词处理,得到完整样本词;通过去除完整样本词中的停用词,得到完整样本关键词;通过对完整样本关键词进行不完全选取,得到不完整样本关键词;根据不完整样本关键词,得到语义不完整样本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码;根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取完整样本关键词对应的完整样本词性,以及,获取不完整样本关键词对应的不完整样本词性;对完整样本词性进行编码,得到完整样本词性编码,以及,对不完整样本词性进行编码,得到不完整样本词性编码;根据完整样本关键词编码、不完整样本关键词编码、完整样本词性编码和不完整样本词性编码,得到模型训练样本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取候选样本语句;通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;根据完整样本语句,得到语义完整样本。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待识别语句;对待识别语句进行预处理,得到待识别语句的词向量;将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待识别语句关键词的词性;通过对词性进行编码,得到关键词词性编码;根据关键词词性编码,得到待识别语句的词性向量;将词向量和词性向量输入完整性识别模型,得到完整性概率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取语义完整样本;根据语义完整样本,得到语义不完整样本;根据语义完整样本和语义不完整样本,得到完整性识别模型的模型训练样本;根据模型训练样本对完整性识别模型进行训练,得到训练后完整性识别模型;训练后完整性识别模型用于对待识别语句进行语义完整性识别。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对完整样本语句进行切词处理,得到完整样本词;通过去除完整样本词中的停用词,得到完整样本关键词;通过对完整样本关键词进行不完全选取,得到不完整样本关键词;根据不完整样本关键词,得到语义不完整样本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对完整样本关键词进行编码,得到完整样本关键词编码,以及,对不完整样本关键词进行编码,得到不完整样本关键词编码;根据完整样本关键词编码和不完整样本关键词编码,得到模型训练样本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取完整样本关键词对应的完整样本词性,以及,获取不完整样本关键词对应的不完整样本词性;对完整样本词性进行编码,得到完整样本词性编码,以及,对不完整样本词性进行编码,得到不完整样本词性编码;根据完整样本关键词编码、不完整样本关键词编码、完整样本词性编码和不完整样本词性编码,得到模型训练样本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取候选样本语句;通过对候选样本语句进行句法分析处理,得到候选样本语句的语句结构;根据语句结构,识别候选样本语句的语句意图;若语句意图为单意图,则将候选样本语句作为完整样本语句;根据完整样本语句,得到语义完整样本。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待识别语句;对待识别语句进行预处理,得到待识别语句的词向量;将词向量输入预设的完整性识别模型,得到完整性识别模型输出的完整性概率;完整性识别模型为根据语义完整样本和语义不完整样本训练得到的模型;当完整性概率超过预设的概率阈值时,判定待识别语句具备语义完整性。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对待识别语句进行切词处理,得到待识别语句切词;通过去除待识别语句切词中的停用词,得到待识别语句关键词;通过对待识别语句关键词进行编码,得到待识别语句关键词编码;根据待识别语句关键词编码,得到待识别语句的词向量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待识别语句关键词的词性;通过对词性进行编码,得到关键词词性编码;根据关键词词性编码,得到待识别语句的词性向量;将词向量和词性向量输入完整性识别模型,得到完整性概率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。