细粒度情感分析模型构建方法、设备及可读存储介质与流程

文档序号:15636736发布日期:2018-10-12 21:34阅读:217来源:国知局

本发明涉及计算机技术领域,尤其涉及一种细粒度情感分析模型构建方法、设备及可读存储介质。



背景技术:

细粒度情感分析,又称属性级情感分析,属于文本情感分析的一个类别,该分析一般是针对评论文本中属性特征进行情感判断。相较于篇章级或句子级的情感分析,细粒度的情感分析能够更加具体明确地针对产品的相关属性特征来进行情感识别,所得的分析结果提供了更加详细的评价信息,因此更有参考意义和价值。

细粒度情感分析的第一个步骤是进行评价对象的抽取,评价对象抽取是从海量用户产品评价中获取消费者关心的产品属性。例如:“服务很好,设施蛮不错,但是房间隔音实在太差”。在这段关于酒店的评价中,消费者关心的产品属性为“服务”、“设施”和“隔音”,所以特征词的提取对细粒度情感分析起着非常关键的作用。评价对象抽取归结为两种方法,一种是基于词典、模板和针对特定领域的文本,人工制定规则来提取细粒度评价要素,如先确定候选对象,然后使用词性规则过滤候选集合,从而得到准确的评价对象。这种方法依赖于词典以及语言专家制定的规则,可扩展性差,泛化能力不强,对于情感词典里没有包含的网络新词等无法很好地进行识别,提取效果欠佳;另外一种方法则是将评价要素的提取作为序列标注问题,如采用条件随机场、隐马尔可夫模型等序列标注方法来提取出评价要素,但是这种方法无法解决评价词和评价对象之间长距离依赖的问题。由此可知,通过现有的评价对象抽取方法来判断情感倾向,存在可扩展性差,泛化能力不强,且无法解决评价词和评价对象之间长距离依赖的问题。



技术实现要素:

本发明的主要目的在于提供一种细粒度情感分析模型构建方法、设备及可读存储介质,旨在解决现有的对文本的情感倾向判断方法存在可扩展性差,泛化能力不强,且无法解决评价词和评价对象之间长距离依赖的技术问题。

为实现上述目的,本发明提供一种细粒度情感分析模型构建方法,所述细粒度情感分析模型构建方法包括步骤:

当获取到第一预设数量的待训练分句后,对所述待训练分句进行分词操作,并为分词后所述待训练分句中的各个词语添加词性标签;

在所述待训练分句中获取第二预设数量的属性词和情感词,为所述属性词添加属性词标签,为所述情感词添加情感词标签,确定各个所述待训练分句对应的词性序列;

根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则,并根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合;

根据所述情感词集合中的各个情感词对应为所述属性词集合中的属性词添加情感类别标签;

将所述属性词集合中各个属性词和各个属性词对应的上下文信息进行向量化表示,得到所述属性词和所述上下文信息对应的词向量;

将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型。

优选地,所述将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型的步骤之后,还包括:

获取第三预设数量的待测试分句,根据所述目标规则提取所述待测试分句中的属性词;

将各个待测试分句的属性词和对应的上下文信息进行向量化表示后输入所述细粒度情感分析模型中,对应得到所述待测试分句中属性词的情感类别标签;

将所述待测试分句属性词的情感类别标签对应与所述待测试分句属性词的预设情感类别标签进行对比,根据对比所得的对比结果确定所述细粒度情感分析模型分析文本情感类型的准确率。

优选地,所述当获取到第一预设数量的待训练分句后,对所述待训练分句进行分词操作,并为分词后所述待训练分句中的各个词语添加词性标签的步骤包括:

当获取到第一预设数量的待训练分句后,去掉所述待训练分句中的无关字符和停用词,并通过分词算法对所述待训练分句进行分词操作,得到分词后的待训练分句;

为分词后的所述待训练分句的各个词语添加词性标签。

优选地,所述确定各个所述待训练分句对应的词性序列的步骤包括:

检测所述待训练分句是否携带所述属性词标签和所述情感词标签;

若所述待训练分句携带所述属性词标签和所述情感词标签,则将所述属性词标签替换所述待训练分句中的属性词,以及将所述情感词标签替换所述待训练分句中的情感词,并根据所述待训练分句中各个词语对应的词性标签、属性词标签和情感词标签对应组合成所述待训练分句的词性序列;

若所述待训练分句未携带所述属性词标签和所述情感词标签,则根据所述待训练分句中各个词语对应的词性标签组合成所述待训练分句的词性序列。

优选地,所述根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则的步骤包括:

确定所述词性序列中含有所述属性词标签和/或所述情感词标签的目标词性序列;

计算所述目标词性序列中符合同一规则的第一序列数量,在所述词性序列中确定除所述目标词性序列外,符合待确定规则的第二序列数量,其中,所述待确定规则为所述第一序列数量中所述目标词性序列符合的规则;

根据所述词性序列中的总序列数量和所述第一序列数量计算得到支持度,根据所述第二序列数量和所述第一序列数量计算得到置信度;

若所述支持度大于或者等于预设支持度阈值,且所述置信度大于或者等于预设置信度阈值,则将所述待确定规则作为目标规则。

优选地,所述若所述支持度大于或者等于预设支持度阈值,且所述置信度大于或者等于预设置信度阈值,则将所述待确定规则作为目标规则的步骤之前,还包括:

获取所述待训练分句中的分句数量,以及预设支持率;

