基于AdaBoost算法的情感分析研究

源码下载  http://www.byamd.xyz/hui-zong-1/

基于AdaBoost算法的情感分析研究

摘 要

随着互联网的快速发展,各类社交媒体平台如微信、QQ等也与日俱增,而微博更是集成了传统网站、论坛、博客等的优点,并加上了人与人之间的互动性、关系亲密程度等多种智能算法,并以简练的形式让数据爆发性的传播,促进了人与人之间的交流。网民可以通过微博来分享自己的生活,同时抒发自己的喜怒哀乐。因此对微博每天产生的信息量的分析和利用的需求显得更为迫切。

情感分析,也称倾向性分析、意见抽取和意见挖掘。主要是通过对带有情感色彩的主观性文本进行分析、处理、归纳然后进行推理的过程。而微博,人口基数大,涉及的话题广泛,对人们的日常生活产生了不可估量的影响,而对微博的情感分析,更是有着十分重要的意义。为此,本文针对了微博文本的情感分析进行了如下几个工作。

首先,使用微博官方的API对微博进行抓取,进行分类标注。然后,对微博文本进行预处理,主要包括去掉无意义,对微博文本没有影响的词语。其次,使用SVM算法对文本进行初步的筛选,主要是去除特别明显的广告等无关性的微博。最后使用朴素贝叶斯对微博进行情感分析,将微博分为积极、消极、客观三类,同时使用AdaBoost算法对朴素贝叶斯算法进行加强。

这些带有情感信息的微博是非常宝贵的资源,通过情感分析可以获取网民的此时的心情,对某个事件或事物的看法,可以挖掘其潜在的商业价值,还能对社会的稳定做出一定的贡献。

关键词:情感分析 AdaBoost 朴素贝叶斯 文本分类 数据挖掘

Research of Sentiment Analysis based on AdaBoost Algorithm

ABSTRACT

With the rapid development of Internet, various social medias like WeChat, QQ
and Weibo are also growing with each passing day. Weibo which not only
integrates the advantages of traditional websites, forums, blogs, but also leads
into the introduction of a comprehensive interactive relationship between
content, quality of intimacy and multiple algorithm promote the data
communication explosively. And people can communicate more and more
conveniently. Users can share their own lives by Weibo, and express their
emotions. So, the need for analysis and use of information generated by Weibo
every day is urgent.

Sentiment analysis is a process of analyzing, summarizing and reasoning
subjective texts with emotion. And Weibo, based on a large population ,
involving a wide range of topics, has a great impact on people’s daily life. And
the emotional analysis of Weibo is a very important significance. In result,
this paper focuses on the emotional analysis of Weibo text as follows.

First of all, micro-blog’s official API is used for micro-blog crawl and then
classifying weibo. After that, the Weibo text needs to be preprocessed by
removing meaningless text, which does not affect the words. Secondly, the SVM
algorithm is used for the preliminary screening of the text, mainly to remove
the particularly obvious advertising and other unrelated with Weibo. Finally,
using Bayes algorithm to analyze Weibo. Weibo text is divided into three types:
positive, negative and objective, and AdaBoost algorithm is used to strengthen
the Bayes algorithm.

The emotional information of Weibo is a very valuable resource. Through the
analysis of Internet users, we can get emotional feelings, views of things or
events at this time, also we can mine the potential commercial value and make a
contribution for social stability.

Key Words: Sentiment analysis AdaBoost Naive-Bayes Text Categorization Data
Mining

前 言

随着互联网的快速发展,各类社交平台越来越流行,甚至开始占据人们的大量时间,每天产生的信息量也与日俱增,对其分析与利用也迫在眉睫。而微博,不仅给予了用户更自由、更快捷的方式来进行沟通、表达观点、记录心情等,逐渐发展成了国内最热门的社交平台之一。根据去年的微博财报显示,自微博上市以来,其月活跃用户数量已经连续了11个季度保持了30%以上的同比增长,2016年,微博活跃用户数量整年净增达到了7700万,达3.13亿,同时,日活跃用户数也增长到1.39亿[1]。由此可见,微博的强大影响力已经深深的吸引了更多的人加入。而对微博的情感分析,不仅可以获取网民的此时的心情,对某个事件或事物的看法,还可以获取其潜在的商业价值,还能对社会的稳定做出一定的贡献。

