一种基于机器学习的商品评论数据的情感分析方法与流程

文档序号:14478837阅读:1405来源:国知局

本发明涉及评论数据情感分析技术领域,尤其涉及一种基于机器学习的商品评论数据的情感分析方法。



背景技术:

伴随着电商发展的同时,是大量的用户数据日以继夜的增长,这些数据虽然是在存储和维护上带来了很多企业成本和技术难度,但是其中隐含的商业价值却是不可估量的,这些电商数据中,最能直观反映用户对商品以及电商平台的看法的数据就是商品的评论数据了,这些数据不仅仅可以反映出用户对于产品的意见,同时也可以将用户的情感信息提取出来,用来为更多的用户以及电商平台提供商业参考价值,对商品的推荐,产品的改进以及同类产品相互之间的对比提供一个方式。

对评论数据情感分析的方法与过程目前的流程主要是包括四个阶段,第一阶段是对商品评论数据的采集与抽取工作,这个阶段主要是采用适用于相应电商的爬虫工具对用户的商品评论数据进行采集工作,并且将数据存储为事先设计好的格式;第二阶段是数据探索与预处理阶段,对采集到的数据进行文本去重,机械压缩,短句删除,使数据成为可以使用的数据集,为后续的工作过滤掉众多垃圾信息;第三阶段是文本评论的分词,对中文文本的分词现阶段主要有4种方式:

字符串匹配算法,需要将带分文本与字典中的词匹配来分词;这种分词方法速度快,实现起来也很简单,但是歧义词字典未录入词处理不好,例如"长春市/长春/药店"和"长春/市长/春药/店";

基于理解的算法,模拟现实中人对于句子的理解效果来分词;这类分词方法比较复杂,需要大量的语言知识作为支持;

基于机器学习的算法,用已经分好词的文本来训练数据集;缺点就是需要大量的人工标注过的数据来对训练统计模型,速度较慢,耗费人力;

基于统计的方法:基于统计的方法认定相邻字共同出现的次数越多,成为词的概率越大,以此为标准来进行分词;无需词典以及聚类训练,只需对语料中的字组频率进行统计。

合理的分词对于之后数据建模的效果影响很大,中文词以及词组之间的界限比较模糊,往往分词阶段就成了文本情感分析与主题提取的重点,因此根据数据集的特征而选择合适的分词方式显得尤为重要;第四阶段就是构建情感模型阶段,此阶段主要是将问题转化为机器学习问题,使用数据进行训练,生成情感倾向模型,然后为了深入了解哪些问题是用户所满意或者不满意的,需要对语义分析后的数据进行潜在狄利克雷分配(lda)主题构建,寻找到正面或者负面的潜在主题,然后对产品进行相应方面的改进或对电商平台进行完善。

如今对于中文短文本的情感分析,大多是基于中文分词的基础上进行的,但是中文在使用中会存在一些反问或者双重否定等修辞手法,例如:“不是不可以”,“为什么这么多人都觉得好啊”,或者前半段表否定,后半段表肯定的一些复杂语义句式:“质量不好,外观也不好看,但总体还是很实惠的。”,对也这些发杂一些的中文句式,使用大多数的情感丰富方法往往都会得出一些中立的甚至相反的结果,对于情感模型的产生会产生较大的偏值影响,中文往往语义重要性要大于文字本身。

因此仅仅通过简单的中文分词以及对于这些词构建神经网络只能简单的分析短文本评论的字面语义,但是评论文本的整体语义却丢失了他本身的信息量,甚至于产生的结果与句子本意是相反的态度。



技术实现要素:

针对上述问题中存在的不足之处,本发明提供一种基于机器学习的商品评论数据的情感分析方法。

为实现上述目的,本发明提供一种基于机器学习的商品评论数据的情感分析方法,包括:

步骤1、商品评论数据的采集和抽取;

步骤2、数据预处理,所述预处理包括文本去重、机械压缩去词和短句删除;

步骤3、基于结巴分词方法对预处理的数据进行文本分词;

步骤4、构建情感分析模型:

步骤41、基于神经网络语言模型nnlm训练生成词向量;

步骤42、构建语义网络;