计算所述分句数量和所述预设支持率之间的乘积,将所述乘积作为所述预设支持度阈值。

优选地,所述根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合的步骤包括:

确定所述待训练分句中已添加所述属性词标签和/或所述情感词标签的分句,记为目标分句;

将所述待训练分句中除所述目标分句外的其它分句的词性序列与所述目标规则进行匹配,以在所述待训练分句中提取到所述属性词集合和情感词集合。

优选地,所述将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型的步骤包括:

将所述属性词的词向量和所述上下文信息对应的词向量作为注意力机制的首层神经网络层的注意层的输入,得到与所述属性词情感相关的上下文信息;

在所述首层神经网络层的线性层对与所述属性词情感相关的上下文信息对应的词向量和所述属性词的词向量进行求和,得到求和结果;

将所述求和结果作为下一层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,得到所述细粒度情感分析模型中的各个参数,根据所述参数构建所述细粒度情感分析模型。

此外,为实现上述目的,本发明还提供一种细粒度情感分析模型构建设备,所述细粒度情感分析模型构建设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的细粒度情感分析模型构建程序,所述细粒度情感分析模型构建程序被所述处理器执行时实现如上所述的细粒度情感分析模型构建方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有细粒度情感分析模型构建程序,所述细粒度情感分析模型构建程序被处理器执行时实现如上所述的细粒度情感分析模型构建方法的步骤。

本发明通过在进行细粒度情感分析过程中,利用类序列规则提取属性词和情感词,提高了属性词和情感词提取的准确率,使所挖掘的类序列规则随着所应用领域的待训练文本的变化而变化,提高了所构建的细粒度情感分析模型的泛化能力,以及使所构建的细粒度情感分析模型存在良好的可扩展性;通过类序列规则解决了情感词和属性词之间长距离依赖的问题,即解决了评价对象(属性词)和评价词(情感词)之间长距离依赖的问题,并通过注意力机制的神经网络提取与属性词相关的情感上下文信息,实现细粒度情感分析。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明细粒度情感分析模型构建方法第一实施例的流程示意图;

图3为本发明细粒度情感分析模型构建方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。

需要说明的是,图1即可为细粒度情感分析模型构建设备的硬件运行环境的结构示意图。本发明实施例细粒度情感分析模型构建设备可以是pc,便携计算机等终端设备。

如图1所示,该细粒度情感分析模型构建设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的细粒度情感分析模型构建设备结构并不构成对细粒度情感分析模型构建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及细粒度情感分析模型构建程序。其中,操作系统是管理和控制细粒度情感分析模型构建设备硬件和软件资源的程序,支持细粒度情感分析模型构建程序以及其它软件或程序的运行。

在图1所示的细粒度情感分析模型构建设备中,用户接口1003主要用于获取用户的添加指令、获取待训练分句的获取指令等;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信,如查找待回答问题对应的答案;而处理器1001可以用于调用存储器1005中存储的细粒度情感分析模型构建程序,并执行以下操作:

当获取到第一预设数量的待训练分句后,对所述待训练分句进行分词操作,并为分词后所述待训练分句中的各个词语添加词性标签;

在所述待训练分句中获取第二预设数量的属性词和情感词,为所述属性词添加属性词标签,为所述情感词添加情感词标签,确定各个所述待训练分句对应的词性序列;

根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则,并根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合;

根据所述情感词集合中的各个情感词对应为所述属性词集合中的属性词添加情感类别标签;

将所述属性词集合中各个属性词和各个属性词对应的上下文信息进行向量化表示,得到所述属性词和所述上下文信息对应的词向量;

将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型。

进一步地,所述将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型的步骤之后,处理器1001还可以用于调用存储器1005中存储的细粒度情感分析模型构建程序,并执行以下步骤:

获取第三预设数量的待测试分句,根据所述目标规则提取所述待测试分句中的属性词;

将各个待测试分句的属性词和对应的上下文信息进行向量化表示后输入所述细粒度情感分析模型中,对应得到所述待测试分句中属性词的情感类别标签;

将所述待测试分句属性词的情感类别标签对应与所述待测试分句属性词的预设情感类别标签进行对比,根据对比所得的对比结果确定所述细粒度情感分析模型分析文本情感类型的准确率。

进一步地,所述当获取到第一预设数量的待训练分句后,对所述待训练分句进行分词操作,并为分词后所述待训练分句中的各个词语添加词性标签的步骤包括:

当获取到第一预设数量的待训练分句后,去掉所述待训练分句中的无关字符和停用词,并通过分词算法对所述待训练分句进行分词操作,得到分词后的待训练分句;

为分词后的所述待训练分句的各个词语添加词性标签。

进一步地,所述确定各个所述待训练分句对应的词性序列的步骤包括:

检测所述待训练分句是否携带所述属性词标签和所述情感词标签;

若所述待训练分句携带所述属性词标签和所述情感词标签,则将所述属性词标签替换所述待训练分句中的属性词,以及将所述情感词标签替换所述待训练分句中的情感词,并根据所述待训练分句中各个词语对应的词性标签、属性词标签和情感词标签对应组合成所述待训练分句的词性序列;

若所述待训练分句未携带所述属性词标签和所述情感词标签,则根据所述待训练分句中各个词语对应的词性标签组合成所述待训练分句的词性序列。

进一步地,所述根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则的步骤包括:

确定所述词性序列中含有所述属性词标签和/或所述情感词标签的目标词性序列;