情感分析(Sentimentanalysis),也称意见挖掘(Opinion
Mining),主要是对带有感情色彩的主观性文本进行分析、处理、归纳然后进行推理的过程,例如对产品,话题,政策的意见[2]。利用这些分析的结果,消费者可以深入了解商品的实用性,从而优化购买的决策,同时,生产者和经销商可以改善自己的服务,从而赢得竞争的优势。随着信息时代的到来,越来越多的公司开始组建数据分析团队对自身公司的数据进行挖掘、分析。比如某服装公司想调查自己制作的服装的受喜爱程度,就可以从服装的评论入手,挖据文本内容,判断留下评论的用户对服装的喜好态度,积极的、消极的或者是中性的评价。

情感分析作为Web挖掘中新兴的一个领域,对其不同角度的研究也越来越多,比如识别商品评论的信息、判断客户的褒贬态度等。姚天昉[3]等人对情感分析的研究现状做了如下总结:①首先,介绍情感分析的定义和研究的目的;②从主题的识别、意见持有者的识别、情感描述的选择和情感的分析四个方面进行评述,并介绍了一些成型的系统;③讨论中文情感分析的研究现状。而本文将要从微博的符号、词语等粒度上,用情感分析的方法对微博文本进行分类。

虽然研究者在文本挖掘展开了越来越多的研究,但是对各个领域的深入挖掘依然处在探索阶段。而微博,作为一个越来越吸引用户的社交平台,涉及的内容十分广泛,如娱乐、影视、体育等,不同内容针对不同的领域都有着不可忽视的影响。本文主要结合文本情感分析领域的研究结果以及现有的微博情感分析方法,将对微博的情感分析分为四大类:文本预处理、SVM过滤无关信息、进行情感分类、加强分类算法。

第一章 概述

1.1 研究背景和现状

随着互联网的快速发展,互联网在平民百姓中显得极其重要,人们从只能口述交流、到写信、再到现在电话语音交流,而互联网应用集合了以前交流方式,提供了更加快捷方便的功能让人们的交流越来越方便。微博是当下热门的互联网应用之一,其用户日趋增长,每天微博产生的信息量也越来越大,不仅仅在热点事件中有着不可估量的影响力,而且已经深入了网民的生活中,成为了用户不可缺少的一部分。于是,对微博的文本挖掘研究产生的价值也随之上升。

情感分析,正成为各界关注越来越关注的领域,主要用来识别一段文字的情感倾向。现实中,文本中能够看出人们表达出来的情感是十分复杂的,目前的自然语言处理的研究一般将倾向性划为正向和负向,这种研究方法使得情感分析与机器学习结合相当简便。通常情况下,对某些文本进行情感标注,之后划分为训练集和测试集,使用机器学习方法来进行分类,然后优化算法,最终得到分类结果。

1.2 情感分析的概念

情感分析,顾名思义,又被称为倾向性分析和意见挖掘,通常使用带有情感色彩的词语对文本进行分析、处理、归纳、推理等过程[4],如:从购物网站上分析用户对某一件商品是好是坏的过程,从电影评论网站上分析用户对某部电影的评价,从音乐平台上的评论来鉴赏网民对某首音乐的喜爱程度等。其中,斯坦福通过公共平台如Twitter分析网民在2008~2009年金融危机的心情[3],如图1.1。

图1.1 Twitter用户的情感

同时,也有一些网民使用Twitter来分析了各个州的网民对2016年特朗普和希拉里的美国总统选举的支持[6]。

https://dn-anything-about-doc.qbox.me/document-uid291340labid2380timestamp1482877939765.png/wm

图1.2 每个州对希拉里的情感

https://dn-anything-about-doc.qbox.me/document-uid291340labid2380timestamp1482878032809.png/wm

图1.3 每个州对川普的情感

