一种行业评论数据细粒度情感分析方法

文档序号:6627781阅读:1398来源:国知局
一种行业评论数据细粒度情感分析方法
【专利摘要】本发明是一种行业评论数据细粒度情感分析方法,用于互联网数据分析。本方法是:获取电商行业商品的评论数据;对评论数据进行预处理;建立初始的行业情感词库,利用1-gram和2-gram分别计算词在不同情感极性下的分布;对评论数据进行中文分词;分别基于1-gram、2-gram构建的情感词库,使用联合情绪模型对词进行建模,获取词在不同情感分布下,属于不同主题的概率分布;利用上下文信息重新确定句子中情感词的情感倾向值;利用条件随机场进行命名实体识别,抽取评论特征,计算评论特征评价词的情感倾向值。本发明通过主题、情感两个维度计算评论词的情感,实现行业评论数据的细粒度情感分析,分析结果精度高且更加可解释。
【专利说明】一种行业评论数据细粒度情感分析方法

【技术领域】
[0001] 本发明属于互联网数据分析领域,涉及评论数据的情感分析技术,具体涉及一种 行业评论数据细粒度情感分析方法。

【背景技术】
[0002] 随着大数据时代的到来,越来越多的信息通过网友的群智群力,以众包的方式出 现,越来越多的人喜欢在网上交流他们的意见,因而在网络上出现大量包含倾向性的评论 信息,比如豆瓣的影评、书评,电商网站上产品的评论。商家希望通过信息处理手段来获取 这些电子信息中包含的情感倾向性,以此来获得消费者反馈,修正市场决策。例如,在购买 电子商品之前,人们希望先得知别人对于该商品的评价,优点是什么,缺点是什么,以此作 为购买的重要参考。近年来情感分析成为了信息处理领域中的一个研究热点,但是由于其 自身特点,导致研究进展较为缓慢。
[0003] -般的情感分析技术主要是采用监督的方式对互联网文本中的情感进行分,通过 提取文本中包含的情感词,对其进行极性判断,找出文本中对应的情感词特征向量。为计算 文本情感倾向性,通过对这些已知样本进行训练,建立分类模型,对新的评论进行情感倾向 的判断。现有的技术一般分为两种:监督和非监督。监督模型一般采用K最邻近结点算法 (KNN)、朴素贝叶斯和支持向量机(SVM)、最大熵的情感分类模型,其中涉及到情感词的提取 和极性判断,这种方法与情感词词典的构建有很大关系,需要完备的情感词词典。所建立的 分类模型和特定领域有很大关系,对某一个领域构建的模型很可能对另外一个领域不太适 用。同时,构建情感词词典费时费力。由于评论中存在大量的噪音,对训练样本的质量有一 定的影响,使得训练出来的模型受到影响,影响分类的准确度和召回率。非监督模型一般基 于主题模型进行的改进,这种模型的优点是泛化能力较强,并不局限于某一个领域,但是结 果精度往往比较差,缺乏有监督的指导。
[0004] -般的情感分析主要研究的是评论的整体态度,但在实际中这种分析粒度较大, 比如汽车评论中,商家不仅希望知道针对一款车型,好评差评分别占比,他更希望知道好在 明队差在哪。因此一般的情感分析不再适用于这个场景。


【发明内容】