计算所述目标词性序列中符合同一规则的第一序列数量,在所述词性序列中确定除所述目标词性序列外,符合待确定规则的第二序列数量,其中,所述待确定规则为所述第一序列数量中所述目标词性序列符合的规则;

根据所述词性序列中的总序列数量和所述第一序列数量计算得到支持度,根据所述第二序列数量和所述第一序列数量计算得到置信度;

若所述支持度大于或者等于预设支持度阈值,且所述置信度大于或者等于预设置信度阈值,则将所述待确定规则作为目标规则。

进一步地,所述若所述支持度大于或者等于预设支持度阈值,且所述置信度大于或者等于预设置信度阈值,则将所述待确定规则作为目标规则的步骤之前,处理器1001还可以用于调用存储器1005中存储的细粒度情感分析模型构建程序,并执行以下步骤:

获取所述待训练分句中的分句数量,以及预设支持率;

计算所述分句数量和所述预设支持率之间的乘积,将所述乘积作为所述预设支持度阈值。

进一步地,所述根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合的步骤包括:

确定所述待训练分句中已添加所述属性词标签和/或所述情感词标签的分句,记为目标分句;

将所述待训练分句中除所述目标分句外的其它分句的词性序列与所述目标规则进行匹配,以在所述待训练分句中提取到所述属性词集合和情感词集合。

进一步地,所述将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型的步骤包括:

将所述属性词的词向量和所述上下文信息对应的词向量作为注意力机制的首层神经网络层的注意层的输入,得到与所述属性词情感相关的上下文信息;

在所述首层神经网络层的线性层对与所述属性词情感相关的上下文信息对应的词向量和所述属性词的词向量进行求和,得到求和结果;

将所述求和结果作为下一层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,得到所述细粒度情感分析模型中的各个参数,根据所述参数构建所述细粒度情感分析模型。

基于上述的结构,提出细粒度情感分析模型构建方法的各个实施例。细粒度情感分析模型构建方法应用于细粒度情感分析模型构建设备,细粒度情感分析模型构建设备可为pc,便携计算机等终端设备。为了描述的简便,在以下细粒度情感分析模型构建方法的各个实施例中,省略细粒度情感分析模型构建设备这个执行主体。

参照图2,图2为本发明细粒度情感分析模型构建方法第一实施例的流程示意图。

本发明实施例提供了细粒度情感分析模型构建方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

细粒度情感分析模型构建方法包括:

步骤s10,当获取到第一预设数量的待训练分句后,对所述待训练分句进行分词操作,并为分词后所述待训练分句中的各个词语添加词性标签。

当获取到第一预设数量的待训练分句后,对待训练分句进行分词操作,得到待训练分句中的各个词语。当得到分词后待训练分句中的各个词语后,为待训练分句中的各个词语添加词性标签。

进一步地,当侦测到构建细粒度情感分析模型的构建指令后,根据该构建指令从网络上爬取待训练数据集,具体地,可从网络上爬取电商评论、新闻评论和淘宝评论等。当爬取到待训练数据集后,识别待训练数据集中各个句子中的标点符号和换行符等,去掉待训练数据集中各个句子的标点符号和换行符等,得到待训练数据集中的待训练分句,并选取第一预设数量的待训练分句以构建细粒度情感分析模型。其中,第一预设数量可根据具体需要而设置,在本实施例中不做具体限制。在识别待训练数据集各个句子中的标点符号和换行符过程中,可将待训练数据集中的各个句子与预先设置好的标点符号和换行符进行对比,以识别出待训练数据集中各个句子的标点符号和换行符。

进一步地,步骤s10包括:

步骤a,当获取到第一预设数量的待训练分句后,去掉所述待训练分句中的无关字符和停用词,并通过分词算法对所述待训练分句进行分词操作,得到分词后的待训练分句。

进一步地,当获取到第一预设数量的待训练分句后,去掉待训练分句中的无关字符和停用词,得到处理后的待训练分句,并通过分词算法对处理后的待训练分句进行分词操作,得到分词后的待训练分句。分词算法包括但不限于基于词典的分词算法、基于统计的分词算法、基于规则的分词算法和结巴分词算法。需要说明的是,在使用结巴分词算法对待训练分句进行分词操作过程中,可使用结巴分词算法的搜索引擎分词模式或者精确模式等。

在去掉待训练分句中的无关字符和停用词过程中,将待训练分句中的各个词语与预设的无关字符数据库和停用词数据库中的词语进行对比,将待训练分句中与无关字符数据库和停用词数据库中一样的词语去掉。可以理解的是,无关字符数据库和停用词数据库是预先设置好的。在无关字符数据库和停用词数据库中,含有常用的无关字符和停用词。如在无关字符数据库中,含有“/、~、%”等,在停用词数据库中,含有“了、呢、哦、嗯”等。

步骤b,为分词后的所述待训练分句的各个词语添加词性标签。

当得到分词后的待训练分句后,为分词后的待训练分句的各个词语添加词性标签。需要说明的是,在为待训练分句中的各个词语添加词性标签过程中,可由用户在细粒度情感分析模型构建设备中输入添加指令,由用户手动为各个词语添加词性标签;或者使用结巴分词算法、ltp词性标注等方式由细粒度情感分析模型构建设备自动进行词性标注。可以理解的是,为各个词语添加词性标签,即注明各个词语的词性,确定各个词语是名词、副词还是形容词等。

