您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 运用传统方法进行大众评论的情感分析问题(基于python语言)
题目:运用传统方法进行大众评论的情感分析问题作者:刘小文2015届上海大学本科毕业论文摘要本文介绍了通过基于python自然语言处理的中文文本分类流程,通过对大规模的真是语料,大众评论,基于传统方法,利用python的Scrapy爬虫抓取,预处理,再使用jieba进行文本词语的分类使得用户评论变得可处理,在基于Gensim的Word2vec的工具箱下将文本分词矢量化,使得具有维度,将矢量化的文本进行特征提取,从而实现传统方法进行情感分析,并将结果呈现出来。关键词:python文本分类语料分析Word2vecAbstractThispaperintroducesthepython-basednaturallanguageprocessingChinesetextcategorizationprocess,bylarge-scalereallycorpus,userreviews,basedontraditionalmethods,theuseofScrapypythonreptilescrawl,pretreatment,andthenusejiebafortextwordstheclassificationprocessmakesuserreviewsbecomeavailableinGensimbasedtoolboxWord2vecthetextwordvectorizationsoastohaveadimension,thevectorizationoftextfeatureextractioninordertoachievethetraditionalmethodsofsentimentanalysis,andtheresultsarepresentedcomeout.Keywords:pythontextclassificationcorpusanalysisWord2vec1引言1.1文本分类流程人们快捷人们的生活越来越依赖于大数据。在这个时代大数据,谁能够掌握大量数据的,谁就在这个信息时代拥有更多的话语权。互联网信息资源的开发,使之与文本分类的混合情绪已经成为研究信息的热点地区之一。在自然语言,特别是在文本分类的研究,理论和DG的实践之间的研究紧密结合彼此:自然语言理解,机器学习,特征提取和文本分类的其他领域奠定了情感分析坚实的理论基础;和文本分类是由于在该领域的非常实用的研究,在互联网上爬行,预处理的文本,该文本,矢量化的话,最后的特征提取操作都离不开大量的练习来进行测试。在各种自然语言处理,编程语言,蟒蛇算是后起之秀,Python语言简洁,可读性和可扩展性强。Python中也有一个有钱有势的图书馆,经常被称为胶水语言,能够很容易地与其他语言(特别是C/C++)制成各种模块连接在一起。对于MATLAB,Python入门成本较低,但也更容易学习,更严格的语言公开征求意见程序,用传统的语言处理方法,获得文本的特征值,从而在大数据的情感分析到达处理可以有很多实际的一个1.2传统情感分析方法传统的情感分析方法有很多,但最流行的是衍生品的SVM(支持向量机),朴素贝叶斯(贝叶斯)和最大熵(最大熵)三种分类算法,三种算法不断,让越来越多的订单丰富多彩情感分析,下面将简要地考察三种方法。1.2.1支持向量机SVM在机器学习领域,支持向量机(支持向量机)是一种监督学习模式通常用于模式识别,分类和回归分析。SVM有两个主要的想法:首先是要用于非线性点线性分析的情况下,通过使用低维空间的非线性映射算法线性不可输入样本转换成高维特征空间,以便它线性地可分离以便使用可能样品的线性分析的非线性特性的第一算法的高维特征空间。第二机制是基于以上在特征空间最佳分割的超平面构造风险最小化的SVM理论,使学习者获得全局优化,并在整个样本空间中的预期风险满足一定的概率的上限。1.2.1.1SVM的一般特征1.SVM学习问题可以表示为一个凸优化问题,所以你可以用已知的找到目标函数的全球最低有效的算法。其他分类方法(如基于规则的分类和人工神经网络)都采用基于贪心学习策略来搜索假设空间,这种方法一般只能局部最优解。通过最大化决策边界边缘,以控制模型的能力。然而,用户必须提供额外的参数,如利用核函数类型和引进松弛变量。.通过引入虚拟变量为每个类别属性数据,SVM可应用于分类数据。SVM一般只在两种类型的问题地使用,对于许多类型的无效的问题。为了选择不同的内核的功能,可以产生不同的SVM,一般有以下四种⑴线性核K(X,Y)=X•ÿ;⑵多项式核K(X,Y)=[(X•Y)+1]^D;⑶径向基函数K(X,Y)=EXP(-|x-y|^2/D^2)⑷核心层的神经网络K(X,Y)=正切(A(X•Y)+B)。相应的内核功能没有问题选择6.SVM更加困难,分类精度的更复杂的问题是不是很高以及大型分类问题训练时间长。1.2.2最大熵最大熵是最符合的随机变量客观情况的标准的统计特性的一个选项,所述量的概率分布是难以测量,通常只能得到各种已知或意味着在某些限定的条件的值,用这些测量分布一致值可以有多种,以及无限多种,在一般情况下,其中在最大熵分布。这种选择具有最大熵分布作为随机变量的分布,是一种有效的治疗方法和准则。虽然这种方法是有些主观的,但可以认为,最符合的客观情况的选项。最大熵(对应于我们的最大的复杂性),如科学技术的各个领域的使用原理或方法的问题是旗手约翰尼E.T.Jaynes。但对于不同的熵函数中添加不同的约束,那么如何界定人为限制将变得非常困难,而对于物理意义的约束,给出合理的解释,因此可能已经看到了最大熵或进一步需要解决1.2.3贝叶斯贝叶斯分类分类原则是通过使用贝叶斯公式计算的后续体验的概率,即,该对象属于某个类别的概率的对象的先验概率,选择具有最大后验概率作为对象的类类属。贝叶斯网络是一个概率意见向无环图,图中的每个节点代表一个随机变量,两个节点之间的数字,如果有一个圆弧,则对应于一个随机变量的概率两个节点是相关的,反之则表示两个随机变量是独立的条件。任何网络节点X有一个相应的条件概率表(条件概率表,CPT),来表示每个可能的节点X的条件概率在其父当节点需要的值。如果节点X没有父节点,CPT为X的贝叶斯网络结构的先验概率分布和每个节点的CPT定义的概率分布网络变量。贝叶斯分类器是分类的贝叶斯网络。网络节点应该包括在类C,其中C是从该组的类(C1,C2,...,厘米)导出的值,还含有一组节点,X=(X1,X2,...XN,),表明分类特征。为贝叶斯网络分类器,如果被分类D的样本中,分类特征为x=(X1,X2,...,Xn)时,则属于该类别词的样品D概率P(C=CI|X1=X1,X2=X2,...,Xn=×n)个中,(i=1,2,...,M)应满足下面的公式:P(C=CI|X=X)=最大{P(C=C1|X=X),P(C=C2|X=X),......,P(C=cm|X=X)}并通过贝叶斯公式:P(C=CI|X=X)=P(X=X|C=CI)*P(C=CI)/P(X=X)其中,P(C=CI)通过本领域专家的经验获得的,和P(X=X|C=CI),以及P(X=x)的计算更加困难。2.Scrapy爬虫抓取由于本文是基于Python语言进行传统方法上的情感分析处理,那么在大众评论,即网页抓取上用的就是Scrapy爬虫抓取,下面来讲解一下Scrapy:如在示意性Scrapy一般框架所示,在中间是指发动机部件Scrapy,Scrapy引擎用于控制整个数据处理系统中,首先初始化的URL开始,Scrapy引擎将URL到调度器模块,调度将合并为一个合法的下载请求被传递到模块--downloader下载,下载服务器获取的页面将返回到分辨率的“蜘蛛”后,蜘蛛一般有两种结果出来了:一是为进一步链接抓取,诸如“下一个”链接的需求,它们将形成由发动机传输调度模块的新请求;另一种是来从一个网页后,这个信息被发送到该项目管道(管道工程),项目管道的主要职责是负责处理来自Web项目吸引蜘蛛的信息,他的主要任务是明确的,验证和存储数据。当页面被解析蜘蛛,它将被发送到项目管道,和后几个特定的顺序处理数据。在项管道模块数据的后处理,例如,详细的分析,过滤和储存等的操作,以及各种模块之间的中间件,主要是处理模块之间的反应。和特定的数据处理步骤如下:1.打开发动机在域,域是意义的领域,单位的网络,有针对性地控制它的蜘蛛,蜘蛛和一个URL抓取的第一个请求域的独立运作。2.第一发动机得到的URL从“蜘蛛”爬行,并作为请求放在调度3.发动机调度请求到下一个URL4.接下来调度抓取网址返回到发动机,该发动机将通过下载中间件发送到URL下载,(请求)5.一旦完成页面下载,下载器,使用该下载页面来生成响应,并通过下载中间件发送到引擎(响应的方向)从发送到响应下载获得6引擎,并邮寄到“蜘蛛”蜘蛛通过中间件(输入方向)处理7.“蜘蛛”治疗反应和回报项目和一个新的请求到引擎8.“蜘蛛”发送引擎返回项目管道,派出“蜘蛛”的请求返回调度9.重复步骤,直到调度有没有剩余的请求,这次发动机关机域。Scrapy提供了许多功能强大的特性使拼抢非常容易使用,也很高效。如:支持内嵌HTML和XML源提取数据选择;内置支持出口数据以各种方式,包括XML,CSV和JSON;-介质的管道,用于自动下载并爬到项目相关的图像(或其它任何媒体);支持使用此类中间件,扩展和插件来扩展管道等Scrapy,要想在加入Scrapy自己的功能;有各种嵌入式中间件和延伸的,用于处理压缩,缓存,饼干,认证,用户代理欺骗,robot.txt文件处理,统计,爬行动物深度限制;一个交互式脚本抓取控制台(交互式刮外壳控制台),编写和调试爬虫非常有用的;一个Web管理控制台(Web管理控制台),以监视和控制爬虫;一个远程登录控制台(远程登录控制台),用于访问内部流程Scrapy不受限制的Python控制台调试你的爬行动物;一些用于记录(记录)的内置工具,收集统计(统计数据收集),并发送电子邮件通知(发送电子邮件通知)2.1Scrapy的功能模块Scrapy看起来很复杂,其实,不同意,使用scrapy框架抓取我们需要五个功能模块,包括“蜘蛛侠”工程管道,设置和中间件页面。“蜘蛛”模块,是scrapy核心模块,该模块将限定可变域和起始的URL,下一步需要被提取的链接规则,规章和提取数据从网页。开始网址,这样我们要提取的决定的信息,文本研究的主要对象是附着在买家评论情感价值,开始写一个URL基于爬行规则抽取确定种子,下一步规则需要提取链接和网页数据提取规则在我国的默认请求后实现的回调函数p的定义得到响应调用函数p,这里需要解析的网页,它返回两个结果。然后,我们显然要提取的资料哦,只要你需要分析网页的结构特点,以找到在网页中目标信息的平民,scrapy在使用XPath来描述路径,然后使用HtmlXPathSelector方法提供的提取相应的信息被发送到数据存储模块即可。“蜘蛛”模块来实现下一步的另一个重要功能是定义提取链接策略,这是解决该页面中的所有链接,我们只需要找到合适的位置。项目重新定义模块,你需要匍匐着scrapy领域将定义一个空类的框架,如:#-*-coding:utf-8-*-#Defineherethemodelsforyourscrapeditems#Seedocumentationin:#(Item):#definethefieldsforyouritemherelike:#name=scrapy.Field()url=Field()forum=Field()poster=Field()content=Field()图2:空类框架以上,调度程序将请求的URL下载器下载,下载后,将被转发到“蜘蛛”进行分析,分析出需要保存的数据被发送到项目,管道在那里,然后后处理的数据。
本文标题:运用传统方法进行大众评论的情感分析问题(基于python语言)
链接地址:https://www.777doc.com/doc-4826010 .html