本发明涉及情感倾向性分类,具体讲的是一种面向中文评论的情感多倾向分类方法。
背景技术:
随着博客、微博、点评等应用的快速推广和发展,网络中各种评论已成为用户表达意见和在线交流的重要途径。网络中评论信息通常以短文本的形式表达用户对事物的看法,例如对新闻事件的评价、对商品性能的评论等等。所有这些评论信息是由大量用户发布,从不同的侧面和不同的角度对事物提出了自己的看法和主张。这些评价信息随着日积月累,形成了一种结构复杂、内容多样、多种情感交合的数据集合。
用户对感兴趣的事物所发表的相关评论是反映用户对事物属性和特征看法的重要方式。用户通过评论表达他们对事件的态度、商品的性能、服务的质量等多方面的态度。现有的评论情感倾向性分类研究中主要将情感倾向性划分为正面情感、负面情感和中性情感,有些研究将情感倾向性划分成了几个等级,如:非常赞成、赞成、中性、不赞成、非常不赞成等,这些分类都是将情感倾向性划分成几个固定的类型,难以处理更为复杂的情感分类情况。
由于用户对事件的了解、事物的理解、服务的体验等都可能存在较大差异,不同的用户对事件、事物和服务等会有不同的感受。这种不同的感受体现在他们的评论中就可能表达出各种各样的情感和态度。同时,用户在对某个对象(事件、事物、服务等)的单个评论中,有时候表达的是单一的态度,例如赞成或反对,这种态度是关于对象的整体评价,表达了情感的某种倾向性。但是,由于人类情感的丰富性和复杂性,用户通常会对目标的不同方面进行分别评论和评价,例如,评价商品的时候会涉及价格、性能、外观等不同的细节和方面,并表达对这些细节和方面的不同态度。这就导致了在同一评论中用户所表达的情感倾向性并不总是单一的情感类型。在许多情况下,用户可能会同意或者否定同一事物的某些部分,而不是肯定或否定整个事物。因此,这些不同的态度是用户对某个对象的更全面的描述,表达了多方面的情感倾向性。为了更准确区分用户对事物所表达出来的多种态度,有必要对用户的评论进行更细致的情感多倾向分类。
技术实现要素:
本发明要解决的技术问题是,克服以上现有技术的缺陷,提供一种更准确区分用户对事物所表达出来的多种态度的面向中文评论的情感多倾向分类方法。
本发明公开了一种面向中文评论的情感多倾向分类方法,包括如下步骤:
s1,提取语素情感变量;根据中文语素词库和情感语料词库对评论文本中关于被评论对象的各种语素词和情感词进行提取,采用皮尔逊相关系数方法计算语素词与情感词之间的关联系数,通过关联系数组成语素情感变量;
s2,构建语素情感变量之间的相似性关系;采用条件互信息计算公式计算两个语素情感变量的近似关系,对语素情感变量之间的关系进行描述;
s3,计算语素情感紧密路径;将语素情感变量看成是有向加权无环图中的节点,称为语素情感节点或语素情感节点变量,在语素情感节点之间构建有向加权关系连接,作为有向加权链接边,在这些有向加权链接边基础上,基于有向加权无环图模型设计改进的最短路径搜索算法,搜索满足一定权值条件的有效路径,每个路径都是一种情感倾向性分类。
作为优选,步骤s1中,将中文语素划分为名词类语素和情感类语素两种类型,两类语素按照联合、偏正、支配、陈述、补充中的一种或多种复合方式进行组合,通过有监督的机器学习方法提取评论文本中的语素,采用语素与情感之间的皮尔逊相关系数作为关联系数将语素和情感对应起来,构建语素情感变量。
作为优选,步骤s2中,对那些存在相似性的两个语素情感节点之间使用有向边连接起来,形成一种有向链接;有向链接的方向是根据语素情感变量在评论中出现的先后顺序确定的,这种顺序确定了链接边的连接方向。
作为优选,步骤s3中,当获得所有的语素情感节点之间的有向链接边之后,找出某个开始节点到所有终止节点的最短路径,每一条最短路径上的语素情感节点组成了最强情感倾向集合,代表了一个情感倾向性,通过设定合理的最大路径长度经验阈值,找到那些符合情感强度要求的路径,这些路径上的语素情感节点和有向加权边就构成了有效情感倾向性分类。
作为优选,步骤s1中,语素情感变量的提取包括如下步骤:
a1,选取评论训练样本集合,参考现有汉语语素库,搜索所有中文名词性语素,记入语素集合m;
a2,选取评论训练样本集合,参考现有情感语料库,搜索所有中文情感型语素,记入情感集合s;
a3,语素集合m中的语素元素与情感集合s中的情感元素构成一个独立的语素情感变量vi,计算每个语素元素与情感元素之间的皮尔逊相关系数r;设定阈值rθ,将满足r≥rθ的语素情感变量vi记入有效语素情感变量集合v,记为
其中,公式(1)中的n为有效语素情感变量的数目;
a4,循环执行a3,直到处理完所有的语素集合和情感集合中的元素。
作为优选,语素与情感之间的皮尔逊相关系数r的计算公式为:
其中,公式(2)中的
作为优选,步骤s2中,将语素情感变量看成是有向加权无环图中的节点,称为语素情感节点或语素情感节点变量,计算语素情感节点的近似关系包括如下步骤:
b1,找出每个语素情感节点的子节点集合,构建语素情感节点的有向无环图;
首先初始化子节点集合,先将所有语素情感节点的子节点集合置空;然后计算每对语素情感节点vi和语素情感节点vj的条件互信息,当条件互信息大于预设经验值时,将语素情感节点vj看成是语素情感节点vi的子节点;最后,输出所有语素情感节点的子节点集合和有向无环图,有向无环图表示为g=(v,d);其中,vi、vj为语素情感节点,g为有向无环图,v为有效语素情感节点集合,d为父节点到子节点的有向边集合;
计算每对语素情感节点的条件互信息:
其中,公式(3)中的f(g)为条件互信息,p(vi,vj)为联合概率密度函数,chirld(vi)为节点vi的子节点集合;i的取值范围为[1,n-1],j的取值范围为[i+1,n];
b2,计算语素情感节点之间的相似性权值,循环执行直到遍历所有语素情感节点;
其中,公式(4)中,wi,j为具有父子关系的两个语素情感节点的相似性关系的权值,n(vi)和n(vj)为节点在相同评论文本中各自出现的次数,n(vi,vj)为两者在相同评论文本中同时出现的次数。
作为优选,步骤s3中,语素情感紧密路径的计算包括如下步骤:
c1,计算有向加权无环图的有向链接边长度,将相似性权值转换为有向边长度,li,j=-lnwi,j,其中,li,j为有向边长度;
c2,计算情感倾向分类路径,变量初始化,顺序执行以下步骤:
c21,从语素情感变量集合v中选取一个没有父节点的语素情感节点变量作为开始节点,记为vs;
c22,将开始节点的子节点初始化为自身,语素情感变量集合v中其他语素情感节点的子节点初始化为空;
c23,将语素情感节点vi到语素情感节点vj的路径长度记为di,j,开始节点到自身路径长度为0,开始节点到其他语素情感节点的路径长度初始值为无穷大;语素情感节点vi与语素情感节点vj之间的路径长度等于两语素情感节点之间全部有向边长度的代数和;
c24,初始化分类和候选节点集合,ck={vs};q={vs};其中,ck为第k个情感倾向分类,q为候选节点集合,vs为开始节点;
c3,当语素情感节点变量集合v不为空,搜索候选节点集合q中的语素情感节点,找出具有最短路径长度的语素情感节点,执行如下步骤:
c31,当语素情感节点变量vi和vj都在候选节点集合q中,并且i≠j时,如果开始节点vs到语素情感节点vi的路径长度小于或等于开始节点vs到语素情感节点vj的路径长度,则从候选节点集合q中删除路径长度最短的语素情感节点vi;
c32,将具有最短路径长度的语素情感节点vi加入到最短路径集合中;
c33,对于每个从语素情感节点vi出发连接到语素情感节点vt的有向边,当开始节点vs到语素情感节点vi的路径长度加上语素情感节点vi到语素情感节点vt的有向边长度的代数和小于开始节点vs到语素情感节点vt的路径长度时,则使用开始节点vs到语素情感节点vi的路径长度加上语素情感节点vi到语素情感节点vt的有向边长度的代数和来更新最短路径长度ds,t,并将与语素情感节点vi具有最短路径长度的后继节点置为语素情感节点vt;如果语素情感节点vt不在候选集合q中,则将语素情感节点vt加入候选节点集合q;
c34,当语素情感节点vi没有后继节点,则进行搜索下一个分类;
c35,如果语素情感节点vi属于语素情感节点集合v,则从语素情感节点集合v中删除已经给出最短路径的语素情感节点vi;
c4,若路径长度小于设定的最大路径长度阈值,则是有效分类,算法结束。
与现有技术相比,本发明一种面向中文评论的情感多倾向分类方法具有以下显著优点:
本发明将有向加权无环图模型与情感倾向性分析相结合,引入中文语素的方法,将传统的中文语素划分为语素和情感两种类型,通过提取评论的各种语素情感、分析语素情感之间的相似性关系、计算语素情感紧密路径三个步骤实现评论的情感多倾向分类,更准确区分用户对事物所表达出来的多种态度,反映出用户对事物属性和特征看法。
附图说明
图1为本发明面向中文评论的情感多倾向分类模型。
图2为本发明实施例中ε=0.85、ξ取不同值的算法收敛时间比较图。
图3为本发明实施例中ξ=2000、ε取不同值的算法收敛时间比较图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本发明提供一种面向中文评论的情感多倾向分类方法,包括如下步骤:
首先,提取语素情感变量。根据现有的中文语素词库和情感语料词库对评论文本中关于被评论对象的各种语素词和情感词进行提取。根据中文语言描述事物的特点,采用皮尔逊相关系数方法计算语素词与情感词之间的关联系数,通过关联系数组成语素情感变量。这种语素情感变量作为独立的情感内容可用来描述某种情感类型,并在情感关系计算中看成是一个独立情感单元。
然后,构建语素情感变量之间的相似性关系。采用条件互信息计算公式对语素情感变量之间的关系进行描述。将语素情感变量看作独立实体,从评论中提取出来的这样的独立语素情感有多个,用户的情感倾向性就是通过这些独立的语素情感表达出来的。通过有机组合,这些语素情感可能存在一定的相似性,具有相似性的语素情感变量都是对某种语素相类似的情感倾向性的描述,这些具有相似性的语素情感变量能够反映某种类型的情感倾向性。
最后,计算语素情感紧密路径。采用条件互信息获得的语素情感相似性关系是语素情感变量之间的直接关系,具有直接关系的语素情感变量集合是否能够表达用户的一类情感倾向性还需要确定这些语素情感变量在整个集合内部所形成的全局关系的强弱。在有向加权无环图模型基础上,将语素情感变量看成是有向加权无环图中的节点,称为语素情感节点或语素情感节点变量(在有向加权无环图中称为语素情感节点或语素情感节点变量,在语素情感集合中只称为语素情感节点变量)。在语素情感节点之间构建有向加权关系连接,作为有向加权链接边。在这些有向加权链接边基础上,基于有向加权无环图模型设计改进的最短路径搜索算法,搜索满足一定权值条件的有效路径。该路径上经历的所有语素情感节点集合就代表了某一类情感类型,通过设定一定的路径长度限制,就能够根据需要找出多条这样路径,每个路径都是一种情感倾向性分类。
本发明面向的是中文评论的情感多倾向分类问题。根据中文语法和语素的特点,中文类评论一般都具有特定的主题和对象,此类主题和对象可以通过评论所在的网站或平台的相关话题获取,如微博中的话题、博客中的具体事件对象、电子商务中的产品和服务等。这些有关话题、对象、产品、服务等相关的标题和特定说明组成了有关对象的元数据,可以视为对象和主题。通常,大多数网上用户的评论中都可以清楚地确定其评论的对象和主题。
对象和主题由多个方面组成,这些方面是描述对象各个组成部分的分支部分。有时用户在评论中即关注整个对象,还要关注对象的某个方面。这些方面是表达用户情感的核心内容,有必要提取描述对象的这些方面。对象的各个方面通常是各种语素构成,这些语素是对象和主题的属性和特征,评论中的单音节词汇、双音节词汇和多音节都可以看成是语素。
本发明将中文语素划分为两种类型:名词类语素和情感类语素。评论中关于事物、对象的不同侧面、功能、属性、特征等的名词性描述属于名词类语素,简称为语素;表达情感、态度、偏好、情绪等内容的属于情感类语素,简称为情感。本发明将语素情感作为情感分析的最基本单位,语素情感是用户表达情感倾向性的不可分割部分,一种语素情感就代表了该用户在这个语素方面的情感倾向。
语素情感是判断用户情感倾向性的基本单位,提取和挖掘有效的语素情感是评论情感多倾向性分类的首要任务。在中文语句表达结构中,两类语素可以按照联合、偏正、支配、陈述、补充等复合方式进行组合。语素情感挖掘就是找到评论中的有效语素和该语素关系密切的情感,然后将两者联系起来,共同作为整体情感分类的基本要素。本发明通过有监督的机器学习方法提取评论文本中的语素,采用语素与情感之间的皮尔逊相关系数作为关联系数将语素和情感对应起来,构建语素情感变量。
语素情感之间的相似性关系分析。将提取出来的语素情感变量看成是一个有效情感倾向性节点,具有相似性的语素情感节点表示了这些节点具有在某个侧面具有某种相近的情感倾向性。不同的语素情感节点之间的关系通过情感相似性计算来分析是否存在相似性。本发明采用条件互信息方法来计算两个语素情感节点之间的近似关系。对那些存在相似性的两个节点之间使用有向边连接起来,形成一种有向链接。有向链接的方向是根据语素情感变量在评论中出现的先后顺序确定的,这种顺序确定了链接边的连接方向。
计算情感倾向分类路径,确定有效情感倾向分类。当获得所有的语素情感节点之间的有向链接边之后,利用改进的最短路径算法找出某个开始节点到所有终止节点的最短路径,每一条最短路径上的语素情感节点组成了最强情感倾向集合,代表了一个情感倾向性,通过设定合理的最大路径长度经验阈值,就可以找到那些符合情感强度要求的路径,这些路径上的素情感节点和有向加权边就构成了有效情感倾向性分类。有多少条路径符合这个要求,那么就可以得到多少种情感倾向分类,从而实现本发明的评论情感多倾向分类。
本发明提出的面向中文评论的情感多倾向分类算法如下:
输入:中文评论文本数据集合(训练样本,测试样本);
输出:情感多倾向分类集合;
step1,选取评论训练样本集合,参考现有汉语语素库,搜索所有中文名词性语素,记入语素集合m;
step2,选取评论训练样本集合,参考现有情感语料库,搜索所有中文情感型语素,记入情感集合s;
step3,执行循环,直到处理完所有的语素集合和情感集合中的元素:
计算每个语素与情感之间的皮尔逊相关系数r;
step4,语素元素与情感元素构成一个独立的语素情感变量vi,设定阈值rθ,将满足r≥rθ的语素情感变量记入有效语素情感变量集合,记为
step5,将有效语素情感变量vi看成是有向加权无环图中的节点,找出每个节点的子节点集合,构建语素情感节点的有向无环图g,执行(step5-1到step5-3):
step5-1,初始化子结点集,先将所有语素情感节点的子节点集合置空,fori=1ton,执行chirld(vi)←φ;
step5-2,计算条件互信息函数f(g),i=1ton-1,j=i+1ton,循环执行(s5-2-1到s5-2-2):
step5-2-1,计算每对语素情感节点的条件互信息:
step5-2-2,判断,若f(g)≥ε,则chirld(vi)←vj;其中ε为经验常数,当语素情感节点vi与语素情感节点vj的条件互信息大于某个经验值,则将语素情感节点vj看成是语素情感节点vi的子节点;
step5-3,输出所有节点的子节点集合chirld(vi)和有向无环图g=(v,d);其中d为父节点到子节点的有向边集合;
step6,计算语素情感节点之间的相似性权值,循环执行,直到遍历所有节点,i=1ton-1;j=i+1ton;
do:
step7,计算有向加权无环图中两个语素情感节点之间的有向链接边长度,li,j=-lnwi,j;相似性权值转换为有向边长度,li,j为有向边长度;
step8,计算情感倾向分类路径,变量初始化,顺序执行(step8-1到step8-5):
step8-1,k=1,ck=φ;其中ck为第k个情感倾向分类;
step8-2,从语素情感变量集合v选取一个没有父节点的节点变量作为开始节点,记为vs;
step8-3,将开始节点vs的子节点初始化为自身,语素情感变量集合v中其他节点vj的子节点初始化为空;chirld(vs)=vs;chirld(vj)=φ;
step8-4,di,j为语素情感节点vi到语素情感节点vj的路径长度,开始节点到自身路径长度为0,ds,s=0;开始节点到其他语素情感节点的路径长度初始值为无穷大,ds,j=∞;两语素情感节点之间的路径长度等于该路径所经过的全部节点之间有向边长度的代数和,di,j=li,1+l1,2+...+lj-1,j;
step8-5,初始化分类和候选节点集合:ck={vs};q={vs},其中,ck为第k个情感倾向分类,q为候选节点集合,vs为开始节点;
step9,当语素情感节点集合v不为空,即v≠φ,搜索候选节点集合q中的节点,找出具有最短路径长度的语素情感节点,执行(step9-1到step9-5);
step9-1,对于i,j∈q且i≠j,如果ds,i≤ds,j,则q=q-{vi};对于语素情感节点变量vi和vj都在候选节点集合q中,并且i≠j,如果开始节点到语素情感节点vi的路径长度小于或等于开始节点到语素情感节点vj的路径长度,则从候选节点集合q中删除路径长度最短的语素情感节点vi;
step9-2,ck=ck∪{vi};更新情感分类集合ck,将具有最短路径长度的语素情感节点vi加入到情感分类集合ck中;
step9-3,对于每个以语素情感节点vi出发连接到语素情感节点vt的有向边,即所有的vt∈chirld(vi),当路径长度ds,i+li,t<ds,t,则执行(s9-3-1到s9-3-2):
step9-3-1,ds,t=ds,i+li,t;next(vi)=vt;对于每个以语素情感节点vi出发连接到语素情感节点vt的有向边,当开始节点vs到语素情感节点vi的路径长度加上语素情感节点vi到语素情感节点vt的有向边长度的代数和,小于开始节点vs到语素情感节点vt的路径长度时,则使用开始节点vs到语素情感节点vi的路径长度加上语素情感节点vi到语素情感节点vt的有向边长度的代数和,更新最短路径长度ds,t,next(vi)=vt表示vt为与语素情感节点vi具有最短长度有向连接边的后继节点;
step9-3-2,判断,如果
step9-4,判断,如果next(vi)=φ,则执行k=k+1;当语素情感节点vi没有后继节点,则进行搜索下一个分类;
step9-5,判断,如果vi∈v,则执行v=v-{vi};如果语素情感节点vi属于语素情感节点集合v,则从语素情感节点集合v中删除已经找出最短路径的语素情感节点vi;
step10,若ds,t≤ξ,输出所有ck集合,算法结束;若路径长度小于设定的最大路径长度阈值ξ,则是有效分类。
以下是本发明的具体实施例,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明的技术效果实验采用自行采集的数据进行测试,本数据集来源于某网上商城关于手机类的用户评论,数据包括2019年5月至2019年10月期间的评论。实验使用的数据经过了初步筛选,保证所有消费者和商品至少具有5条评论,评论数据记录结构由评论者名称,产品编号,评论文本,评分组成。该数据集的详细结构如表1所示。
表1.评论的数据结构
从评论数据中选择了与100款手机相关的1,000条评论作为我们的测试数据,通过人工方式对该数据进行了手动标记。每个评论可能表达了多个方面的情感,这就需要标注多个标签,标签取决于其具体的内容。表2是人工进行标注的标签样本。
表2.评论数据的情感倾向性标签
技术测试方法
实验测试中将数据集的记录平均分为5个部分,每个部分包含200条评论。首先,将数据集的一个部分用作测试集,其余4个部分用作训练数据集。实验中的准确度包括精确率precision,召回率recall。然后,选择另一个部分作为测试集,将数据集中剩余的4个部分用作训练集,再次计算精确率、召回率和所消耗的cpu时间,直到将所有5个部分用作测试集一遍为止。
测试效果
准确性测试中算法的条件互信息的控制参数ε分别取值为0.65、0.75、0.85和0.95,路径距离的最大长度ξ分别取值为1000、2000、3000、4000和5000。结果如表3所示:
表3.算法在控制参数ε和ξ分别取不同值时的精确率、召回率和f值的平均值
从表3中可以看到,ε取0.95,ξ取2000时,精确率值最高,但是召回率很低,说明在该情况下算法的分类结果中正确的情况很好,但是缺失的分类也很多;ε取0.85,ξ取5000时,召回率很高,但是精确率反而降低,说明在该情况下算法的分类结果中缺失的分类很少,但是正确的情况却不好,因此单纯考虑精确率和单纯考虑召回率都不是好的方法。从整体综合考虑,ε取0.85,ξ取2000时,精确率和召回率都处于一个较好的情况。
当ε取固定值,ξ取变化值的时候,精确率随着ξ的增加,在开始的时候稍有增加,但到达峰值则会下降,其原因主要是在节点相似性关系固定情况下,最大路径距离增大到一定程度能够获得较高的精确性,但是无限制的增大将把非紧密关系的节点也加入路径中,导致标签分类精确性下降;对于召回率来说,召回率反映的是缺失的标签数目,ξ越大,将会加入更多的标签,缺失将会减少,召回率也提高。
当ξ取固定值,ε取变化值的时候,精确率随着ε的增加而增加,这是由于较大的互信息会找出越准确的标签,但是召回率却在一定范围内达到极大值,说明缺失标签的数量在开始的时候会减少,但是到达一定程度后却上升,其原因主要过于强调节点的强相似关系会导致正确标签的缺失。
时间效率测试中算法的控制参数ε取0.85,ξ取2000、3000和5000,三种情况算法收敛的时间如图2所示。由图2可以看出,ε取固定值时,算法收敛时间随着ξ值的增大而增加。算法的控制参数ξ取值为2000,参数ε的取值分别为0.75、0.85和0.95,三种情况算法收敛的时间如图3所示。由图3可以看出,ξ取固定值时,算法收敛时间随着ε值的增大而减小。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此,本发明的保护范围应以权利要求的保护范围为准。