进一步地,为了统一表达规范,提高构建细粒度情感分析模型的速度和准确率,若待训练分句中存在中文繁体字,则将中文繁体字统一转换成对应的中文简体字;若待训练分句中存在大写英文和小写英文,则将待训练分句中的大写英文修改为对应的小写英文,或者将待训练分句中的小写英文修改为对应的大写英文,以使待训练分句中只存在大写英文或者只存在小写英文。

步骤s20,在所述待训练分句中获取第二预设数量的属性词和情感词,为所述属性词添加属性词标签,为所述情感词添加情感词标签,确定各个所述待训练分句对应的词性序列。

在待训练分句中获取第二预设数量的属性词和情感词,为属性词添加属性词标签,为情感词添加情感词标签。可以理解的是,第二预设数量小于第一预设数量,第二预设数量可根据第一预设数量的大小以及实际应用情况决定,如可将第二预设数量设置为10、20或者32等。需要说明的是,第二预设数量是用来确定属性词集合和情感词集合的基础,因此,可获取少数的属性词和情感词,通过类序列规则得到待训练分句的属性词集合和情感词集合。其中,在本实施例中,是由用户在细粒度情感分析模型构建设备的中触发添加指令,细粒度情感分析模型构建设备根据该添加指令为属性词添加属性词标签,以及为情感词添加情感词标签,即由用户手动添加情感词标签。在本实施例中,不限制属性词标签和情感词标签的具体表现形式,如可用“#”表示属性词标签,“*”表示情感词标签。如某个特征分句为“房间很舒服”,则确定“房间”为属性词,“舒服”为情感词,为“房间”添加“#”,为“舒服”添加“*”;若某个特征分句为“服务很好”,则确定“服务”为属性词,“好”为情感词,为“服务”添加“#”,为“好”添加“*”。当为特征分句添加属性词标签和情感词标签后,该特征分句即含有了类型标签。

在为待训练分句中的特征分句添加属性词标签和情感词标签后,确定各个待训练分句对应的词性序列。其中,若某个待训练分句为含有第二预设数量中的属性词和情感词,其对应的词性序列中携带有属性词标签和情感词标签;若某个待训练分句为普通分句,即不含有第二预设数量中的属性词和情感词,其对应的词性序列中只携带有词性标签。

进一步地,确定各个所述待训练分句对应的词性序列的步骤包括:

步骤c,检测所述待训练分句是否携带所述属性词标签和所述情感词标签。

步骤d,若所述待训练分句携带所述属性词标签和所述情感词标签,则将所述属性词标签替换所述待训练分句中的属性词,以及将所述情感词标签替换所述待训练分句中的情感词,并根据所述待训练分句中各个词语对应的词性标签、属性词标签和情感词标签对应组合成所述待训练分句的词性序列。

步骤e,若所述待训练分句未携带所述属性词标签和所述情感词标签,则根据所述待训练分句中各个词语对应的词性标签组合成所述待训练分句的词性序列。

进一步地,确定各个待训练分句对应的词性序列的具体过程可为:检测各个待训练分句中是否携带到属性词标签和情感词标签。若待训练分句中携带有属性词标签和情感次标签,则将属性词标签替换待训练分句中的属性词,以及将情感词标签替换待训练分句中的情感词。可以理解的是,在待训练分句中,只有携带有第二预设数量对应的属性词,才需要将属性词标签替换待训练分句中的属性词,以及携带有第二预设数量对应的情感词,才需要将情感词标签替换待训练分句中的情感词。根据待训练分句中各个词语对应的词性标签、属性词标签和情感词标签对应组合成待训练分句的词性序列。若待训练分句中没有携带属性词标签和情感词标签,则将需要添加属性词标签和情感词标签位置空出即可,即直接根据待训练分句中各个词语对应的词性标签组合成待训练分句的词性序列。

如对待训练分句“房间很舒服”和“服务很好”进行词性标注后,所得的结果为“房间/n,很/d,舒服/a”和“服务/n,很/d,好/a”,其中,“n”表示名词,“d”表示副词,“a”表示形容词,对应的词性序列为“#/n,/d,*/a”和“#/n,/d,*/a”,对应表述都为“#nd*a”。若某个待训练分句为“价格不便宜”,但该待训练分句中不含有属性词标签和情感词标签,则对该待训练分句进行词性标注后,所得的结果为“价格/n,不/d,便宜*/a”。对应的词性序列为“/n,/d,/a”,对应的表述为“nda”。

步骤s30,根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则,并根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合。

当得到各个待训练分句的词性序列后,根据含有属性词标签和/或情感词标签的词性序列挖掘目标规则,并根据所挖掘的目标规则提取待训练分句中的属性词集合和情感词集合。需要说明的是,当挖掘出目标规则后,将满足该目标规则的词性序列中,属性词标签对应位置的词语记为属性词,情感词标签对应位置的词语记为情感词。如当某个待训练分句满足所挖掘的目标规则“<#<n><d>*<a>>”,则确定该待训练分句中与“n”对应的词汇为属性词,与“a”对应的词汇为情感词。

具体地,通过类序列规则(classsequentialrules,csr)在词性序列中挖掘含有类型标签的目标规则,即在含有属性词标签和/或情感词标签的词性序列中挖掘目标规则。类序列规则是由类型标签(即属性词标签和/或情感词标签)和词性序列数据组成的规则,这两者构成一种映射关系,形式化表述为:x→y,具体描述该映射关系如下:x为一个词性序列,表述为