步骤43、基于lda主题模型进行语义挖掘,无监督的生成主题。

作为本发明的进一步改进,在步骤1中,使用八爪鱼采集器对商品评论数据进行采集。

作为本发明的进一步改进,在步骤1中,将抽取的评论数据存放为表格形式,并将数据保存为utf-8格式。

作为本发明的进一步改进,在步骤2中,所述文本去重采用编辑距离去重,所述编辑距离去重的阈值为2。

作为本发明的进一步改进,在步骤2中,所述机械压缩去词采用两个栈的方法。

作为本发明的进一步改进,在步骤2中,所述短句删除为删除字符串长度小于等于3的短句。

作为本发明的进一步改进,在步骤3中,所述结巴分词方法为python的结巴分词方法,python的结巴分词方法支持精确模式、全模式和搜索引擎模式三种分词模式。

作为本发明的进一步改进,在步骤3中,所述python的结巴分词方法采用精确模式对预处理的数据进行文本分词。

作为本发明的进一步改进,在步骤41与步骤42之间还包括:

步骤44、将词分为好评与差评两组结果集。

与现有技术相比,本发明的有益效果为:

本发明使用神经网络语言模型nnlm捕捉上下文语境,通过自带上下文语义的词向量来进行短文本语句的情感状况分析,这样就会使模型更加准确,使分词过后的词语涵盖更多的信息量;通过构建语义网络来使得分词后变得凌乱的句子结构重新整合起来,并且借助语义网络来直观的分析表示出特定产品以及电商的优劣点。通过判断相似性较高的词汇使用lda主题模型进行语义挖掘,无监督的生成主题,找到正面评价和负面评价中的潜在主题,为商品以及电商的改进提供可靠依据。

附图说明

图1为本发明一种实施例公开的基于机器学习的商品评论数据的情感分析方法的流程图;

图2为本发明一种实施例公开的概率公式的矩阵表示图;

图3为本发明一种实施例公开的iphonex评论的正负评论对比图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图对本发明做进一步的详细描述:

如图1所示,本发明提供一种基于机器学习的商品评论数据的情感分析方法,包括:

s1、商品评论数据的采集和抽取:

在对相关商品的评论数据进行情感分析之前,要做的就是对电商平台下评论数据的采集工作,但是采集工作应当做到简洁易操作,且不宜占用此分析方法的太多时间,在常用的一些爬虫工具进行对比后,本发明抓取数据集时采用的是八爪鱼采集器,只需通过图形化界面即可实现简洁的对于主流电商网站数据的抓取,通过输入要抓取的电商评论集的url(统一资源定位符)以及需要抓取的项,即可快速方便的爬取数据。

在爬虫工具抓取了大量数据之后,本发明需要对相关数据进行抽取,本发明所采用的示例是对某电商平台下的手机进行评论情感分析的,因此需要抽取的数据是有关某一款手机的评论数据,对于这一款手机进行分析,多组手机评论进行分析比较,将评论数据抽取为多个品牌的手机,存放为表格形式,并将数据保存为utf-8格式。

s2、数据预处理:

在爬虫工具抓取了数据之后,需要对这些数据进行基本的清洗以及预处理操作,使得数据变得更加的有价值,将对结果无影响或偏差值较大的评论数据条目滤除掉,数据预处理对最终期望得到的结果是至关重要的。本发明采用的数据预处理主要包括依次进行的三部分:文本去重、机械压缩去词、短句删除操作。

文本去重

电商平台上有很多的评论是重复的,这些重复的评论主要有三种来源:

1)电商为方便用户评论而自设的评论数据,有些用户在消费之后长时间内没有发表评论,或者只打了分数而没有评论,电商往往针对这种现象设置程序进行自动机械的评论。

2)同一个用户同样的评论,同一个用户可能购买多款手机或其他同类产品,为了方便可能多条商品的评论是使用同样的或者相近的评论的,这些评论即使是有价值的也只需要保留一条或全部删除。

3)不同用户同样的评论,在正常的情况下不同用户对同款商品的评论是不应该完全重复的,如果不同人的评论完全重复,情况虽然可能是多种的,但是对于结果集来说,只需要保留1条有用的即可。