[0005] 本发明针对现有非监督模型的分析结果精度差,领域针对性强,所用的情感分析 结果粗糙的问题,提出了一种非监督结合情感词表的行业评论数据细粒度情感分析方法, 旨在实现以比较高的可解释度和精确度来分析普通用户对于研究对象的情感倾向性。
[0006] 本发明提供的一种行业评论数据细粒度情感分析方法,包括如下步骤:
[0007] 步骤1 :获取电商行业商品的评论数据;
[0008] 步骤2 :对步骤1得到的评论数据进行预处理,包括:根据评论数据长度进行清洗, 去除垃圾广告信息,去除评论数据中的网址,去除自动评论数据;将预处理后的评论数据用 于下面步骤;
[0009] 步骤3 :建立初始的行业情感词库,利用1-gram和2-gram分别计算词在不同情感 极性下的分布,获得l-gram构建的情感词库和2-gram构建的情感词库;
[0010] 步骤4 :对评论数据进行中文分词,去除停用词,获取词集合;
[0011] 步骤5 :为词集合中的所有词建立和对应文档的索引,分别基于Ι-gram构建的情 感词库和2-gram构建的情感词库,使用联合情绪模型对词进行建模,获取词在不同情感分 布下,属于不同主题的概率分布;
[0012] 其中使用联合情绪模型对词进行建模,具体是:
[0013] 对于每一个文档d,选择一个分布π d,JI d定义为Dir u );
[0014] 对于文档d下的每一个情感标记la,选择一个分布0dla,0d, la定义为Dir(a);
[0015] 对于文档d中的每一个词Wy选择一个情感标记和主题Zy 定义为π d,Zi 定义为θ d,la ;
[0016] 从主题Zi和情感标记1?所定义的词分布里面选择一个词Wi定义为
[0017] 其中,超参数α、β和Υ使用吉布斯抽样方法获取;
[0018] 步骤6 :利用上下文信息重新确定句子中情感词的情感倾向值;
[0019] 步骤7 :利用条件随机场进行命名实体识别,抽取评论特征,对评论特征中的评价 词进行统计,计算评价词的情感倾向值。
[0020] 本发明的优点与积极效果在于:
[0021] (1)本发明的行业评论数据细粒度情感分析方法,通过主题、情感两个维度计算 评论词的情感,对行业评论数据进行细粒度的情感分析,使得分析结果精度较高、更加可解 释;
[0022] (2)利用Bloom filter和给定的规则集合对海量数据进行预处理,数据处理效率 1?,有效精减了数据量;
[0023] (3)引入情感因子隐变量,使用改进的主题模型(联合情绪模型)对文档中的词进 行建模,融合情感分析领域最常用的两种模型,结合两者优点,提升结果性能;并分布采用 Ι-gram和2-gram两种方式分别构建行业情感词典,进行主题模型聚类,获得进行对比分析 的结果,以利于综合获取更加准确的聚类结果;
[0024] (4)利用条件随机场进行命名实体识别,实体识别结果好;通过词性等制定规则 挖掘实体及其属性,提高抽取商品特征的准确率。

【专利附图】

【附图说明】
[0025] 图1是本发明的行业评论数据细粒度情感分析方法的整体流程图;
[0026] 图2是本发明方法的步骤1和3中利用爬虫程序所进行操作的示意图;
[0027] 图3是本发明方法步骤5的实现流程图;
[0028] 图4是本发明的JST使用Gibbs Sampling进行参数推断的示意图;
[0029] 图5是本发明方法步骤6和7的流程不意图;
[0030] 图6是对某个商品的评论数据运用本发明方法进行情感分析的结果示意图。