<s1x1s2x2…sixi>,其中s指的是词性序列数据库,词性序列数据库为一系列元组<sid,s>组成的集合sid为词性序列数据库中词性序列的标号,如词性序列数据库中第一个词性序列的sid为1,第二词性序列的sid为2,而s指的是词性序列,xi表示的是这个词性序列对应的可能的类别;y为含有类型标签的词性序列,表述为<s1c1s2c2...sici>,其中(cr∈c,1≤i≤r),s定义同上,cr为确定的类型标签,而c={c1,c2,…cr}为类型标签的集合。在本实施例中,csr要求存在携带有属性词标签和/或情感词标签的词性序列。当确定属性词标签和情感词标签后,csr会将满足预设支持度阈值和预设置信度阈值的词性序列挖掘出来作为目标规则。

进一步地,根据含有所述属性词标签和/或所述情感词标签的词性序列挖掘目标规则的步骤包括:

步骤f,确定所述词性序列中含有所述属性词标签和/或所述情感词标签的目标词性序列。

步骤g,计算所述目标词性序列中符合同一规则的第一序列数量,在所述词性序列中确定除所述目标词性序列外,符合待确定规则的第二序列数量,其中,所述待确定规则为所述第一序列数量中所述目标词性序列符合的规则。

进一步地,根据含有属性词标签和/或情感词标签的词性序列挖掘目标规则的具体过程为:确定待训练分句对应的词性序列中含有属性词标签和/或情感词标签的词性序列,记为目标词性序列,并计算目标词性序列中符合同一规则的词性序列的数量,记为第一序列数量。其中,在计算目标词性序列中符合同一规则的词性序列的数量过程中,根据目标词性序列中各个词性序列的表现形式来确定,如若某两个词性序列的表现形式一致,则确定这两个词性序列符合同一规则。如当3个词性序列分别为“<abd*gh>”,<#kea>和<ab*fgh>,则可确定“<abd*gh>”和<ab*fgh>都符合规则“<<ab>x<gh>>→<<ab>*<gh>>”,而<#kea>不符合“<<ab>*<gh>>”规则。需要说明的是,规则和词性序列中的字母表示对应位置词语的词性。

在计算出目标词性序列中符合同一规则的第一序列数量后,将第一序列数量对应的目标词性序列所符合的规则记为待确定规则,并在待训练分句对应的词性序列中确定除目标词性序列外,符合待确定规则的词性序列,并将符合待确定规则的词性序列对应的数量记为第二序列数量。如当词性序列为<abeghk>和<d#kb>时,则可确定词性序列<abeghk>符合待确定规则“<<ab>*<gh>>”,词性序列<d#kb>不符合待确定规则“<<ab>*<gh>>”。可以理解的是,由于第二序列数量对应的词性序列中不存在属性词标签和情感词标签,因此在计算不含有属性词标签和/或情感词标签的词性序列符合待确定规则的数量过程中,不必考虑待确定规则中的属性词标签和/或情感词标签。

步骤h,根据所述词性序列中的总序列数量和所述第一序列数量计算得到支持度,根据所述第二序列数量和所述第一序列数量计算得到置信度。

当计算得到第一序列数量和第二序列数量后,计算待训练分句的词性序列的总序列数量,将第一序列数量除以中序列数量,得到目标规则对应的支持度;将第一序列数量和第二序列数量相加,得到第一序列数量和第二序列数量之和,将将第一序列数量除以第一序列数量和第二序列数量之和,得到目标规则对应的置信度。

步骤i,若所述支持度大于或者等于预设支持度阈值,且所述置信度大于或者等于预设置信度阈值,则将所述待确定规则作为目标规则。

当计算得到待确定规则的支持度和置信度后,判断计算所得的支持度是否大于或者等于预设支持度阈值,以及判断计算所得的置信度是否大于或者等于预设置信度阈值。若计算所得的支持度大于或者等于预设支持度阈值,且计算所得的置信度大于或者等于预设置信度阈值,则将待确定规则作为目标规则;若计算所得的支持度小于预设支持度阈值,和/或计算所得的置信度小于预设置信度阈值,则不将待确定规则作为目标规则。其中,预设支持度阈值和预设置信度阈值可以根据具体需要而设置,本实施例中对预设支持度阈值和预设置信度阈值不做具体限制。

进一步地,根据所述目标规则提取所述待训练分句中的属性词集合和情感词集合的步骤包括:

步骤j,确定所述待训练分句中已添加所述属性词标签和/或所述情感词标签的分句,记为目标分句。

步骤k,将所述待训练分句中除所述目标分句外的其它分句的词性序列与所述目标规则进行匹配,以在所述待训练分句中提取到所述属性词集合和情感词集合。

进一步地,根据目标规则提取待训练分句中的属性词集合的过程为:确定待训练分句中已添加属性词标签和/或情感词标签的分句,将待训练分句中已添加属性词标签和/或情感词标签的分句记为目标分句,并将待训练分句中除目标分句外的其它分句的词性序列与所确定的目标规则进行匹配,得到除目标分句外其它分句中的属性词和情感词,以在待训练分句中提取到属性词集合和情感词集合。如可某个待训练分句词性序列<fabeghk>符合目标规则“<<ab>*<gh>>”,则可确定在该待训练分句中,词性“e”对应的词语为属性词。

在所得的属性词集合和情感词集合中,可对应加入目标分句中的属性词和情感词,也可不加入目标分句中的属性词和情感词。

