本发明属于数据分析技术领域,特别是涉及一种使用神经网络模型训练的词向量构建的适用于商品评论的情感词典、属性识别算法和基于词向量和句法特征的评论分析系统。
背景技术:
随着互联网的普及与电子商务的发展,京东、淘宝等互联网电子商务网站迅速发展,越来越多的消费者开始选择网上购物;这些电商网站拥有海量的商品,同时也拥有广大的用户群,由此产生了庞大的评论数据。消费者给出的评论往往携带了用户对此次消费的主观感受,包括对购买商品的喜好程度,对商家服务的满意程度等。对消费者而言,这些评论文本可以帮助其更客观地了解到相关商品或服务的信息,从而给出更适合的选择;对商家而言,通过用户反馈的关于商品或服务的体验信息,可以帮助其进一步针对性的改善服务或商品质量,从而获得更多的客户和利润。然而,随着数据量的爆炸性增长,用户从海量评论数据中获取到有用的信息所需付出的成本也越来越大,因此,如何快速有效地对用户评论文本进行处理和分析,并从提取出有价值的信息,具有重要应用价值与研究意义。
当前,大量的评论数据无法得到充分的利用,消费者难以从海量的评论数据中获取到有价值的信息。因此,我们研究了一种基于词向量和句法特征的评论分析系统,根据分析结果得到用户对于商品各属性的满意度,进而总结出商品的优势、劣势,然后对分析结果进行数据可视化。
技术实现要素:
本发明所要解决的技术问题是如何实现对商品评论数据进行准确、实时、自动、便利的处理与分析,克服现有技术的不足而提供一种基于词向量和句法特征的评论分析方法。
本发明提供一种基于词向量和句法特征的评论分析方法,包括以下步骤:
1)获取电商网站商品页面评论数据;
2)将获取的目标数据集进行预处理,并构建候选情感词集;
3)提取hownet和ntu提供的褒贬词集组成基础情感词典;
4)将所得到的经过预处理的数据集合通过word2vec工具进行词向量训练,得到词向量并生成语义相似度矩阵;
5)使用语义相似度矩阵建立概率转移矩阵,并结合种子词集通过lpa标签传播算法且经过基础情感词典检验后生成最终的情感词典;
6)将获取的商品评论文本,进行基于核心句规则的处理,得到去除冗余的评论文本;
7)将所得到的去除冗余的文本进行预处理,对得到的分词数据集合基于依存关系、句法特征形成依存关系树,生成sbv、vob、att、cmp、coo依存关系对;
8)对所得依存关系对通过词性提取<商品属性,否定词,程度词,情感词>评价搭配对;
9)将所得评价搭配对结合情感词典,对评价对象进行褒贬值计算、优劣排序,最终通过可视化交互界面实现。
作为本发明的进一步限定,步骤2)具体包括:
2-1)使用字符匹配算法去除非法字符;
2-2)将原始数据集使用ltp进行分词、词性标注;
2-3)提取符合词性的词,经过去重,组成候选情感词集1;
2-4)将原始数据集使用nlpir进行分词、词性标注;
2-5)提取符合词性的词,经过去重,组成候选情感词集2;
2-6)将候选情感词集1和候选情感词集2组合,经过去重,得到候选情感词集。
作为本发明的进一步限定,步骤3)具体包括:利用hownet情感词典和ntu评价词词典,分别提取其中的褒贬词,合并后去重,组成基础情感词典。
作为本发明的进一步限定,步骤4)具体包括:
4-1)利用word2vec训练数据集,得到词语的词向量;
4-2)结合候选情感词集,采用如下公式计算词语之间的语义相似度:
4-3)例如两个n维词向量a(x11,x12,…,x1n)和b(x21,x22,…,x2n),其语义相似度计算公式如下:
其中,
4-4)根据计算出的语义相似度构建语义相似度矩阵。
作为本发明的进一步限定,步骤5)具体包括:
5-1)将每个词看作图的节点,两个节点间边的权重用其所代表词之间的语义相似度表示;
5-2)根据如下公式建立概率转移矩阵p:
其中,p[i][j]表示词语i到j之间的相似度转移概率,sim(wi,wj)表示词语i和j的相似度,m表示与词语i语义相似度最高的词的个数;
5-3)统计候选情感词集中所有情感词在原始评论数据中的词频,筛选出词频最高的n个词,组成种子词集1;利用情感词汇本体库,筛选出情感词汇本体强度>m且在候选情感词集中的词,组成种子词集2;将种子词集1和种子词集2合并后去重,组成种子词集,进行人工情感标注;
5-4)利用人工标注的少量种子词建立lxc的label矩阵yl,其中:l表示种子词个数;c表示类的个数,分为3类,分别为褒义,贬义,中性;
5-5)同时利用未标注的样本词建立uxc的label矩阵yu,其中:u表示未标注样本词个数;c表示类的个数,分为3类,分别为褒义,贬义,中性;
5-6)最后采用lpa标签传播算法对所述样本词进行词性标注,并通过基础情感词典检验后,形成最终的情感词典。
作为本发明的进一步限定,步骤6)具体包括:
核心句主要指删除冗余,保留与评价搭配相关的主干成分;若原句不符合任何规则,则保持不变,本方法利用核心句旨在提高评价文本句法依存分析的准确率,其规则包括如下:
规则1:删除句子中句首状语成分,如“…的优点”、“…的缺点”、“…的不足”、“…的优势”、“…的好处”序列;
规则2:删除带有假设性倾向的句子,如“假如…”、“希望…”、“如果…”、“但愿…”、“建议…”;
规则3:删除句首为“就是”、“居然是”、“特别是”、“还有就是”、“尤其是”序列;
规则4:删除“感觉”、“认为”主张词;
规则5:删除除去第一个标点符号外的连续的标点符号以及如表情、颜文字、括号非正常的字符。
作为本发明的进一步限定,步骤7)具体包括:
依存句法的五条公理:
(1)一个句子只能有且只有一个独立成分;
(2)句子中任何成分都必须同时依存于某一成分;
(3)句子中任何成分不能同时依存于两个或两个以上的成分;
(4)句子中如果成分a直接依存于成分b,成分c位于成分a和b之间,那么成分c依存于a或b或a、b之间的其它成分;
(5)中心成分左右两边的成分之间相互不存在依存关系;
依存关系树的特点有:
(1)树中的结点由句子中的各个成分充当;
(2)树的根节点为整个句子中心成分;
(3)树中的结点之间构成的边具有方向性,反映了成分之间不对称的依存关系;
(4)满足依存句法的五条公理;
评论中绝大部分句子依存关系为主谓关系(sbv)、动宾关系(vob/fob)、定中关系(att)、动补关系(cmp)、并列关系(coo)这五类,可以通过ltp依存句法分析器进行依存句法分析,并结合识别并列评价对象、并列评价词的coo算法提取依存关系对;所述的识别并列评价对象、并列评价词的coo算法,具体包括:
遍历基于依存关系、句法特征所得到的sbv、vob、att、cmp依存关系对中两个结点之间以及依存句法树中与之左右相关的所有词;
判断所遍历的所有词中是否有coo关系;
扩充coo关系的并列评价对象和评价词。
作为本发明的进一步限定,步骤8)具体包括:
8-1)根据中文语言特点,评价对象多为名词或动词,评价词多为形容词或动词;
8-2)根据词性提取评价对象与评价词,即商品属性与情感词;
8-3)根据依存句法树,遍历所得的评价对象与评价词之间是否有否定词,如果有,否定词个数+1,若遍历到多个否定词累计相加,直至遍历结束,对否定词个数进行奇偶性判断。若为奇数,对应的否定词privative赋值为-1,若为偶数,对应的否定词privative赋值为+1;
8-4)根据依存句法树,遍历所得的评价对象与评价词之间是否有程度词,若遍历到多个,进行个数累加,得到此搭配对的程度词个数;
8-5)最终形成<商品属性,否定词,程度词,情感词>评价搭配对。
作为本发明的进一步限定,步骤9)具体包括:
根据出现n次的商品属性a,其褒贬值计算公式如下:
其中a.score是商品属性a的情感值,
对抽取的所有评价对象,分褒贬两类,利用冒泡排序排列出最后结果。
一种可视化交互界面,可以执行权利要求上述的所有步骤,可以将情感值以柱状图的形式很好地展现之外,还增添了很多友好的交互功能,包括:加载、登录、注销、修改密码以及用户登录使用状态等。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明通过获取电商网站商品页面评论数据并进行预处理,构建基础情感词典;再将所得到的经过预处理的数据集合通过word2vec工具进行词向量训练并生成语义相似度矩阵进而建立概率转移矩阵,并结合种子词集通过lpa标签传播算法生成最终的情感词典;将获取的商品评论文本,进行基于核心句规则的处理,得到去除冗余的评论文本;再将所得到的去除冗余的文本进行预处理,对得到的分词数据集合基于依存关系、句法特征形成依存关系树,生成sbv、vob、att、cmp、coo依存关系对并提取<商品属性,否定词,程度词,情感词>评价搭配对,再结合情感词典,对商品属性进行褒贬值计算、优劣排序,最终通过可视化交互界面实现;可以同时实现对评论数据进行分析的准确、实时、自动和便利。
附图说明
图1为本发明流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明的技术方案通过使用一种神经网络模型训练的词向量,并结合ltp标签传播算法构建一个适用于商品评论的情感词典;通过基于核心句规则、依存关系以及句法特征设计了一个商品属性识别提取算法;并结合上述技术方案构建了一个基于词向量和句法特征的评论分析系统,根据分析结果得到用户对于商品各属性的满意度,进而总结出商品的优势、劣势,然后对分析结果进行数据可视化。
参阅图1,本发明实施一个基于词向量和句法特征的评论分析方法,具体的实施步骤如下:
步骤s101:获取电商网站商品页面评论数据。
在具体实施中,设计一种评论数据爬取算法,获取电商网站各类商品的评论数据,生成原始评论数据集。
步骤s102:将所述获取的目标数据集进行预处理,并构建基础情感词典。
在具体实施中,对原始数据集使用字符匹配算法去除非法字符;首先使用ltp进行分词、词性标注,提取词性标识为“a”(adj)的词,经过去重,组成候选情感词集1;然后使用nlpir进行分词、词性标注,提取词性标识为“a”(adj)的词,经过去重,组成候选情感词集2;合并候选情感词集1和候选情感词集2,经过去重,组成最终的候选情感词集。
步骤s103:提取hownet和ntu提供的褒贬词集组成基础情感词典。
在具体实施中,利用hownet情感词典和ntu评价词词典,分别提取其中的褒贬词,合并后去重,组成基础情感词典。
步骤s104:将所得到的经过预处理的数据集合通过word2vec工具进行词向量训练,得到词向量并生成语义相似度矩阵。
在具体实施中,利用word2vec训练数据集,分别设置训练参数size=100,window=5,sg=0,min_count=0,经过训练得到词语的词向量。
结合候选情感词集,采用如下公式计算词语之间的语义相似度。
例如两个n维词向量a(x11,x12,…,x1n)和b(x21,x22,…,x2n),其语义相似度计算公式如下:
其中,
按顺序遍历候选情感词集中的所有情感词,固定一个,计算其与其他所有情感词的相似度;假设有m个候选情感词,经过m*m次计算,得到一个m*m的语义相似度矩阵。
为便于下述操作,规定,同一情感词之间的相似度为0。
根据计算出的语义相似度构建语义相似度矩阵。
步骤s105:使用语义相似度矩阵建立概率转移矩阵,并结合种子词集通过lpa标签传播算法且经过基础情感词典检验后生成最终的情感词典。
在具体实施中,将每个词看作图的节点,两个节点间边的权重用其所代表词之间的语义相似度表示。
根据如下公式建立概率转移矩阵p:
其中,p[i][j]表示词语i到j之间的相似度转移概率,sim(wi,wj)表示词语i和j的相似度,m表示与词语i语义相似度最高的词的个数(人工设置);根据上述公式建立概率转移矩阵p。
统计候选情感词集中所有情感词在原始评论数据中的词频,筛选出词频最高的100个词,组成种子词集1;利用大连理工大学情感词汇本体库,筛选出情感词汇本体强度>7且在候选情感词集中的词,组成种子词集2;将种子词集1和种子词集2合并后去重,组成种子词集,进行人工情感标注。
之后利用人工标注的少量种子词建立lxc的label矩阵yl,其中:l表示种子词个数;c表示类的个数,一般为3类(褒义,贬义,中性);同时利用未标注的样本词建立uxc的label矩阵yu,其中:u表示未标注样本词个数;c表示类的个数,一般为3类(褒义,贬义,中性);把两个label矩阵合并,得到一个nxc的softlabel矩阵f=[yl;yu]。
执行标签传播算法,具体操作为:1)执行传播:f=pf;2)重置f中labeled样本的标签:fl=yl;3)重复步骤1)和2)直到f收敛。
其中,步骤1的目的是将每个节点(情感词)的标签(情感属性)以概率转移矩阵确定的概率传播给其他节点,如果两个节点的相似度越大,传播的概率越大;步骤2的目的是将已标注种子词的标签重置为标注的值,避免因步骤1的运算过程而改变;步骤3中确定f收敛的方法是计算最新的f与上一次运算后的f0的矩阵相似度,直到相似度不再变化时,认为f已收敛。
最终矩阵f中单行的三个数值表示其所对应的情感词的属性传播值,选取其中最大的数值,判断其所对应属性,确定该情感词属性。
导出确认属性的情感词,组成情感词典1,遍历情感词典1中的所有情感词,若步骤s103所述基础情感词典中含有该词且与基础情感词典中属性矛盾,改变其属性,以基础情感词典中属性为准;反之,属性不变。
上述步骤结束后,修改后的情感词典1即为最终的情感词典。
步骤s106:将所述获取的商品评论文本,进行基于核心句规则的处理,得到去除冗余的评论文本。
在具体实施中,在本系统网页的交互界面上,输入商品网址,通过后台设计的网络爬虫机制,爬取电商平台上所输入商品的评论数据,系统设置爬取该商品的前1000条优质评论数据。
将爬取获得的商品评论数据,基于核心句规则进行去除冗余的处理,保留与评价搭配相关的主干成分;例如:“手机收到了,挺不错的,像素和音质都很好,尤其是快递很给力(次日达),唯一的不足就是包装不是很好,希望店家可以改进一下。。。”处理如下:
(1)匹配规则1,例句中匹配到“…的不足”,处理后变为“手机收到了,挺不错的,像素和音质都很好,尤其是快递很给力(次日达),就是包装不是很好,希望店家可以改进一下。。。”;
(2)匹配规则2,例句中匹配到“希望”,处理后变为“手机收到了,挺不错的,像素和音质都很好,尤其是快递很给力(次日达),就是包装不是很好,店家可以改进一下。。。”;
(3)匹配规则3,例句中匹配到“就是”“尤其是”,处理后变为“手机收到了,挺不错的,像素和音质都很好,快递很给力(次日达),包装不是很好,店家可以改进一下。。。”;
(4)匹配规则5,例句删除连续的标点符号,最终处理得到的核心句为“手机收到了,挺不错的,像素和音质都很好,快递很给力次日达,包装不是很好,店家可以改进一下。”,此实施例记为实施例句sentences。
步骤s107:将所得到的去除冗余的文本进行预处理,得到的分词数据集合基于依存关系、句法特征形成依存关系树,生成sbv、vob、att、cmp、coo依存关系对。
在具体实施中,将上述步骤s106中所得到的去除冗余的文本进行预处理,以标点符号分句,得到6个小句。将每一小句,利用ltp工具对其进行分词,词性标注,并基于依存关系、句法特征形成依存关系树。得到依存关系对sbv<手机,收到>,sbv<像素,好>,coo<音质,像素>,sbv<快递,给力>,sbv<包装,好>,sbv<店家,改进>。
例如此小句“像素和音质都很好”,经过以上步骤处理后,再结合识别并列评价对象、并列评价词的coo算法再次提取依存关系对,则得到的依存关系对为<像素,好>,<音质,好>。
步骤s108:对所得依存关系对通过词性提取<商品属性,否定词,程度词,情感词>评价搭配对。
在具体实施中,对每个抽取的关系对,遍历评价对象与评价词之间是否有否定词,并计算个数,对评价对象与评价词之间的否定词经判别奇偶后得到其正负值,即否定词判定为奇数个数,对应privative赋值-1;否定词判定为偶数个数,对应privative赋值+1。然后再遍历评价对象与评价词之间是否有程度词,并计算程度词个数。最终形成<商品属性,privative,degree,情感词>评价搭配对。步骤s106中实施例句sentences中,关系对<包装,好>之间识别到一个否定词“不”,则此对应的privative值为-1;再遍历“包装”与“好”之间的程度副词,识别到“很”,则对应的degree值为1。则此小句提取的评价搭配对为<包装,-1,1,好>。
步骤s109:将所得评价搭配对结合情感词典,对评价对象进行褒贬值计算、优劣排序,最终通过可视化交互界面实现。
在具体实施中,对所提取的评价搭配对,通过情感词典获得情感词的褒贬属性。再根据以下公式进行商品属性的褒贬值计算:
对步骤s107中得到的评价搭配对<包装,-1,1,好>中的商品属性“包装”进行褒贬值计算得其情感值为
遍历所获取的商品所有的评论数据,进行以上步骤处理,对相同的评价对象进行累加,最终提取得到该商品所有的商品属性,然后分褒贬两类,利用冒泡排序排列得出最后结果。最后通过前后端,在网页上用可视化交互界面实现。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。