【具体实施方式】
[0031] 下面将结合附图和实施例对本发明作进一步的详细说明。
[0032] 细粒度分析可分两种,一种是句子级别,一种是属性(aspect)级别。由于产品评 论一句话里面往往包含对多个属性的评价,如"质量很好,外观美观,但是很贵",因此本发 明的技术方案中的细粒度针对的是属性层次的细粒度。
[0033] 本发明以非监督方式对电商行业评论数据进行细粒度情感分析,提出来一种引入 隐变量的改进的主题模型方法,采用Ι-gram和2-gram的方式分别建立行业情感词典,同时 采用中文分词技术、命名实体识别技术对评论中的实体特征进行抽取,基于商品属性和实 体特征进行细粒度情感分析,给出商品在细粒度维度下的多维度情感分析结果。
[0034] 本发明提供的行业评论数据细粒度情感分析方法,基于一种引入隐变量的改进主 题模型聚类的技术进行情感聚类,利用中文分词、命名实体识别技术提取物品细粒度的特 征,然后结合电商行业评论数据进行情感分析,本发明方法流程如图1所示。
[0035] 步骤1 :构建爬虫程序,抓取电商行业的商品的评论数据。本发明实施例中主要从 京东、淘宝和亚马逊抓取数据。如图1和2所示,本步骤包括步骤101和102。
[0036] 步骤101 :构建分布式爬虫程序,对电商网站数据进行页面抓取。
[0037] 步骤102 :根据抓取到的html页面生成页面的dom树结构,根据标签提取爬到页 面中包含的评论数据并存储。
[0038] 步骤2 :对步骤1得到的评论数据进行预处理。(1)利用布隆滤波(Bloom filter) 方法对海量数据进行处理,Bloom filter处理速度很快,适合处理海量数据。(2)利用下面 的规则集对评论数据进一步预处理,去除符合规则1?3的评论数据:规则1:评论数据长 度小于5个字;规则2 :评论数据中含有特定的广告词;规则3 :基于网络特定回复模板的自 动回复;规则4 :评论中含有网址的,去除网址后再重新判断是否符合规则1?3。
[0039] 步骤201 :根据评论长度进行清洗,利用正则表达式和制定的规则集去除垃圾广 告信息。
[0040] 步骤202 :利用Bloom filter方法去除重复的评论数据,首先对评论数据利用N个 hash函数映射到位数组中,再对后面的评论计算N个hash值,然后判断该评论数据是否已 经存在,如果后面的评论计算出的hash值存在位数组中,则说明该评论数据已经存在,并 将其过滤掉。
[0041] 步骤203 :设计匹配网址的正则表达式,去除评论数据中的网址,再次计算句子的 长度,然后在此基础上进行二次清洗,主要清洗长度不满足规则中设置条件的评论。
[0042] 步骤204 :观察评论数据,统计网络自动评论模板,根据自动评论模板去除评论中 包含的自动评论数据。
[0043] 步骤3 :建立初始行业情感词库。如图2所示,本步骤包括步骤301?步骤303。
[0044] 步骤301 :利用爬虫程序抓取情感领域的专有词汇和百度百科的数据,建立初始 的行业情感词库。
[0045] 步骤302 :利用Ι-gram计算词在不同情感极性下的分布,得到Ι-gram构建的情感 词库。
[0046] 步骤303 :利用2-gram计算词在不同情感极性下的分布,得到2-gram构建的情感 词库。
[0047] 步骤4 :对步骤2预处理后的评论数据进行中文分词处理,获取对应的词集合。对 所有评论数据进行中文分词,去除停用词,获取分词结果。
[0048] 步骤401 :调用中文分词程序分词,然后根据停用词表去除停用词,对其中包含的 英文词进行形态变换,转换到统一的表达形式。
[0049] 步骤402 :计算词的文档频率df,词频tf,以及逆向文件频率idf,对词使用计算公 式i〇g(tf7(idf+i)+i)计算权值,然后与设定的权值阈值比较,进行词集筛选,获取权值大 于权值阈值的词组成的词集,从而得到能够体现评论特征的词集合,同时词集筛选后也适 当地降低了评论数据对应的词集合的维度。
[0050] 步骤5 :引入情感因子隐变量,使用改进的主题模型对文档中的词进行聚类,首次 将改进的联合情绪模型(Joint Sentiment/Topic Model, JST)应用到中文情感分析。如图 3所示,步骤5包括如下四个子步骤。
[0051] 步骤501 :首先处理文档中的词,对所有词建立和对应文档的索引,然后创建文档 和词对应的数据文件。每条评论数据作为一个文档。
[0052] 步骤502 :调用利用Ι-gram构建的情感词库和利用2-gram构建的情感词库,两个 词库将分别应用到下面的联合情绪模型的聚类过程。
[0053] 步骤503 :JST通过引入隐变量,对隐含狄利克雷分布(latent dirichlet allocation)主题模型进行改进,对词建模,进行聚类。
[0054] JST模型的建模基本过程如下:
[0055] For each document d, choose a distribution π d ?Dir ( γ )· \\ 对于每一个文 档d,选择一个分布3id,定义为Dir〇));
[0056] For each sentiment label la under document d,choose a distribution Θ d,la?Dir(a ). \\对于文档d下的每一个情感标记la,选择一个分布Θ d,la, 定义为Dir(a );
[0057] For each word Wi in document d\\ 对于文档 d 中的每一个词
[0058] Choose a sentiment label lai ?π d\\ 选择一个情感标记 la" 定义为 π d
[0059] Choose a topic Zi ?Θ d,la\\ 选择一个主题 Zi,定义为 Θ d,la
[0060] Choose a word wi from the distribution over words defined by the topic zi and sentiment label lap中$_\\选择一个从主题zJP情感标记]^所定义的所有词 分布里面的词&定义为cpt,
[0061] 其中,联合情绪模型JST包含的超参数α、β和Y可以看作主题在情感标签中出 现次数和单词在主题下出现次数的先验分布。
[0062] 本发明改进的JST使用吉布斯抽样方法(Gibbs Sampling)进行超参数推断。假 设给定α,β,Y,吉布斯抽样方法的流程是积出变量θ,φ,π,然后根据这三个变量从后 验概率P(z |w, 1,d, α,β,γ )中抽样主题ζ。如图4所示,D表示文档空间向量,nd表示某 个文档d的词空间向量,z表示主题,1表示情感标记,T表示β的因子,S表示α的惩罚 因子,V表示γ的惩罚因子。在抽样的每一轮过程中,根据以下公式来抽样:
[0063]