进一步地,在提取到属性词集合,或者提取到属性词集合和情感词集合后,对应为词性序列添加对应的属性词标签和情感词标签。为了得到完整的属性词集合和情感词集合,在为词性序列添加对应的属性词标签和情感词标签后,返回执行步骤s40,每一次返回执行步骤s40时,都将预设支持度阈值设置比前一次执行步骤s40对应的预设支持度阈值大,以保证所挖掘的目标序列的准确性,从而使通过所挖掘的目标规则提取的属性词和情感词更为准确。在本实施例中,类挖掘序列参考半监督学习的做法,在经过多轮迭代训练,即类似于“滚雪球”的方法,不断标注新的训练集(即符合目标规则的待训练分句)和迭代挖掘规则之后,得到最终的属性词集合和情感词集合,以更好地保证了csr的查准率和查全率。同时由于挖掘的是规则,对词性序列来说通用性很强,所以csr的泛化性能很好。

步骤s40,根据所述情感词集合中的各个情感词对应为所述属性词集合中的属性词添加情感类别标签。

当得到情感词集合和属性词集合后,根据情感词集合中的各个情感词对应为属性词集合中的属性词添加情感类别标签。在本实施例中,情感类别标签为两种,一种是褒义情感,对应标签可设置为1,一种是贬义情感,对应标签可设置为-1。可以理解的是,褒义情感和贬义情感对应标签的表现形式并不限制于1和-1。在其它实施例中,可将情感类别标签分为3种或者4种。如可将情感类别标签分3种,分别为好、中等和差。需要说明的是,在本实施例中,一个属性词是存在一个对应的情感词的,因此当确定待训练分句中的某个属性词后,由于属性词和情感词是存在对应的关系的,因此可对应确定该属性词对应的情感词。

在为属性词集合中的各个属性词添加情感类别标签过程中,可由用户在细粒度情感分析模型构建设备中输入添加指令,由用户手动为各个待训练分句添加情感类别标签;或者在细粒度情感分析模型构建设备中预先设置好不同情感类别标签对应的词汇,将各个属性词对应的情感词与预先设置好的情感类别标签词汇进行对比,以确定各个属性词的情感类别标签。如当预先设置的褒义情感对应的词汇有“舒服、好、便宜、值、大”等,贬义情感对应的词汇有“小、差、不值、烂、低”等。当确定某个属性词对应的情感词为褒义情感对应的词汇时,为该属性词添加褒义情感对应的标签;当确定某个属性词对应的情感词为贬义情感对应的词汇时,为该属性词添加贬义情感对应的标签。

步骤s50,将所述属性词集合中各个属性词和各个属性词对应的上下文信息进行向量化表示,得到所述属性词和所述上下文信息对应的词向量。

当得到待训练分句中的属性词集合后,确定各个待训练分句中属性词对应的上下文信息,并将属性词和对应的上下文信息进行向量化表示,得到各个属性词和对应上下文信息的词向量。其中,上下文信息是与属性词相关的上下文词语。具体地,可通过word2vec工具得到各个属性词和对应上下文信息的词向量。word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练,word2vec工具得到的训练结果——词向量(wordembedding),可以很好地度量词与词之间的相似性。在word2vec中,word2vec主要分为cbow(continuousbagofwords)和skip-gram两种模型。cbow是从原始语句推测目标字词,cbow模型等价于一个词袋模型的向量乘以一个embedding矩阵,从而得到一个连续的embedding向量;而skip-gram正好相反,是从目标字词推测出原始语句。可以理解的是,在本实施例中,语言处理工具也可为其它可以实现与word2vec同样功能的工具。

步骤s60,将所述属性词和所述上下文信息对应的词向量作为所述注意力机制的多层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,以构建细粒度情感分析模型。

当得到属性词集合中各个属性词和对应上下文信息的词向量后,将属性词和上下文信息对应的词向量作为注意力机制的多层神经网络的输入,并确定与输入注意力机制的多层神经网络中属性词在同一分句中的情感词,将该情感词的情感类别标签作为注意力机制的多层神经网络最后的输出结果,即将该属性词对应的情感类别标签作为注意力机制的多层神经网络的输出结果,以得到情感分词模型中的各个参数,构建细粒度情感分析模型。其中,注意力机制中神经网络的层数可根据具体需要而设置,如可设置为3层、4层或者6层等。

进一步地,步骤s60包括:

步骤l,将所述属性词的词向量和所述上下文信息对应的词向量作为注意力机制的首层神经网络层的注意层的输入,得到与所述属性词情感相关的上下文信息。

进一步地,在得到属性词的词向量和对应上下文信息的词向量后,将属性词的词向量和对应上下文信息的词向量作为注意力机制的首层神经网络层中注意层的输入,得到与属性词情感相关的上下文信息。在神经网络层中,存在一个注意层和线性层。当将属性词对应的词向量输入至神经网络的注意层后,会输出与该属性词情感相关的上下文信息。

步骤m,在所述首层神经网络层的线性层对与所述属性词情感相关的上下文信息对应词向量和所述属性词的词向量进行求和,得到求和结果。

当得到与属性词情感相关的上下文信息后,将与属性词情感相关的上下文信息记为相关信息,并在与属性词情感相关的上下文信息词向量中确定相关信息的词向量,将属性词的词向量和相关信息的词向量作为首层神经网络的线性层的输入,在首层神经网络的线性层中对相关信息的词向量和对应属性词的词向量对应线性求和,得到求和结果。可以理解的是,该求和结果即为首层神经网络线性层的输出。该相关信息为与属性词情感相关的词语或者是一种压缩的数值化表示的信息,用于表示与属性词情感相关的信息。