判断文本相似度的方法,主流的技术包括:simhash算法去重,编辑距离去重,基于k-shingling去重等等。在考虑各个方法的优劣情况后,本发明采用的是阈值较小的编辑距离去重:编辑距离是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。如果阈值设置过大,会导致很多错删,而设置过小则会导致数据的丢失,考虑到评论数据是短文本以及多重复的,因此本发明中使用的阈值为2,即低于2的编辑的评论是需要删除一条的。

机械压缩去词

电商商品评论数据中脏数据多种多样,而另一种常见的数据就要算机械重复评论了,这类评论语料存在连续的重复,多是消费者在消费后为了凑够评论字数而进行的无意义机械重复评论,这类评论用户多对评论不抱有真正的兴趣,可能为了省事就进行这样的评论。

机械压缩去词需要做的就是要将连续累赘重复的语句进行压缩,具体压缩方法本发明采用两个栈的方法,先将一个国际字放入第一个栈中,判断后一个字是否与栈底元素相同,如果不同则压栈;如果相同则加入到第二个栈中,然后读入相同长度的字符入栈,然后判断两个栈的内容是否完全相同,如果相同则清空第二个栈。但是这样的判断存在重大的问题在于类似于“好好学习”这样的词语,因此需要设置栈的长度大于等于2的情况下再触发判断,但是也会出现“真真真好用”这样的评论,因此如果字符与第一个栈底元素相同,第二个栈也有元素时,需要判断是否重复。考虑上述几种情况后便可以完成机械压缩去重了。

短句删除

字数过少的信息往往很难涵盖对结果集有帮助的信息,因此需要将字数过少的评论数据删除掉,同时经过上述的机械压缩去重后的句子甚至长度只有1或2,为此,本发明将字符串的长度小于等于3的短句都过滤掉。

s3、文本分词:

中文文本分词是中文自然语言处理所特有的处理步骤,中文中对于句和字是很好辨认的,然而中文的词却没有明确的界限来划分,甚至于大量的网络用语,中文新词随时随地的产生着,因此一个好的中文分词对后续建模有着重要的影响。

针对现有分词方法存在的缺陷,本发明采用python的结巴(jieba)分词方法,来对评论数据进行分词,支持三种分词模式:

1)精确模式,试图将句子最精确地切开,适合文本分析;

2)全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;

3)搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

例如:对“刚入手的8p。比安卓强多了就是好不得不佩服苹果系统。用了一个星期才来评价的”进行文本分词,其中:

精确模式:

cut(“刚入手的8p。比安卓强多了就是好不得不佩服苹果系统。用了一个多星期才来评价的”,cut_all=false)

分词结果为:

“刚/入手/的/8p/。/比安卓强/多/了/就是/好/不得不/佩服/苹果/系统/。/用/了/一个多/星期/才/来/评价/的”。

全模式:

cut(“刚入手的8p。比安卓强多了就是好不得不佩服苹果系统。用了一个多星期才来评价的”,cut_all=true)

分词结果为:

“刚/入手/的/8p//比/安/卓/强/多/了/就是/好/不得/不得不/佩服/苹果/系统///用/了/一个/一个多/多星期/星期/才/来/评价/的”

cut()方法有两个参数,第一个参数为需要分词的字符串,cut_all参数用来控制是否采用全模式,在对比了这三种模式后本发明采用短文本分词效果更好的精确模式,同时也支持繁体分词以及支持自定义词典,本发明可以指定词典,以便包含结巴词库里没有的词。虽然结巴有新词识别能力,但是自行添加新词可以保证更高的正确率。

s4、构建情感分析模型:

s41、训练生成词向量:

在中文语言中,存在着很多近义或相似意思的词,为解决这样的问题,需要用distributedrepresentation表示的词向量,不同的训练方法或语料库训练会得到不同的词向量,最终的结果会使词义相近的词向量距离也比较近,词义相关不大的距离也比较远。本发明中采用google开源项目word2vec来对文本数据集进行训练,利用神经网络来为词语寻找一个连续向量空间中的表示,也就是将词放在句子中来理解,这样同一个句子中的词就不是孤立的词。