【权利要求】
1. 一种行业评论数据细粒度情感分析方法,其特征在于,包括如下步骤: 步骤1:获取电商行业商品的评论数据; 步骤2 :对评论数据进行预处理,包括:根据评论数据长度进行清洗,去除垃圾广告,去 除评论数据中的网址,去除自动评论数据;将预处理后的评论数据用于下面步骤; 步骤3 :建立初始的行业情感词库,获得1-gram构建的情感词库和2-gram构建的情感 词库; 步骤4 :对评论数据进行中文分词,去除停用词,获取词集合; 步骤5 :为词集合中的所有词建立和对应文档的索引,分别基于1-gram构建的情感词 库和2-gram构建的情感词库,使用联合情绪模型对词进行建模,获取词在不同情感分布 下,属于不同主题的概率分布; 其中使用联合情绪模型对词进行建模具体是: 对于每一个文档d,选择一个分布d,Jid定义为Dir(Y)); 对于文档d下的每一个情感标记la,选择一个分布0d,la,0d,la定义为Dir(Ci); 对于文档d中的每一个词Wi,选择一个情感标记Iai和主题Zi,Iai定义为d,Zi定义 为 0d,ia; 从主题Zi和情感标记Iai所定义的词分布里面选择一个词Wi定义为cpt; 其中,超参数a、0和Y使用吉布斯抽样方法得到; 步骤6 :利用上下文信息重新确定句子中出现的情感词的情感倾向值; 步骤7 :利用条件随机场进行命名实体识别,抽取评论特征,对评论特征中的评价词进 行统计,计算评价词的情感倾向值。
2. 根据权利要求1所述的一种行业评论数据细粒度情感分析方法,其特征在于,所述 的步骤2,利用下面的规则集对评论数据进行预处理,去除符合规则1?3的评论数据: 规则1:评论数据的长度小于5个字; 规则2 :评论数据中含有特定的广告词; 规则3 :基于网络特定回复模板的自动回复; 规则4 :评论数据中含有网址,去除网址后再重新判断是否符合规则1?3。
3. 根据权利要求1所述的一种行业评论数据细粒度情感分析方法,其特征在于,所述 的步骤4获取词集合时,计算词的逆向文件频率idf和词频tf,确定词的权值为log(tf/ (idf+1) +1),将权值与设定的权值阈值比较,进行词集筛选,保留权值大于权值阈值的词。
4. 根据权利要求1所述的一种行业评论数据细粒度情感分析方法,其特征在于,所述 的步骤5具体包括如下子步骤: 步骤501 :对词集合中的所有词,建立和对应文档的索引; 步骤502 :分布调用利用1-gram构建的情感词库和利用2-gram构建的情感词库,进行 步骤503 ; 步骤503 :使用联合情绪模型对词进行建模,最后得到〈情感,主题,词索引〉模型; 步骤504:对所得到的〈情感,主题,词索引〉模型中的词索引,转换为词本身,得到 词在不同情感分布下,属于不同主题的概率分布。
5. 根据权利要求1所述的一种行业评论数据细粒度情感分析方法,其特征在于,所述 的步骤6具体是: 步骤601 :选取滑动窗口范围W,对以当前情感词为中心的前W/2及后W/2范围内的词 集合,选出其中的情感词、否定词、程度副词和转折连词,分别计算所选出的词对当前情感 词的影响; 步骤60 2 :将当前情感词在不同主题中的情感倾向,与文档中出现的主题的概率对当 前情感词的情感倾向,进行权值加权求和,获得当前情感词在句子中的最终情感倾向。
6.根据权利要求1所述的一种行业评论数据细粒度情感分析方法,其特征在于,所述 的步骤7在抽取评论特征时,根据命名实体识别结果,采用基于规则的抽取方式进行抽取, 评论特征表征为〈特征,评价词〉,具体是:首先人工标注种子特征和种子评价词,然后利用 规则挖掘和种子评价词相关的特征词,统计〈新特征,种子评价词〉的频度,利用规则挖掘 和种子特征词相关的评价词,统计〈种子特征,新评价词〉的频度,直至挖掘不到新的〈特 征,评价词〉对产生。
【文档编号】G06F17/27GK104268197SQ201410486635
【公开日】2015年1月7日 申请日期:2014年9月22日 优先权日:2013年9月22日
【发明者】邓攀, 袁伟, 余雷, 闫碧莹, 赵鑫, 万安格 申请人:中科嘉速(北京)并行软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1