如当某个属性词对应的上下文信息有6个,分别为a、b、c、d、e和f。若根据首层神经网络注意层的输出结果确定a、c、d、e和f这5个上下文信息为相关信息,则将这5个相关信息对应的词向量和属性词的词向量输入首层神经网络的线性层中。

步骤n,将所述求和结果作为下一层神经网络的输入,将与所述属性词对应的情感类别标签作为所述注意力机制的多层神经网络的输出结果,得到所述细粒度情感分析模型中的各个参数,根据所述参数构建所述细粒度情感分析模型。

当得到求和结果后,将该求和结果对应的词向量作为注意力机制中下一层神经网络注意层的输入,根据该注意层的输出确定与属性词情感更加相关的上下文信息,并将与属性词情感更加相关的上下文信息的词向量和属性词的词向量输入至该神经网络的线性层中,依此循环迭代(即将上一神经网络线性层的输出,作为下一神经网络注意层的输入),使注意力机制的最后一层神经网络的输出结果为属性词对应的情感类别标签。通过属性词集合中的属性词不断训练注意力机制中的各个参数,即得到细粒度情感分析模型中的各个参数。可以理解的是,当得到细粒度情感分析模型中的各个参数后,即表明成功构建了细粒度情感分析模型。

需要说明的是,为了所构建的细粒度情感分析模型能根据属性词对属性词对应的分句进行情感判断,本实施例采用深度学习方法构建一个多层的神经网络进行情感打分,并且引入注意力机制关注与属性词的情感相关的上下文信息,抽取对应的情感倾向信息,从而利用这些信息进行属性词的情感判断。

利用注意力机制逐层抽取对属性词情感分类重要的上下文信息,不同的词语对句子有不同的重要程度,例如停用词在很多句子中都出现,对应的tf-idf(termfrequency–inversedocumentfrequency,词频-逆文本频率指数)值很小,对句子的贡献极小。用tf-idf值作为词语权重,将词向量与他们对应词语的权重加权求和得到句向量,能够在句向量中体现各个词对句向量表示的贡献程度。因此要得到跟属性词情感相关的上下文信息,注意力机制本质上就是加权平均,假如给定n个m维的属性词的词向量vi(i=1,2,…,n),要整合所有属性词的词向量信息,得到跟细粒度情感分析模型所学习的情感类别标签尽可能相关的词向量。在本实施例中,为了提高整合的词向量的准确性,通过注意力机制将属性词和与属性词情感相关的上下文信息对应的权重计算出来。

在计算属性词和上下文信息对应权重的过程中,先要设计一个打分函数f(x),输入的是属性词的词向量和上下文的词向量,输出对应分数,即输出对应的权重。打分依据是计算该词向量与注意力机制关注对象的相关程度,如果输入打分函数的词向量与关注对象的相关程度越高,对应分数值就越大。可以理解的,关注对象即为本实施例中的属性词。在本实施例中,将属性词的词向量记为vi,上下文的词向量记为vt,b为神经网络中设置好的参数。此时,激活函数的输入要考虑多个特征,其中,激活函数可以是tanh,relu等函数。对应的打分函数可为:f(x)=activation(w1vi+w2vt+b)。

当通过打分函数得到对应的分数值后,针对分数值,设计分类激活函数,输出对应权重,那么对于首层神经网络,最重要的就是信息为属性词本身,所以注意力机制的首层输入是属性词的词向量,输出是与给定的属性词情感相关的上下文信息,再将属性词的词向量和首层神经网络所得的上下文信息的词向量加权求和得到下一层神经网络注意层的输入,经过多层神经网络抽取得到属性词情感相关最重要的上下文信息,最后对上下文信息进行情感分类,即确定情感是贬义情感还是褒义情感,添加情感类别标签。

本实施例通过在进行细粒度情感分析过程中,利用类序列规则提取属性词和情感词,提高了属性词和情感词提取的准确率,使所挖掘的类序列规则(即本实施例中的目标规则)随着所应用领域的待训练文本的变化而变化,提高了所构建的细粒度情感分析模型的泛化能力,以及使所构建的细粒度情感分析模型存在良好的可扩展性;通过类序列规则解决了情感词和属性词之间长距离依赖的问题,即解决了评价对象和评价词之间长距离依赖的问题,并通过注意力机制的神经网络提取与属性词相关的情感上下文信息,实现细粒度情感分析。

进一步地,提出本发明细粒度情感分析模型构建方法第二实施例。

所述细粒度情感分析模型构建方法第二实施例与所述细粒度情感分析模型构建方法第一实施例的区别在于,参照图3,细粒度情感分析模型构建方法还包括:

步骤s70,获取第三预设数量的待测试分句,根据所述目标规则提取所述待测试分句中的属性词。

当成功构建细粒度情感分析模型后,获取第三预设数量的待测试分句,并根据目标规则提取待测试分句中的属性词。其中,第三预设数量可以等于第一预设数量,也可以小于第一预设数量。进一步地,还可根据目标规则提取待测试分句中的情感词。其中,根据目标规则提取待测试分句中的属性词和情感词的原理与根据目标规则提取待训练分句中的属性词集合的原理一致,在本实施例中不再赘述。