当下,情感分析的任务一般采用机器学习来进行分类。例如在一般购物网站中,一般都有商品的评论,因此使用其作为机器学习标注后的文本,之后使用机器学习方法来分类,最终构建一个情感分类器来对其他评论进行预测。但是对于微博这种数量庞大的互联网文本,想要对大量的微博进行标注是几乎不可能的,只能使用少量的人工标注的微博文本来进行机器学习。

目前,机器学习对情感分析的分类受制约的还是多种情绪的表达,以及网络新兴的流行的词汇等。由此可见,构建情感词典显得特别重要,在微博预料中需要全面高效的捕捉情感的基本单元,才能准确的计算出每条微博的情感倾向。使用机器学习进行情感分析的一般流程如下图1.4所示。

图1.4 情感分析一般流程

1.3 本文的内容安排

论文全文分为6章:

第一章主要是介绍研究的背景和研究现状、情感分析的概念等研究工作,指出这些工作在当前问题下存在的不足,并基于此提出该研究的关键问题。

第二章对微博的获取与清理,讲解了如何通过微博API的获取Token,然后模拟登录获取最新微博,最后介绍了微博的文本预处理,主要去除掉了对微博分类有影响的字符和无关信息,为开展研究提供支持。

第三章介绍了使用svm对微博的初步分类,主要分为无关类和有关类,无关类主要包括广告、无关字符(如韩文日文等)、重复字段(如分享图片)等。

第四章针对微博进行标注,然后选取特征词,在使用贝叶斯分类,将微博分为积极、消极、中性三个分类。

第五章讲解了如何使用了AdaBoost来加强贝叶斯分类器的分类效果,同时对AdaBoost二分类和多分类的问题进行了讨论。

第六章总结本论文的研究内容,并对可能的研究方向进行展望。

第二章 微博的获取与清理

2.1 概述

从上一章的研究背景所述,微博已成为社交平台的十分突出的新媒体。该平台以特定的方式授权开发者获取微博的部分数据,以此让开发者分析、发布、处理等,并且能够让开发者深入研究和商业运作。

针对微博数据的抓取和存储,目前主要有两种方式:

(1)根据微博官方提供的API接口。这些接口基于REST实现的HTTP协议,以JSON结构化的方式作出响应。但是,这种接口需要一定的权限,还有接口的请求频次限制次数,甚至对于接口的限制的速率限制。

(2)基于微博网页的解析。这种方式需要解析网页,如果网页代码有改动,响应的抓取方式也要有改变,对于大量的抓取,需要破解微博的反爬虫机制(使用代理ip,不同账号等)。

2.2 微博的反爬虫机制

防止爬虫一般从三个方面入手:分析网页请求的headers,监督用户访问网站的行为,调整网站中的目录和数据加载的方式。前面两种比较常见,大部分网站都是从这两个角度来反爬虫。第三种会应用一些ajax来反爬虫。

2.2.1 通过Headers反爬虫

目前,一般网站都会检测网页请求中Headers的User-Agent,有的甚至还要检查网站的Referer。如果遇到这类反爬虫机制,我们可以直接在代码中添加Headers和Referer以此来绕过检查。对于这些网站,在代码中添加或修改其中的Headers和Refer就能很好的绕过。

2.2.2 基于用户行为的爬虫

用户访问网站的行为也是目前主流网站常用的检测手段,比如:同一IP在短时间内多次访问了同一个页面,还有的事同一个账户短时间内多次进行相同操作。对于这种情况,我们可以使用IP代理来解决。现在网上有收费的和免费的IP代理,我们可以爬去这些IP代理存储起来,然后每请求几次就更换一次IP。

2.2.3 动态页面的反爬虫

还有一部分网站,数据是通过ajax或者js请求生成的。我们可以使用浏览器对访问网站中的请求的进行分析。如果能找到ajax请求,分析其含义后可以使用上面两种方法解决,获取对应的数据。

如果不能获取ajax的请求,可以调用selenium+phantomjs框架,调用其浏览器内核,来模拟人为操作以及触发页面的js脚本。

2.2.4 微博的反爬虫

微博中的反爬虫使用了以上三种机制,验证客户端的Headers,同时对访问量多大的同意IP进行禁止访问,使用Ajax进行数据传输。要想破解此类爬虫,必须使用IP代理ÿ

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值