语义识别方法、装置和语音对话系统
技术领域
本发明涉及人工智能技术领域,尤其涉及一种语义识别方法、装置和语音对话系统。
背景技术
近年来,语音识别、人机对话等技术迅猛发展,具体到汽车领域,通过车载语音对话系统,根据用户发出的语音消息,识别用户语义,然后根据用户语义,执行相应的操作。但是,现有的车载对话系统仅能识别一些简单的,包含属性较少的语音消息,例如,用户发出“我要开启空调”,车载语音对话系统可识别出用户想开空调的语义,输出语义识别结果,开启空调,对于用户发出的包含多种属性的语音消息,例如“我想听A歌手的B歌曲”,语音对话系统就无法准确预测出用户的语义,预测精度低,用户体验差。
因此,如何提高用户语义预测的精度,进一步提升用户体验,成为亟待解决的技术问题。
发明内容
本发明所要解决的技术问题在于,提供一种语义识别方法、装置和语音对话系统,提升对用户指令语义识别的精度,进而提升用户体验。
为了解决上述技术问题,根据本发明一方面,提供了一种语义识别方法,包括:
将多条文本数据进行分词处理,并标注每个词语的属性信息,得到属性序列;
对所述属性序列进行向量化处理,得到所述属性序列对应的词向量;
将所述词向量和对应的所述多条文本数据的文本向量进行拼接,得到输入数据;
将所述输入数据以及对应的语义输出结果,作为训练数据集进行训练,得到语义识别模型;
根据输入文本信息和所述语义识别模型进行语义识别。
进一步的,所述方法还包括:
建立每个属性信息的文本文件,所述属性信息的文本文件用于存储该属性信息对应的词汇;
将所有属性信息的文本文件进行合并,组成属性字典,所述属性字典中存储有属性信息与词语的映射关系表。
进一步的,所述将多条文本数据进行分词处理,并标注每个词语的属性信息,得到属性序列,包括以下步骤:
将每条文本数据进行粗粒度分词处理,根据所述属性信息与词语的映射关系表,标注每个粗粒度词语的属性信息;
再将每个粗粒度词语进行细粒度分词处理,根据属性信息与词语的映射关系表,标注每个细粒度词语的属性信息,得到属性序列。
进一步的,所述对所述属性序列进行向量化处理,得到所述属性序列对应的词向量,包括以下步骤;
采用每个属性信息在所述属性字典中的位置索引,替代所述属性序列中的每个属性信息,得到属性序列的id化文件;
将所述属性序列的id化文件转换为属性序列矩阵,其中,所述属性序列矩阵是维度为batch_size×max_length×property_vocab_size的矩阵,其中,batch_size代表当前训练的文本数据的条数,max_length代表当前训练的文本数据的最大长度,所述长度为文本数据分词后的词语个数,property_vocab_size代表属性信息的种类的总数量;
将所述属性序列矩阵转换为词向量矩阵。
进一步的,所述将所述属性序列的id化文件转换为属性序列矩阵包括以下步骤:
根据当前训练的文本数据的最大长度,对所述属性序列的id化文件的每一位进行长度补齐;
根据所述属性信息的种类的总数量,对所述属性序列的id化文件的每一位进行宽度补齐;
其中,采用0元素进行长度补齐和宽度补齐。
进一步的,所述将所述属性序列矩阵转换为词向量矩阵包括以下步骤:
将所述属性序列矩阵中的每个元素除以该维度上非零元素的个数,得到矩阵M;
构建一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,word_embedding_size表示单个属性信息对应的词向量的长度;
将所述矩阵M进行维度转换得到(batch_size×max_length)×property_vocab_size的属性序列矩阵,然后乘以矩阵W,得到batch_size×max_length×word_embedding_size的词向量矩阵,再进行维度转换,得到维度为batch_size×max_length×word_embedding_size的词向量矩阵。
进一步的,将所述词向量和对应的所述多条文本数据的文本向量进行拼接,得到输入数据,包括以下步骤:
获取所述多条文本数据对应的word2vec文本向量矩阵,所述word2vec文本向量通过单独训练神经概率语言模型所得;
将所述词向量矩阵和所述多条文本数据对应的word2vec文本向量矩阵进行拼接,得到所述输入数据。
进一步的,所述方法还包括:
将待训练的文本数据分为多批文本数据,每批文本数据包括多条文本数据;
逐批训练所述文本数据,每批所述文本数据训练完成后更新所述语义识别模型。
进一步的,所述方法还包括:更新所述属性字典信息,具体包括以下步骤:
根据更新频率将所述属性信息分为静态属性数据和动态属性数据;
根据应用需求定时更新所述静态属性数据;
建立动态属性数据库,实时更新所述动态属性数据库,从而更新所述动态属性数据。
进一步的,所述属性信息包括:音乐名称、音乐风格、音乐专辑名称、歌手名称、城市名称、街道名称、电视剧名称、电影名称、广播节目名称、机构名称中的一种或多种。
根据本发明另一方面,提供了一种语义识别装置,包括:
属性信息标注模块,用于将多条文本数据进行分词处理,并标注每个词语的属性信息,得到属性序列;
向量化处理模块,用于对所述属性序列进行向量化处理,得到所述属性序列对应的词向量;
输入数据获取模块,用于将所述词向量和对应的所述多条文本数据的文本向量进行拼接,得到输入数据;
语义识别模型训练模块,用于将所述输入数据以及对应的语义输出结果,作为训练数据集进行训练,得到语义识别模型;
语义识别模块,用于根据输入文本信息和所述语义识别模型进行语义识别。
进一步的,所述装置还包括属性字典构建模块,用于:建立每个属性信息的文本文件,并将所有属性信息的文本文件进行合并,组成属性字典,
其中,所述属性信息的文本文件用于存储该属性信息对应的词汇;
所述属性字典中存储有属性信息与词语的映射关系表。
进一步的,所述属性信息标注模块包括:
第一分词标注单元,用于将每条文本数据进行粗粒度分词处理,根据所述属性信息与词语的映射关系表,标注每个粗粒度词语的属性信息;
第二分词标注单元,用于将每个粗粒度词语进行细粒度分词处理,根据属性信息与词语的映射关系表,标注每个细粒度词语的属性信息,得到属性序列。
进一步的,所述向量化处理模块包括:
id化单元,用于采用每个属性信息在所述属性字典中的位置索引,替代所述属性序列中的每个属性信息,得到属性序列的id化文件;
第一转换单元,用于将所述属性序列的id化文件转换为属性序列矩阵,其中,所述属性序列矩阵是维度为batch_size×max_length×property_vocab_size的矩阵,其中,batch_size代表当前训练的文本数据的条数,max_length代表当前训练的文本数据的最大长度,所述长度为文本数据分词后的词语个数,property_vocab_size代表属性信息的种类的总数量;
第二转换单元,用于将所述属性序列矩阵转换为词向量矩阵。
进一步的,所述第一转换单元包括:
长度补齐子单元,用于根据当前训练的文本数据的最大长度,对所述属性序列的id化文件的每一位进行长度补齐;
宽度补齐子单元,用于根据所述属性信息的种类的总数量,对所述属性序列的id化文件的每一位进行宽度补齐;
其中,采用0元素进行长度补齐和宽度补齐。
进一步的,所述第二转换单元包括:
输入矩阵构建子单元,用于将所述属性序列矩阵中的每个元素除以该维度上非零元素的个数,得到矩阵M;
词向量矩阵构建子单元,用于构建一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,word_embedding_size表示单个属性信息对应的词向量的长度;
矩阵转换子单元,用于将所述矩阵M进行维度转换得到(batch_size×max_length)×property_vocab_size的属性序列矩阵,然后乘以矩阵W,得到batch_size×max_length×word_embedding_size的词向量矩阵,再进行维度转换,得到维度为batch_size×max_length×word_embedding_size的词向量矩阵。
进一步的,所述输入数据获取模块包括:
文本向量获取单元,用于获取所述多条文本数据对应的word2vec文本向量矩阵,所述word2vec文本向量通过单独训练神经概率语言模型所得;
向量拼接单元,用于将所述词向量矩阵和所述多条文本数据对应的word2vec文本向量矩阵进行拼接,得到所述输入数据。
进一步的,所述装置还包括训练数据分批模块,用于将待训练的文本数据分为多批文本数据,每批文本数据包括多条文本数据;
所述装置逐批训练所述文本数据,每批所述文本数据训练完成后更新所述语义识别模型。
进一步的,所述装置还包括更新模块,用于更新所述属性字典信息,所述更新模块包括:
数据分类单元,用于根据更新频率将所述属性信息分为静态属性数据和动态属性数据;
第一更新单元,用于根据应用需求定时更新所述静态属性数据;
第二更新单元,用于建立动态属性数据库,实时更新所述动态属性数据库,从而更新所述动态属性数据。
进一步的,所述属性信息包括:音乐名称、音乐风格、音乐专辑名称、歌手名称、城市名称、街道名称、电视剧名称、电影名称、广播节目名称、机构名称中的一种或多种。
一种车载语音对话系统,包括上述用于语义识别装置和语音转换模块,所述语音转换模块用于将语音信息转换为文本信息,并将所述文本信息输入到所述语义识别装置中进行语义识别。
根据本发明又一方面,提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述方法的步骤。
根据本发明又一方面,提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述方法的步骤。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明一种语义识别方法、装置和语音对话系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
(1)本发明将属性信息作为辅助信息,增强了输入文本的表达能力,提升了语义识别的精确度,进而提升了用户体验。
(2)本发明可以根据实际需求对属性信息种类进行调整,而不用改动语义识别模型结构。
(3)本发明可根据属性信息更新频率,分为静态更新和动态更新两种方式更新运营属性信息数据,简单且高效。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明一实施例提供的语义识别方法示意图;
图2为本发明一实施例提供的将属性序列进行向量化处理示意图;
图3为本发明一实施例提供的属性字典信息更新示意图;
图4为本发明一实施例提供的语义识别装置示意图;
图5为本发明一实施例提供的车载语音对话系统示意图。
【符号说明】
1:属性信息标注模块 2:向量化处理模块
3:输入数据获取模块 4:语义识别模型训练模块
5:语义识别模块
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种语义识别方法、装置和语音对话系统的具体实施方式及其功效,详细说明如后。
本发明实施例提供了一种语义识别方法,如图1所示,包括以下步骤:
步骤S1、将多条文本数据进行分词处理,并标注每个词语的属性信息,得到属性序列;
其中,作为一种示例,可根据具体的需求,从语料库获取文本数据,或者根据需求创建对应的文本数据库,再从所创建的文本数据库中获取文本数据。
步骤S2、对所述属性序列进行向量化处理,得到所述属性序列对应的词向量;
步骤S3、将所述词向量和对应的所述多条文本数据的文本向量进行拼接,得到输入数据;
步骤S4、将所述输入数据以及对应的语义输出结果,作为训练数据集进行训练,得到语义识别模型;
步骤S5、根据输入文本信息和所述语义识别模型进行语义识别。
本发明实施例所述方法将属性信息作为辅助信息,作为文本向量的补充信息,建立语义识别模型,增强了输入文本的表达能力,提升了语义识别的精确度,进而提升了用户体验。
在进行步骤S1之前,可实现建立属性字典,具体包括:
步骤S01、建立每个属性信息的文本文件,每个属性信息的文本文件用于存储该属性信息对应的词汇;
步骤S02、将所有属性信息的文本文件进行合并,组成属性字典,所述属性字典中存储有属性信息与词语的映射关系表。
作为一种示例,属性信息的文本文件的文件名可记为A.txt,A表示属性信息(property)的名字,文件内容就是对应的该property的词汇。然后,属性信息的文本文件的所有property数据合并到一个属性文件中,属性文件存储词语和其对应的property,组成属性字典,作为示例,所述属性信息可包括音乐名称、音乐风格、音乐专辑名称、歌手名称、城市名称、街道名称、电视剧名称、电影名称、广播节目名称、机构名称中的一种或多种。
以下实施例中,以属性字典中包括10种属性信息进行距离说明,10种属性信息的位置索引分别为0,1,2,3,4,5,6,7,8,9。
步骤S1可包括以下步骤:
步骤S11、将每条文本数据进行粗粒度分词处理,根据属性信息与词语的映射关系表,标注每个粗粒度词语的属性信息;
步骤S12、再将每个粗粒度词语进行细粒度分词处理,根据属性信息与词语的映射关系表,标注每个细粒度词语的属性信息,得到属性序列。
步骤S1通过上述粗粒度及细粒度分词处理,可以有效减少分词边界错误,从而提高语义识别的精确度。
作为一种示例,文本数据为“我要听某A歌手的B歌曲”,则经过步骤S11粗粒度分词处理后得到“我要听A歌手的B歌曲”,,对应标注的属性信息为“歌手名称无音乐名称:专辑名称”;然后经过步骤S12细粒度分词处理后得到“我要听A歌手的B歌曲”,对应标注的属性信息为“无无无歌手名称无音乐名称:专辑名称”,需要说明的是,本示例中,对语义提取无关的词语属性信息对应的是“无”,一个词语对应多种属性的,采用“:”将所标注的多种属性分隔开。
步骤S2可以包括以下步骤;
步骤S21、采用每个属性信息在所述属性字典中的位置索引,替代所述属性序列中的每个属性信息,得到属性序列的id化文件;
接着上述示例,经过步骤S21处理后可表示为“0 0 0 1 0 2:3”,可以理解的是,本示例中,数字对应相应的属性信息在属性字典中的位置索引,0对应默认值,即无属性信息,1对应歌手名,2对应歌曲名,3对应专辑名,第6个位置之所对应两种属性信息,是因为B歌曲名可表示一个具体的歌曲名称,也可表示一个专辑名称。需要说明的是,上述属性信息对应的数字,以及属性信息的个数均为其中一种示例,实际应用中可根据具体需求进行设定。
步骤S22、将所述属性序列的id化文件转换为属性序列矩阵,其中,所述属性序列矩阵是维度为batch_size×max_length×property_vocab_size的矩阵,其中,batch_size代表当前训练的文本数据的条数,max_length代表当前训练的文本数据的最大长度,所述长度为文本数据分词后的词语个数,property_vocab_size代表属性信息的种类的总数量,本示例中,属性信息种类总数量为10。
步骤S23、将所述属性序列矩阵转换为词向量矩阵。
步骤S21具体可包括以下步骤:
步骤S211、根据当前训练的文本数据的最大长度,对属性序列的id化文件的每一位进行长度补齐,即统一当前批次训练的文本数据分词后的词语个数,具体采用0元素进行长度补齐;
步骤S212、根据属性信息的种类的总数量,对所述属性序列的id化文件的每一位进行宽度补齐,这是因为一个词语可能同时对应多个属性信息,进行宽度补齐,即在宽度上进行维度扩展,可以避免损失携带信息,提高语义识别的精确度,具体采用0元素进行宽度补齐。
其中,采用0元素进行长度补齐和宽度补齐,因此不会影响到数据训练结果,接着上述示例,假设该示例中,当前训练的文本数据的最大长度为6,经过步骤S211和S212后可得:
[[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 1 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 0 1 1 0 0 0 0 0 0]]。
步骤S23具体可包括以下步骤:
步骤S231、将所述属性序列矩阵中的每个元素除以该维度上非零元素的个数,得到矩阵M;
步骤S231主要是针对一个词语对应多个属性信息的情况所设定,继续上述示例,经过步骤S231,可得矩阵M为:
[[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 1 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 0 1/2 1/2 0 0 0 0 0 0]]
步骤S232、构建一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,word_embedding_size表示单个属性信息对应的词向量的长度,作为一种示例,可直接初始化一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,单个属性信息对应的词向量的长度可根据具体需求预先设定,为已知量。
步骤S233、将所述矩阵M进行维度转换,即维度重整(reshape)得到(batch_size×max_length)×property_vocab_size的属性序列矩阵,然后乘以矩阵W,得到batch_size×max_length×word_embedding_size的词向量矩阵,再进行维度转换,即维度重整(reshape),得到维度为batch_size×max_length×word_embedding_size的词向量矩阵,如图2所示示例,经过上述变换,将文本数据的属性信息转换为词向量形式,从而可以实现与所述多条文本数据的文本向量进行拼接。
需要说明的是,转换后得到的词向量矩阵的维度和property_vocab_size无关,因此可以根据实际需要扩展或减少属性信息的种类,而不用改动语义识别模型的结构。
步骤S3可以包括以下步骤:
步骤S31、获取所述多条文本数据对应的word2vec文本向量矩阵,作为一种示例,所述word2vec文本向量通过单独训练神经概率语言模型所得,神经概率语言模型为现有模型,在此不再赘述。
步骤S32、将词向量矩阵和所述多条文本数据对应的word2vec文本向量矩阵进行拼接,得到所述输入数据。
经过步骤S31和步骤S32,将属性信息作为辅助信息,补充到文本向量中,丰富了输入数据所包含的信息,从而提升语义识别的精确度。
所述方法还包括以下步骤:
S00、将待训练的文本数据分为多批文本数据,每批文本数据包括多条文本数据;
通过步骤S1-步骤S4逐批训练所述文本数据,每批所述文本数据训练完成后更新所述语义识别模型,将待训练的文本数据按需求分为多批文本数据,作为一种示例,可以平均分配为多批训练数据。这样既可以避免过量的文本数据同时进行训练,或逐条数据训练所造成的训练效率低下,提升模型训练效率的同时也可提高语义识别模型的精确度。
作为示例,步骤S4中,可将所述输入数据以及对应的语义输出结果,作为训练数据集输入到序列-序列(sequence-sequence)模型中进行训练,得到语义识别模型;sequence-sequence模型包括编码-解码(encoder-decoder)模型等。
由于转换后得到的词向量矩阵的维度和property_vocab_size无关,可以根据实际需要扩展或减少属性信息的种类,而不用改动语义识别模型的结构,因此可根据具体应用需求更新属性字典信息,如图3所示,具体包括以下步骤:
步骤S61、根据更新频率将属性信息分为静态属性数据(静态property)和动态属性数据(动态property);
作为示例,静态属性数据数据可包括城市名称(poi_name)、机构名称(call_org)、广播节目名称(channel_list)等,可将其存储在运营系统的数据库中,是一些比较常见且固定的信息。动态属性数据可包括音乐名称(music_name)、歌手名称(music_artist)、音乐专辑名称(music_album)等,可以从网络中进行爬虫并定时更新的数据,可存储在运营项目的本地文件中。
步骤S62、根据应用需求定时更新所述静态属性数据;
静态属性数据可采用运营系统进行补充,作为一种示例,运营系统维护四个数据表,分别是编辑(operate)表、审核(audit)表、弃用(abandon)数据表、最终(info)表。新添加的属性数据首先上传到编辑表,经过初步运营和审核后,未通过的导入到弃用表,通过的导入到审核表。然后进一步审核,未通过的导入到弃用表,通过的导入到最终表。其中,静态数据来源可包括以下两种:
(1)将训练语料进行分词,从标注结果提取出静态属性数据对应的词汇,并将新的词汇添加到运营系统中。
(2)在运营系统中,由运营人员根据实际需要手动添加新的静态属性数据。
步骤S63、建立动态属性数据库,实时更新所述动态属性数据库,从而更新所述动态属性数据。
动态属性数据库保持持续更新,新的动态属性数据可按照长度筛选、热度筛选、白名单筛选等规则进行清洗后再进行更新。
上述属性信心的运营更新机制,提高了属性信息更新的效率,也避免了重复更新相对稳定的属性信息,节约了成本。
本发明实施例所述方法,将属性信息作为辅助信息,增强了输入文本的表达能力,提升了语义识别的精确度,进而提升了用户体验。且可以根据实际需求对属性信息种类进行调整,而不用改动语义识别模型结构。此外,本发明实施例可根据属性信息更新频率,分为静态更新和动态更新两种方式更新运营属性信息数据,简单且高效。
本发明实施例还提供了一种语义识别装置,如图4所示,包括:属性信息标注模块1、向量化处理模块2、输入数据获取模块3、语义识别模型训练模块4和语义识别模块5,其中,属性信息标注模块1用于将多条文本数据进行分词处理,并标注每个词语的属性信息,得到属性序列,其中,作为一种示例,可根据具体的需求,从语料库获取文本数据,或者根据需求创建对应的文本数据库,再从所创建的文本数据库中获取文本数据。向量化处理模块2用于对所述属性序列进行向量化处理,得到所述属性序列对应的词向量。输入数据获取模块3用于将所述词向量和对应的所述多条文本数据的文本向量进行拼接,得到输入数据。语义识别模型训练模块4用于将所述输入数据以及对应的语义输出结果,作为训练数据集进行训练,得到语义识别模型。语义识别模块5用于根据输入文本信息和所述语义识别模型进行语义识别。本发明实施例所述装置将属性信息作为辅助信息,作为文本向量的补充信息,建立语义识别模型,增强了输入文本的表达能力,提升了语义识别的精确度,进而提升了用户体验。
所述装置还可包括属性字典构建模块,用于建立每个属性信息的文本文件,并将所有属性信息的文本文件进行合并,组成属性字典,其中,属性信息的文本文件用于存储该属性信息对应的词汇;属性字典中存储有属性信息与词语的映射关系表。
作为一种示例,属性信息的文本文件的文件名可记为A.txt,A表示属性信息(property)的名字,及属性信息的名字,文件内容就是对应的该property的词汇。然后,属性信息的文本文件的所有property数据合并到一个属性文件中,属性文件存储词语和其对应的property,组成属性字典,作为示例,所述属性信息可包括音乐名称、音乐风格、音乐专辑名称、歌手名称、城市名称、街道名称、电视剧名称、电影名称、广播节目名称、机构名称中的一种或多种。
以下实施例中,以属性字典中包括10种属性信息进行距离说明,10种属性信息的位置索引分别为0,1,2,3,4,5,6,7,8,9。
所述属性信息标注模块1可包括第一分词标注单元和第二分词标注单元,其中,第一分词标注单元用于将每条文本数据进行粗粒度分词处理,根据所述属性信息与词语的映射关系表,标注每个粗粒度词语的属性信息;第二分词标注单元用于将每个粗粒度词语进行细粒度分词处理,根据属性信息与词语的映射关系表,标注每个细粒度词语的属性信息,得到属性序列。属性信息标注模块1通过上述粗粒度及细粒度分词处理,可以有效减少分词边界错误,从而提高语义识别的精确度。
作为一种示例,文本数据为“我要听某A歌手的B歌曲”,则经过第一分词标注单元粗粒度分词处理后得到“我要听A歌手的B歌曲”,然后经过第二分词标注单元细粒度分词处理后得到“我要听A歌手的B歌曲”,对应标注的属性信息为“无无无歌手名称无音乐名称:专辑名称”,需要说明的是,本示例中,对语义提取无关的词语属性信息对应的是“无”,一个词语对应多种属性的,采用“:”将所标注的多种属性分隔开。
所述向量化处理模块2可包括id化单元、第一转换单元和第二转换单元,其中,id化单元用于采用每个属性信息在所述属性字典中的位置索引,替代所述属性序列中的每个属性信息,得到属性序列的id化文件。
接着上述示例,经过id化单元处理后可表示为“0 0 0 1 0 2:3”,可以理解的是,本示例中,数字对应相应的属性信息在属性字典中的位置索引,0对应默认值,即无属性信息,1对应歌手名,2对应歌曲名,3对应专辑名,第6个位置之所对应两种属性信息,是因为B歌曲名可表示一个具体的歌曲名称,也可表示一个专辑名称。需要说明的是,上述属性信息对应的数字,以及属性信息的个数均为其中一种示例,实际应用中可根据具体需求进行设定。
第一转换单元用于将所述属性序列的id化文件转换为属性序列矩阵,其中,所述属性序列矩阵是维度为batch_size×max_length×property_vocab_size的矩阵,其中,batch_size代表当前训练的文本数据的条数,max_length代表当前训练的文本数据的最大长度,所述长度为文本数据分词后的词语个数,property_vocab_size代表属性信息的种类的总数量;本示例中,属性信息种类总数量为10。
第二转换单元用于将所述属性序列矩阵转换为词向量矩阵。
所述第一转换单元可包括长度补齐子单元和宽度补齐子单元,其中,长度补齐子单元用于根据当前训练的文本数据的最大长度,对所述属性序列的id化文件的每一位进行长度补齐,具体采用0元素进行长度补齐。宽度补齐子单元用于根据所述属性信息的种类的总数量,对所述属性序列的id化文件的每一位进行宽度补齐,这是因为一个词语可能同时对应多个属性信息,进行宽度补齐,即在宽度上进行维度扩展,可以避免损失携带信息,提高语义识别的精确度,具体采用0元素进行宽度补齐。
其中,采用0元素进行长度补齐和宽度补齐,因此不会影响到数据训练结果,接着上述示例,假设该示例中,当前训练的文本数据的最大长度为6,经过长度补齐子单元和宽度补齐子单元补处理后可得:
[[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 1 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 0 1 1 0 0 0 0 0 0]]。
所述第二转换单元可包括输入矩阵构建子单元、词向量矩阵构建子单元和矩阵转换子单元,其中,输入矩阵构建子单元用于将所述属性序列矩阵中的每个元素除以该维度上非零元素的个数,得到矩阵M,继续上述示例,经过输入矩阵构建子单元,可得矩阵M为:
[[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 1 0 0 0 0 0 0 0 0],
[1 0 0 0 0 0 0 0 0 0],
[0 0 1/2 1/2 0 0 0 0 0 0]]
词向量矩阵构建子单元用于构建一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,word_embedding_size表示单个属性信息对应的词向量的长度,作为一种示例,可直接初始化一个维度为property_vocab_size×word_embedding_size的词向量矩阵W,其中,单个属性信息对应的词向量的长度可根据具体需求预先设定,为已知量。
矩阵转换子单元用于将所述矩阵M进行维度转换得到(batch_size×max_length)×property_vocab_size的属性序列矩阵,然后乘以矩阵W,得到batch_size×max_length×word_embedding_size的词向量矩阵,再进行维度转换,得到维度为batch_size×max_length×word_embedding_size的词向量矩阵,如图2所示示例,经过上述变换,将文本数据的属性信息转换为词向量形式,从而可以实现与所述多条文本数据的文本向量进行拼接。
需要说明的是,转换后得到的词向量矩阵的维度和property_vocab_size无关,因此可以根据实际需要扩展或减少属性信息的种类,而不用改动语义识别模型的结构。
所述输入数据获取模块3可包括文本向量获取单元和向量拼接单元,其中,文本向量获取单元用于获取所述多条文本数据对应的word2vec文本向量矩阵,所述word2vec文本向量通过单独训练神经概率语言模型所得;神经概率语言模型为现有模型,在此不再赘述。向量拼接单元用于将所述词向量矩阵和所述多条文本数据对应的word2vec文本向量矩阵进行拼接,得到所述输入数据。经过文本向量获取单元和向量拼接单元,将属性信息作为辅助信息,补充到文本向量中,丰富了输入数据所包含的信息,从而提升语义识别的精确度。
所述装置还可包括训练数据分批模块,用于将待训练的文本数据分为多批文本数据,每批文本数据包括多条文本数据;所述装置逐批训练所述文本数据,每批所述文本数据训练完成后更新所述语义识别模型。将待训练的文本数据按需求分为多批文本数据,作为一种示例,可以平均分配为多批训练数据。这样既可以避免过量的文本数据同时进行训练,或逐条数据训练所造成的训练效率低下,提升模型训练效率的同时也可提高语义识别模型的精确度。
语义识别模型训练模块4可将所述输入数据以及对应的语义输出结果,作为训练数据集输入到序列-序列(sequence-sequence)模型中进行训练,得到语义识别模型;sequence-sequence模型包括编码-解码(encoder-decoder)模型等。
由于转换后得到的词向量矩阵的维度和property_vocab_size无关,可以根据实际需要扩展或减少属性信息的种类,而不用改动语义识别模型的结构,因此可根据具体应用需求更新属性字典信息,所述装置还包括更新模块,用于更新所述属性字典信息,所述更新模块包括数据分类单元、第一更新单元和第二更新单元,其中,数据分类单元用于根据更新频率将所述属性信息分为静态属性数据(静态property)和动态属性数据(动态property)。作为示例,静态属性数据数据可包括城市名称(poi_name)、机构名称(call_org)、广播节目名称(channel_list)等,可将其存储在运营系统的数据库中,是一些比较常见且固定的信息。动态属性数据可包括音乐名称(music_name)、歌手名称(music_artist)、音乐专辑名称(music_album)等,可以从网络中进行爬虫并定时更新的数据,可存储在运营项目的本地文件中。
第一更新单元用于根据应用需求定时更新所述静态属性数据;静态属性数据可采用运营系统进行补充,作为一种示例,运营系统维护四个数据表,分别是编辑表、审核表、弃用表、最终表。新添加的属性数据首先上传到编辑表,经过初步运营和审核后,未通过的导入到弃用表,通过的导入到审核表。然后进一步审核,未通过的导入到弃用表,通过的导入到最终表。其中,静态数据来源可包括以下两种:
(1)将训练语料进行分词,从标注结果提取出静态属性数据对应的词汇,并将新的词汇添加到运营系统中。
(2)在运营系统中,由运营人员根据实际需要手动添加新的静态属性数据。
第二更新单元用于建立动态属性数据库,实时更新所述动态属性数据库,从而更新所述动态属性数据。动态属性数据库保持持续更新,新的动态属性数据可按照长度筛选、热度筛选、白名单筛选等规则进行清洗后再进行更新。上述属性信心的运营更新机制,提高了属性信息更新的效率,也避免了重复更新相对稳定的属性信息,节约了成本。
本发明实施例所述装置,将属性信息作为辅助信息,增强了输入文本的表达能力,提升了语义识别的精确度,进而提升了用户体验。且可以根据实际需求对属性信息种类进行调整,而不用改动语义识别模型结构。此外,本发明实施例可根据属性信息更新频率,分为静态更新和动态更新两种方式更新运营属性信息数据,简单且高效。
本发明实施例还提供一种车载语音对话系统,如图5所示,包括上述用于语义识别装置和语音转换模块,所述语音转换模块用于将语音信息转换为文本信息,并将所述文本信息输入到所述语义识别装置中进行语义识别,提升了语义识别的精确度,进而提升了用户体验。
本发明实施例还提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述语义识别方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述语义识别方法的步骤。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。