需要说明的是,在获取到待测试分句后,需要去掉待测试分句中的无关字符和停用词等,并对待测试分句进行分词操作,以及为待测试分句中的各个词语添加词性标签等。具体过程和实施例一中对待训练分句的过程一致,在本实施例中不再赘述。

步骤s80,将各个待测试分句的属性词和对应的上下文信息进行向量化表示后输入所述细粒度情感分析模型中,对应得到所述待测试分句中属性词的情感类别标签。

当得到各个待测试分句的属性词后,确定各个属性词在待测试分句中对应的上下文信息,并将待测试分句的属性词和对应的上下文信息进行向量化表示,得到待测试分句中属性词和上下文信息对应的词向量,并将待测试分句中属性词和上下文信息对应的词向量输入所构建的细粒度情感分析模型中,以得到对应待测试分句的情感类别标签。其中,细粒度情感分析模型的输出即为输入的属性词对应的待测试分句的情感类别标签。

步骤s90,将所述待测试分句属性词的情感类别标签对应与所述待测试分句属性词的预设情感类别标签进行对比,根据对比所得的对比结果确定所述细粒度情感分析模型分析文本情感类型的准确率。

当得到待测试分句的情感类别标签后,将待测试分句属性词的情感类别标签对应与待测试分句属性词的预设情感类别标签进行对比,得到对比结果,并根据对比结果确定细粒度情感分析模型分析文本情感类型的准确率。其中,待测试分句属性词的预设情感类别标签是由用户预先设置好的。对于一个待测试分句而言,若细粒度情感分析模型输出的情感类别标签与预设情感类别标签一致,则可确定细粒度情感分析模型对该待测试分句的情感分析正确;若细粒度情感分析模型输出的情感类别标签与预设情感类别标签不一致,则可确定细粒度情感分析模型对该待测试分句的情感分析错误。根据所有待测试分句中情感分析正确的数据和情感分析错误的数据确定细粒度情感分析模型分析文本情感类型的准确率。

如当有100个待测试分句时,细粒度情感分析模型对83个待测试分句属性词的情感分析正确,即细粒度情感分析模型输出的83个待测试分句属性词的情感类别标签与对应的预设情感类别标签一致,对其余17个待测试分句属性词的情感分析错误,即细粒度情感分析模型输出的17个待测试分句属性词的情感类别标签与对应的预设情感类别标签不一致,则确定细粒度情感分析模型分析文本情感类型的准确率为83%。

本实施例通过在成功构建细粒度情感分析模型后,获取待测试分句测试所构建的细粒度情感分析模型分析文本情感类型的准确率,以便于用户在确定所构建的细粒度情感分析模型分析文本情感类型的准确率较低时,通过获取更多的待训练分句训练细粒度情感分析模型,以提高所构建的细粒度情感分析模型分析文本情感类型的准确率。

进一步地,提出本发明细粒度情感分析模型构建方法第三实施例。

所述细粒度情感分析模型构建方法第三实施例与所述细粒度情感分析模型构建方法第一或第二实施例的区别在于,细粒度情感分析模型构建方法还包括:

步骤o,获取所述待训练分句中的分句数量,以及预设支持率。

步骤p,计算所述分句数量和所述预设支持率之间的乘积,将所述乘积作为所述预设支持度阈值。

在挖掘类序列规则过程中,类序列规则csr是先确定类别,然后根据类别来挖掘目标规则。在类序列规则中,左侧是序列模式,右侧是对应的类型标签,通过这种对应的映射关系将序列模式和类别信息绑定在一起。csr挖掘的目标是找到与类别信息具有高度相关性的序列模式,挖掘序列模式和类别之间对应的规则。由此可见,类序列规则挖掘算法的特点是有监督和事先给定类别。序列模式挖掘算法有gsp(generalizadsequentialpatterns)、prefixspan等,都可以用于csr的挖掘。通过基于频繁模式挖掘的prefixspan算法来挖掘满足最小支持度(即预设支持度阈值)的频繁序列模式,同时考虑到,在各个序列模式中序列长度的差别较大,使用单一固定的最小支持度进行类序列规则挖掘并不合适,否则如果要挖掘低频序列,需要将支持度阈值降低,这样会引入大量由高频词产生的规则,引入噪音。

为了避免上述问题,本实施例使用多最小支持度策略,即通过获取待训练分句中的分句数量,以及预设支持率,计算分句数量和预设支持率的之间的乘积,将所得的乘积作为预设支持度阈值,即将所得的乘积作为最小支持度。如当预设支持率为a,待训练分句的分句数量为n,则预设支持度阈值min_sup=a×n,其中,经过大量试验可确定a的值在0.01~0.1之间。

需要说明的是,当a越大时,所挖掘到的目标规则的精度越高,多次迭代挖掘,可以保证所挖掘的目标规则的查全率,如将纯组合项中同时含类型标签的词性序列,如“#/n,/d,*/a”单独提取出来,得到目标规则。其中,类型标签为属性词标签和情感词标签。纯组合项是指同一待训练分句中的词语所组成的词性序列;不同待训练分句中的词语组成的词性序列为非纯组合项;即含有同一待训练分句的词语,又包含不同待训练分句的词语组成的词性序列为混合项。区分纯组合项、非纯组合项和混合项是为了区分词性序列之间的间隔。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有细粒度情感分析模型构建程序,所述细粒度情感分析模型构建程序被处理器执行时实现如上所述的奖励发送方法的步骤。

本发明计算机可读存储介质具体实施方式与上述细粒度情感分析模型构建方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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