发明内容
为克服相关技术中存在的利用简单的统计特征进行情绪分类无法区别不同句法,从而导致识别情绪准确率低的问题,本申请提供一种语义情绪识别方法、装置、设备及存储介质。
根据本申请的第一方面,提供一种语义情绪识别方法,包括:
获取待识别文本;
对所述待识别文本的全局语义信息进行提取,得到第一语义向量;
利用预训练的词向量模型确定所述待识别文本的词向量矩阵;
根据所述词向量矩阵确定第二语义向量;
根据所述词向量矩阵计算所述待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量;
根据所述第一语义向量、所述第二语义向量和所述第三语义向量确定所述待识别文本所属的情绪类别。
在一个可选的实施例中,所述对所述待识别文本的全局语义信息进行提取,得到第一语义向量,包括:
在所述待识别文本中添加预设符号;
将添加有预设符号的待识别文本的全局语义信息转换为文本向量;
根据所述预设符号在所述待识别文本中的位置得到所述预设符号的位置向量;
将所述文本向量、所述位置向量和预设的所述预设符号的词向量进行融合,得到第一语义向量。
在一个可选的实施例中,所述利用预训练的词向量模型确定所述待识别文本的词向量矩阵,包括:
利用预设分词方法对所述待识别文本进行分词,得到所述待识别文本的至少一个词;
通过预训练的词向量模型确定各所述词的词向量;
根据各所述词的词向量得到所述待识别文本的词向量矩阵。
在一个可选的实施例中,所述根据所述词向量矩阵确定第二语义向量,包括:
将所述词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征;
对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征;
对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征;
将所有最大特征和平均特征进行拼接,得到所述第二语义向量。
在一个可选的实施例中,所述根据所述词向量矩阵计算所述待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量,包括:
将所述词向量矩阵输入到预训练的第二模型中,计算所述词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵;
对所述相似度矩阵进行最大池化操作,得到第一向量;
对所述相似度矩阵进行平均池化操作,得到第二向量;
将所述第一向量和所述第二向量确定为所述第三语义向量。
在一个可选的实施例中,所述根据所述第一语义向量、所述第二语义向量和所述第三语义向量确定所述待识别文本所属的情绪类别,包括:
按照预设拼接方式将所述第一语义向量、所述第二语义向量和所述第三语义向量进行拼接,得到拼接向量;
将所述拼接向量输入到预训练的分类模型中,确定所述待识别文本所属的情绪类别。
根据本申请的第二方面,提供一种语义情绪识别装置,所述装置包括:
获取模块,用于获取待识别文本;
提取模块,用于对所述待识别文本的全局语义信息进行提取,得到第一语义向量;
第一确定模块,用于利用预训练的词向量模型确定所述待识别文本的词向量矩阵;
第二确定模块,用于根据所述词向量矩阵确定第二语义向量;
第三确定模块,用于根据所述词向量矩阵计算所述待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量;
第四确定模块,用于根据所述第一语义向量、所述第二语义向量和所述第三语义向量确定所述待识别文本所属的情绪类别。
在一个可选的实施例中,所述提取模块包括:
添加单元,用于在所述待识别文本中添加预设符号;
转换单元,用于将添加有预设符号的待识别文本的全局语义信息转换为文本向量;
第一确定单元,用于根据所述预设符号在所述待识别文本中的位置得到所述预设符号的位置向量;
融合单元,用于将所述文本向量、所述位置向量和预设的所述预设符号的词向量进行融合,得到第一语义向量。
在一个可选的实施例中,所述第一确定模块包括:
分词单元,用于利用预设分词方法对所述待识别文本进行分词,得到所述待识别文本的至少一个词;
第二确定单元,用于通过预训练的词向量模型确定各所述词的词向量;
生成单元,用于根据各所述词的词向量得到所述待识别文本的词向量矩阵。
在一个可选的实施例中,所述第二确定模块包括:
提取单元,用于将所述词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征;
第一池化单元,用于对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征;
第二池化单元,用于对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征;
第一拼接单元,用于将所有最大特征和平均特征进行拼接,得到所述第二语义向量。
在一个可选的实施例中,所述第三确定模块包括:
计算单元,用于将所述词向量矩阵输入到预训练的第二模型中,计算所述词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵;
第三池化单元,用于对所述相似度矩阵进行最大池化操作,得到第一向量;
第四池化单元,用于对所述相似度矩阵进行平均池化操作,得到第二向量;
第三确定单元,用于将所述第一向量和所述第二向量确定为所述第三语义向量。
在一个可选的实施例中,所述第四确定单元包括:
第二拼接单元,用于按照预设拼接方式将所述第一语义向量、所述第二语义向量和所述第三语义向量进行拼接,得到拼接向量;
第四确定单元,用于将所述拼接向量输入到预训练的分类模型中,确定所述待识别文本所属的情绪类别。
根据本申请的第三方面,提供一种语义情绪识别设备,包括:至少一个处理器和存储器;
所述处理器用于执行所述存储器中存储的语义情绪识别程序,以实现本申请第一方面所述的语义情绪识别方法。
根据本申请的第四方面,提供一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序被执行时,实现本申请第一方面所述的语义情绪识别方法。
本申请提供的技术方案可以包括以下有益效果:本申请的技术方案首先获取待识别文本,然后对待识别文本的全局语义信息进行提取,得到第一语义向量,再利用预训练的词向量模型确定待识别文本的词向量矩阵,之后根据词向量矩阵确定第二语义向量,根据词向量矩阵计算待识别文本中每个词的词向量与预设情绪词语的词向量的相似度,并将计算得到的所有相似度确定为第三语义向量,最后根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别,如此,便可以是根据待识别文本的全局语义信息以及待识别文本的词向量矩阵确定待识别文本的情绪类别,其中考虑进了待识别文本的词语义、词组语义以及句子语义信息,提高了情绪识别的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
随着互联网的发展和社交网络、网购的流行,用户在各个网络平台上留下了大量的文本数据。其中很大一部分的文本具有主观性倾向,表达了用户对于特定实体、事件或者自身的情感。经典的情感分析主要将情感标签设定为正、负和中性三类极性,而更为细粒度的分类方法,即情绪分类,注重于人们日常生活中所体验到的包括高兴、愤怒、悲伤等情绪。
自动挖掘并分析海量文本中的情绪状态,可以被广泛应用于舆情分析、广告投放或对话机器人设计等领域。当面临公共突发事件时,及时对网民的情绪进行分析,可以得到真实的社会舆论情况,早期的情绪分析方法是基于词典和规则实现的,但通常维护起来比较复杂,且不容易扩展。后来在大数据时代的背景下,从文本中提取语义信息通过机器学习的方法进行情绪分类成为主流方法,其中典型的方法就是从文本提取tf-idf特征,然后使用机器学习分类器识别情绪类别,然而句子中的词语并非词汇的堆砌,不同的句法会带来完全不同的情绪表达,一些简单的统计特征对文本的情绪分类效果并不理想。
请参阅图1,图1是本申请的一个实施例提供的一种语义情绪识别方法的流程示意图。
如图1所示,本实施例提供的语义情绪识别方法可以包括:
步骤S101、获取待识别文本。
本步骤中获取待识别文本可以采用爬取的方法,比如在互联网中爬取与某事件相关的所有的文本资料,其中,文本资料可以但不仅限于包括互联网中发布的文章、动态、评论等,需要说明的是,文本资料中可以包括多条待识别文本,为了便于说明,本实施例仅以对其中的一条待识别文本的情绪识别过程进行说明。
步骤S102、对待识别文本的全局语义信息进行提取,得到第一语义向量。
需要说明的是,为了使第一语义向量中具有待识别文本的全局语义信息的特性,本步骤可以直接将待识别文本输入到预先训练的模型中,该模型的输出能够体现待识别文本的全局语义信息,比如Bert模型,下面就以Bert模型为例,对得到第一语义向量的过程进行说明,具体可以请参阅图2,图2是本申请的一个实施例提供的一种得到第一语义向量的流程示意图。
如图2所示,本实施例提供的第一语义向量的流程示意图可以包括:
步骤S201、在待识别文本中添加预设符号。
需要说明的是,预设符号是一个不具有文本意义的符号,是提前设定的一个符号,比如[CLS]符号,具体添加的位置可以根据需求来设定,为了不影响待识别文本内部每个字/词之间的关联性,可以将预设符号添加在待识别文本之前。
在一个具体的例子中,若文本为“我来到xx地区xx大学”,以预设符号为[CLS]符号为例,添加预设符号之后,带有预设符号的待识别文本变为“[CLS]我来到xx地区xx大学”。
步骤S202、将添加有预设符号的待识别文本的全局语义信息转换为文本向量。
需要说明的是,本步骤中待识别文本转换为文本向量的过程可以参考相关技术,此处不再赘述。本步骤中,文本向量用于刻画文本的全局语义信息。
步骤S203、根据预设符号在待识别文本中的位置得到预设符号的位置向量。
由于预设符号在待识别文本中会有自身的位置,因此,可以根据该位置得到该预设符号的位置向量,需要说明的是根据某个字、词在文本中的位置得到该字或者词的位置向量的具体过程可以参考相关技术,此处不再赘述。
步骤S204、将文本向量、位置向量和预设的预设符号的词向量进行融合,得到第一语义向量。
在Bert模型中,会将文本向量、位置向量和预设的预设符号的词向量进行融合,得到第一语义向量,其中,预设的预设符号的词向量指的是预先设置的该预设符号对应的词向量,由于预设符号在整个情绪识别的过程中都是不会发生变化的,因此,可以对该预设符号预先设定一个词向量,以便于与文本向量和位置向量进行融合。
Bert模型的整个工作过程中,实质上会对待识别文本中的每个词都会得到一个对应的向量,还是以“我来到xx地区xx大学”为例,加入预设符号后,变为“[CLS]我来到xx地区xx大学”,那么该加入预设符号后的待识别文本中就有“[CLS]”、“我”、“来到”、“xx地区”、“xx大学”这几个词,那么面对这几个词,都会对应生成一个向量,与文本中已有的其它字/词相比,这个无明显语义信息的符号([CLS])会更“公平”地融合文本中各个字/词的语义信息,可以用来更好的表示句子的语义,因此,便可以将带有该预设符号的向量作为第一语义向量。
步骤S103、利用预训练的词向量模型确定待识别文本的词向量矩阵。
请参阅图3,图3是本申请的一个实施例提供的确定词向量矩阵的流程示意图。
如图3所示,本实施例提供的确定词向量矩阵的过程可以包括:
步骤S301、利用预设分词方法对待识别文本进行分词,得到待识别文本的至少一个词。
本步骤中,预设分词方法可以但不仅限于是jieba分词方法,又称“结巴”分词方法,其可以支持三种分词模式:精确模式(试图将句子最精确地切开,适合文本分析)、全模式(快速将句子中所有的可以成词的词语都扫描出来)和搜索引擎模式(在精确模式的基础上,对长词再次切分,提高召回率)。本步骤中,可以根据需求采用对应的模式,在一个例子中,比如可以采用精确模式,对于数据文本“我来到xx地区xx大学”,利用jieba分词方法后,得到“我/来到/xx地区/xx大学”,其中,“/”为分词标识,也就是说,利用jieba分词方法,会将“我来到xx地区xx大学”分词为:“我”、“来到”、“xx地区”、“xx大学”这4个词。
步骤S302、通过预训练的词向量模型确定各词的词向量。
基于步骤S301的分词结果,本步骤会根据预设词典中的词和索引的映射关系,确定步骤S301中分词得到的各个词的索引。其中,需要说明的是,预设词典为预先设置的包含有所有可能会涉及到的词的集合,而且,对于词典中的每个词,都会设置有一个对应的索引,该索引可以是数字或者字母组成的标号,本实施例中,优选数字组成的标号。
在一个具体的例子中,仍以步骤S301中的分词结果为基础,步骤S301中,输出了“我”、“来到”、“xx地区”、“xx大学”这4个词,在预设词典中,“我”的索引为“1”,“来到”的索引为“3”,“xx地区”的索引为“2”,“xx大学”的索引为“5”。
利用索引表示各数据文本,得到各数据文本的初始向量,具体的,利用各个词的索引表示各个词,按照数据文本中每个词的顺序对各词的索引进行排序,从而可以将数据文本以索引的方式表示出来,即数据文本的初始向量。
在一个具体的例子中,数据文本“我来到xx地区xx大学”的初始向量即为(1,3,2,5)。
另外,由于每个数据文本的长度可能不尽相同,而模型输入的向量长度必须是一致的,因此,在得到初始向量后,可以根据预设的向量长度表示规则,将各初始向量表示为预设长度的向量。在一个具体的例子中,可以将每个数据文本的长度设置为一个固定值,该固定值可以表示为max_length,此时,就可能会遇到向量长度达不到该固定值情况或者向量长度大于该固定值的情况。若向量长度达不到该固定值,则可以在最开始的索引前边加上0(或者其他没有索引意义的标号),直到长度达到该固定值;若向量长度大于该固定值,则可以将超过固定值的部分截掉。
在一个具体的例子中,若max_length=5,前述步骤得到的向量(1,3,2,5),长度小于5,此时,在“1”前边增加“0”即可,得到(0,1,3,2,5);若max_length=3,前述步骤得到的向量(1,3,2,5),长度大于3,此时,删掉超出固定值的部分即可,得到(1,3,2)。基于上述操作,便可以将数据文本都映射成长度相等的向量。在得到长度相等的向量之后,在根据预训练的词向量模型得到每个词对应的词向量。
步骤S303、根据各词的词向量得到待识别文本的词向量矩阵。
由于待识别文本中有多个词,那么就会有多个词向量,可以将词向量的长度也设置为固定的,比如可以是Embedding_size,将每个词的词向量按照一定的顺序排列,就可以得到向量矩阵,比如从上到下对每个词的词向量进行排列,就可以得到尺寸为(max_length,Embedding_size)的待识别文本的向量矩阵。
步骤S104、根据词向量矩阵确定第二语义向量。
请参阅图4,图4是本申请的一个实施例提供的确定第二语义向量的流程示意图。
如图4所示,本实施例提供的确定第二语义向量的过程可以包括:
步骤S401、将词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征。
具体的,可以利用不同尺寸的卷积核,一般,卷积核的长度会保持一致,主要区别体现在卷积核的高度上,类似于n-gram,利用不同的卷积核就能得到不同的n-gram语义特征,也就是词组语义特征。
以n-gram中的n取2、3、4为例,以一个8×8的词向量矩阵为例,n取2时,卷积核的高度为2,长度为8,从向量矩阵的第一行开始进行卷积,也就是对第一行和第二行进行卷积,得到第一个值,然后对第二行和第三行开始卷积,得到第二个值,以此类推,直到对第七行和第八行进行卷积,得到第七个值,n取2的卷积过程结束。
而n取3时,就是对第一行、第二行和第三行进行卷积,得到第一个值,直到对第六行、第七行和第八行卷积,得到第6个值时,n取3的卷积过程结束。n取4时同理,此处不再赘述。
卷积过程可以利用TextCNN实现,由于TextCNN中会设置有不同的通道,在n等于2时,每个通道都会得到具有7个值的词组语义特征,同样,n取3时,每个通道都会得到具有6个值的词组语义特征,而n取4时,每个通道都会得到具有5个值的词组语义特征。
步骤S402、对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征。
步骤S403、对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征。
上述步骤中,n取不同的值对应代表一种尺度的卷积核,由于存在多条通道,每种尺度的卷积核都会有与通道数量对应的词组语义特征量,此时,针对每种尺度的卷积核对应的词组语义特征,可以进行最大池化操作,得到每个词组语义特征的最大特征。
然后针对每种尺度的卷积核对应的词组语义特征,再进行平均池化操作,得到每个词组语义特征的平均特征。由此,每种尺度的卷积核都会对应有一个最大特征和一个平均特征。
步骤S404、将所有最大特征和平均特征进行拼接,得到第二语义向量。
需要说明的是,本步骤中的拼接可以是将前述得到的最大特征和平均特征进行简单的横向拼接,即可得到第二语义向量。
由于在得到第二语义向量的过程中,会对词向量矩阵的至少两行进行卷积,这就考虑了相邻行对应的词向量之间的关联性。
步骤S105、根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量。
请参阅图5,图5是本申请的一个实施例提供的确定第三语义向量的流程示意图。
如图5所示,本实施例提供的确定第三语义向量的过程可以包括:
步骤S501、将词向量矩阵输入到预训练的第二模型中,计算词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵。
需要说明的是,预设情绪词语可以有n个,同样将预设情绪词语的词向量长度设置为Embedding_size,那么所有预设情绪词语的词向量就会构成一个形状为(n,Embedding_size)的矩阵,计算每个情绪词语的词向量和待识别文本中的词向量矩阵(max_length,Embedding_size)里的每个词的相似度,就会得到一个(max_length,n)的矩阵,即相似度矩阵。
步骤S502、对相似度矩阵进行最大池化操作,得到第一向量。
步骤S503、对相似度矩阵进行平均池化操作,得到第二向量。
步骤S504、将第一向量和第二向量确定为第三语义向量。
在经过步骤S502和S503之后,就会得到两个形状为(1,n)的向量,也就是第一向量和第二向量,而第一向量和第二向量为第三语义向量。
步骤S106、根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别。
请参阅图6,图6是本申请的一个实施例提供的一种确定待识别文本所属的情绪类别的流程示意图。
如图6所示,本实施例提供的确定待识别文本所属的情绪类别的过程可以包括:
步骤S601、按照预设拼接方式将第一语义向量、第二语义向量和第三语义向量进行拼接,得到拼接向量。
需要说明的是,本步骤中的拼接同样可以但不仅限于是横向的简单拼接。
步骤S602、将拼接向量输入到预训练的分类模型中,确定待识别文本所属的情绪类别。
需要说明的是,预训练的分类模型可以是softmax模型,将拼接向量输入到softmax模型之后,会计算该拼接向量相对于预设的所有情绪类别的概率,比如,此处可以预先设置6中情绪类别,包括积极、恐惧、其他、愤怒、悲伤和厌恶,那么softmax模型便会得出拼接向量分别相对于积极、恐惧、其他、愤怒、悲伤和厌恶的概率,比如,积极0.8、恐惧0.1、其他0.04、愤怒0.03、悲伤0.02和厌恶0.01,由此可知,该拼接向量为积极的情绪类别的可能性最大,因此,待识别文本所属的情绪类别便可以是“积极”。
另外,在对本申请的实施例中涉及到的模型进行训练时,可以将训练样本按照7:2:1划分为训练集、验证集和测试集,通过训练集训练多尺度卷积神经网络模型,在验证集上进行验证,调整模型的参数,并在测试集上测试模型的泛化能力。
训练时,还可以利用五折交叉验证的方式对模型的有效性进行验证,由于数据存在正负样本不平衡的问题,做交叉验证时需要使用分层抽样。
具体的,训练样本可以为T={(x1,y1),(x2,y2),...,(xN,yN)},其中,xk表示待识别文本的集合,yk={n}表示情绪类别,也就是标签值(标签值可以用数字表示,比如1,2,3等,分别指代不同的情绪类别),k=1,2,3,……,N,T为模型的输入数据,即不同渠道的文本数据和需要预测的样本yk。
需要说明的是,划分出来的验证集可以用来调整模型的参数,测试集用来验证模型的泛化能力,具体的,将训练好的多尺度卷积神经网络模型使用到测试集上,计算测试集上的F1得分,利用得分来验证模型的泛化能力。
其中,F1得分(又称F1 score)表示模型的准确率和召回率的调和平均数,关于其具体的计算过程以及验证过程,可以参考相关技术,此处不再赘述。
本实施例的技术方案首先获取待识别文本,然后对待识别文本的全局语义信息进行提取,得到第一语义向量,再利用预训练的词向量模型确定待识别文本的词向量矩阵,之后根据词向量矩阵确定第二语义向量,根据词向量矩阵计算待识别文本中每个词的词向量与预设情绪词语的词向量的相似度,并将计算得到的所有相似度确定为第三语义向量,最后根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别,如此,便可以是根据待识别文本的全局语义信息以及待识别文本的词向量矩阵确定的待识别文本的情绪类别,其中考虑进了待识别文本的句法,提高了情绪识别的准确性。
请参阅图7,图7是本申请的另一实施例提供的一种语义情绪识别装置的结构示意图。
如图7所示,本实施例提供的语义情绪识别装置可以包括:
获取模块701,用于获取待识别文本;
提取模块702,用于对待识别文本的全局语义信息进行提取,得到第一语义向量;
第一确定模块703,用于利用预训练的词向量模型确定待识别文本的词向量矩阵;
第二确定模块704,用于根据词向量矩阵确定第二语义向量;
第三确定模块705,用于根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量;
第四确定模块706,用于根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别。
在一个可选的实施例中,提取模块包括:
添加单元,用于在待识别文本中添加预设符号;
转换单元,用于将添加有预设符号的待识别文本的全局语义信息转换为文本向量;
第一确定单元,用于根据预设符号在待识别文本中的位置得到预设符号的位置向量;
融合单元,用于将文本向量、位置向量和预设的预设符号的词向量进行融合,得到第一语义向量。
在一个可选的实施例中,第一确定模块包括:
分词单元,用于利用预设分词方法对待识别文本进行分词,得到待识别文本的至少一个词;
第二确定单元,用于通过预训练的词向量模型确定各词的词向量;
生成单元,用于根据各词的词向量得到待识别文本的词向量矩阵。
在一个可选的实施例中,第二确定模块包括:
提取单元,用于将词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征;
第一池化单元,用于对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征;
第二池化单元,用于对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征;
第一拼接单元,用于将所有最大特征和平均特征进行拼接,得到第二语义向量。
在一个可选的实施例中,第三确定模块包括:
计算单元,用于将词向量矩阵输入到预训练的第二模型中,计算词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵;
第三池化单元,用于对相似度矩阵进行最大池化操作,得到第一向量;
第四池化单元,用于对相似度矩阵进行平均池化操作,得到第二向量;
第三确定单元,用于将第一向量和第二向量确定为第三语义向量。
在一个可选的实施例中,第四确定单元包括:
第二拼接单元,用于按照预设拼接方式将第一语义向量、第二语义向量和第三语义向量进行拼接,得到拼接向量;
第四确定单元,用于将拼接向量输入到预训练的分类模型中,确定待识别文本所属的情绪类别。
请参阅图8,图8是本申请的另一实施例提供的一种语义情绪识别设备的结构示意图。
如图8所示,本实施例提供的语义情绪识别设备800包括:至少一个处理器801、存储器802、至少一个网络接口803和其他用户接口804。语义情绪识别设备800中的各个组件通过总线***805耦合在一起。可理解,总线***805用于实现这些组件之间的连接通信。总线***805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线***805。
其中,用户接口804可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器802存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作***8021和第二应用程序8022。
其中,操作***8021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。第二应用程序8022,包含各种第二应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在第二应用程序8022中。
在本发明实施例中,通过调用存储器802存储的程序或指令,具体的,可以是第二应用程序8022中存储的程序或指令,处理器801用于执行各方法实施例所提供的方法步骤,例如包括:
获取待识别文本;
对待识别文本的全局语义信息进行提取,得到第一语义向量;
利用预训练的词向量模型确定待识别文本的词向量矩阵;
根据词向量矩阵确定第二语义向量;
根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量;
根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别。
在一个可选的实施例中,对待识别文本的全局语义信息进行提取,得到第一语义向量,包括:
在待识别文本中添加预设符号;
将添加有预设符号的待识别文本的全局语义信息转换为文本向量;
根据预设符号在待识别文本中的位置得到预设符号的位置向量;
将文本向量、位置向量和预设的预设符号的词向量进行融合,得到第一语义向量。
在一个可选的实施例中,利用预训练的词向量模型确定待识别文本的词向量矩阵,包括:
利用预设分词方法对待识别文本进行分词,得到待识别文本的至少一个词;
通过预训练的词向量模型确定各词的词向量;
根据各词的词向量得到待识别文本的词向量矩阵。
在一个可选的实施例中,根据词向量矩阵确定第二语义向量,包括:
将词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征;
对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征;
对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征;
将所有最大特征和平均特征进行拼接,得到第二语义向量。
在一个可选的实施例中,根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量,包括:
将词向量矩阵输入到预训练的第二模型中,计算词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵;
对相似度矩阵进行最大池化操作,得到第一向量;
对相似度矩阵进行平均池化操作,得到第二向量;
将第一向量和第二向量确定为第三语义向量。
在一个可选的实施例中,根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别,包括:
按照预设拼接方式将第一语义向量、第二语义向量和第三语义向量进行拼接,得到拼接向量;
将拼接向量输入到预训练的分类模型中,确定待识别文本所属的情绪类别。
上述本发明实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在语义情绪识别设备侧执行的语义情绪识别方法。
处理器用于执行存储器中存储的语义情绪识别程序,以实现以下在语义情绪识别设备侧执行的语义情绪识别方法的步骤:
获取待识别文本;
对待识别文本的全局语义信息进行提取,得到第一语义向量;
利用预训练的词向量模型确定待识别文本的词向量矩阵;
根据词向量矩阵确定第二语义向量;
根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量;
根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别。
在一个可选的实施例中,对待识别文本的全局语义信息进行提取,得到第一语义向量,包括:
在待识别文本中添加预设符号;
将添加有预设符号的待识别文本的全局语义信息转换为文本向量;
根据预设符号在待识别文本中的位置得到预设符号的位置向量;
将文本向量、位置向量和预设的预设符号的词向量进行融合,得到第一语义向量。
在一个可选的实施例中,利用预训练的词向量模型确定待识别文本的词向量矩阵,包括:
利用预设分词方法对待识别文本进行分词,得到待识别文本的至少一个词;
通过预训练的词向量模型确定各词的词向量;
根据各词的词向量得到待识别文本的词向量矩阵。
在一个可选的实施例中,根据词向量矩阵确定第二语义向量,包括:
将词向量矩阵输入到预训练的第一模型中,利用不同尺寸的卷积核根据相邻词向量的关联性提取词组语义特征;
对每一个卷积核提取的词组语义特征进行最大池化操作,得到每个词组语义特征的最大特征;
对每一个卷积核提取的词组语义特征进行平均池化操作,得到每个词组语义特征的平均特征;
将所有最大特征和平均特征进行拼接,得到第二语义向量。
在一个可选的实施例中,根据词向量矩阵计算待识别文本中的每个词的词向量与预设情绪词语的词向量的相似度,将计算得到的所有相似度确定为第三语义向量,包括:
将词向量矩阵输入到预训练的第二模型中,计算词向量矩阵中的每个词向量与预设情绪词语词向量的相似度,得到相似度矩阵;
对相似度矩阵进行最大池化操作,得到第一向量;
对相似度矩阵进行平均池化操作,得到第二向量;
将第一向量和第二向量确定为第三语义向量。
在一个可选的实施例中,根据第一语义向量、第二语义向量和第三语义向量确定待识别文本所属的情绪类别,包括:
按照预设拼接方式将第一语义向量、第二语义向量和第三语义向量进行拼接,得到拼接向量;
将拼接向量输入到预训练的分类模型中,确定待识别文本所属的情绪类别。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。