采用n-gram语言模型,使用前n-1个词向量来预测下一个词,即第n个词,然而n-gram存在过于依赖语料的缺点,同时这种模型无法建模出词之间的相似度,有时候两个具有某种相似性的词,如果一个词经常出现在某段词之后,那么也许另一个词出现在这段词后面的概率也比较大,而第一个词训练的语料中组合多,第二个词预料中少,则第一个词的概率就会大很多。

为了解决这种问题,本发明采用神经网络语言模型nnlm来建立这种预测概率模型:

nnlm起初是用一个三层的神经网络模型:输入层,隐藏层,输出层。其中输入层就是用于预测的n-1个m维的词向量,而隐藏层就是需要得到的词相关向量,是到输出层前的参数,而这个副产物即是所需要的词相关性向量。

s42、构建语义网络:

由于分词会使得语句整体结构变得凌乱,从而使对相关产品的复杂分析变得不合实际,因此必须采取一些方法使这种凌乱的词组重新整合起来,使复杂的分析变得简单,这样本发明采用语义网络来使数据分析变得方便,特别是在判定产品的优缺点,电商平台的有缺点上很方便。

构建语义网络之前需要采用一些方式将词分为好评与差评两组结果集,因为好评与差评所关注的点是不一样的,所反映的信息也是不同的,所以将好评与差评分别建立成好评语义网络以及差评语义网络。

s43、lda主题模型分析:

lda相当于是在句子即字符串的基础上做聚类,将不同句子聚类为几个主题。传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如tf-idf等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的。

举个例子,有两个句子分别如下:

“乔布斯离我们而去了。”

“苹果价格会不会降?”

可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文本相关性的时候需要考虑到文本的语义,而语义挖掘的利器是主题模型,lda就是其中一种比较有效的模型。

在主题模型中,主题表示一个概念、一个方面,表现为一系列相关的单词,是这些单词的条件概率。形象来说,主题就是一个桶,里面装了出现概率较高的单词,这些单词与这个主题有很强的相关性。

怎样才能生成主题?对文章的主题应该怎么分析?这是主题模型要解决的问题。

首先,可以用生成模型来看文档和主题这两件事。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的。那么,如果我们要生成一篇文档,它里面的每个词语出现的概率为:

这个概率公式可以用如图2所示的矩阵表示:

其中”文档-词语”矩阵表示每个文档中每个单词的词频,即出现的概率;”主题-词语”矩阵表示每个主题中每个单词的出现概率;”文档-主题”矩阵表示每个文档中每个主题出现的概率。

给定一系列文档,通过对文档进行分词,计算各个文档中每个单词的词频就可以得到左边这边”文档-词语”矩阵。主题模型就是通过左边这个矩阵进行训练,学习出右边两个矩阵。

一般来说每一则评论都存在一个主题,如果某个潜在主题同时是多则评论所共同关注的热门关注点,而潜在主题中约高频的特征词越有可能成为热点话题关注的词,而这些关键词往往就是关键点信息,能为电商平台或者产品提供改进意见以及了解竞争优势所在。

s5、实验模拟:

上面对情感分析方法做了阐述,接下来要针对此方法进行模拟实验,得出想要的情感主题分析以及主题关键词。本发明主要针对京东商城平台下的iphonex手机产品评论做相关情感分析,采用本方法来综合分析产品的优劣点,以及对电商平台和产品改进意见及优势竞争力做出分析,图3为iphonex评论的正负评论对比,表1为iphonex评论的潜在主题。

表1

综上主题中的高频词可以看出,iphonex手机优势体现在脸部外观,边框以及质量上,而用户抱怨点体现在物流地址配送,不习惯,厚度上,以及存在有黑屏的问题。

本发明考虑文本中单词的同义词及上下位词,同义词及上下位词根据相似度增加各自词频,从而减少多词同义对分类的影响。不同于一般方法中对一个特征矩阵以单一方法做特征提取,本发明通过nnlm对词进行词向量表示,使得每一个词都能涵盖语句的上下文信息量,将词放到句子中理解,之后通过情感主题模型对语句的主题进行聚类分析,无监督的生成主题,可以找到评论数据中用户所关心的潜在主题,为商品以及电商的改进提供可靠依据。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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