版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1研究背景和意义现如今互联网技术发展迅速,随着网络信号变好变快,门槛降低,网络渗透到每家每户,每个人都可以在购物软件,论坛讨论,微博等平台诉说自己的观点,情绪,评估对诸如产品,服务,组织等实体的态度,譬如现在购买一个产品不再只是询问朋友或者家人的意见,还可以看评论和视频分析,自2000年初以来,情绪分析已经成长为自然语言处理中最活跃的研究领域之一。在数据挖掘,Web挖掘,文本挖掘和信息检索方面有广泛的研究。事实上,它已经从计算机科学蔓延到管理科学和社会科学,如市场营销,金融,政治学,通讯,医疗科学,甚至是历史,由于其重要的商业性引发整个社会的共同关注。这种扩散是由于意见是事实的中心,几乎所有的人类活动,在相当程度上,很在意别人怎么看。出于这个原因,无论何时我们需要做出决定,我们都会经常寻找别人的意见。这不仅是对企业而言对个人也是如此。这项技术最早的研究始于2003年Nasukawa和Yi两位学者的关于商品评论的论文。随着推特等社交媒体以及网络电商平台的发展而产生大量带有观点的内容,给情感分析提供了所需的数据基础。例如在商品售卖领域,用户的评价对于零售商和生产商都是非常重要的反馈信息,通过对海量用户的评价进行情感分析,可以知道产品的优劣性。文本情感研究是计算机语言学、人工智能、机器学习、信息检索、数据挖掘等交叉领域的研究热点,具有高度综合性和实用性。文本情感分析就是对文本的显性主观性或隐性关联性信息进行分析,让机器能快速高效的阅览大量数据并分析数据内含的情感,为自然语言处理的研究提供有效帮助。而NLP在诸多实际应用如个性化推荐系统、信息安全过滤系统、网络用户兴趣挖掘、网线预警系统等的决策制定中都有产生带来巨大的经济、社会效益。为此,对文本情感识别具有重要的学术研究意义及社会经济价值。据估计,世界上80%的数据都是非结构化的,没有以预先定义的方式组织。其中大部分来自文本数据,如电子邮件,票据,聊天,社交媒体,调查,文章和文档。这些文本通常难以分析,理解和分类,既费时又费钱。情感分析系统能够让公司,通过自动化业务流程,获得可操作的洞察力,以及节省数小时的手动数据处理来理解这种非结构化文本,也就是说,通过提高团队效率。情感分析的优点如下所示:可扩展性:您能想象通过成千上万的推文,用户对话或用户评论手动排序吗?手动处理的话,数据太多了。情感分析允许以有效且低成本的方式大规模处理数据。实时分析:我们可以使用情感分析来识别关键信息,以便在特定情景中实时提供态势感知。社交媒体即将爆发公关危机吗?一个愤怒的客户即将流失?情感分析系统可以帮助您立即识别这些情况并采取行动。一致的标准:人类没有观察到评估一段文字情感的清晰标准。据估计,在判断特定文本的情感时,不同的人仅仅在60-65%的情况下同意。这是一项主观任务,深受个人经历,思想和信仰的影响。通过使用集中情感分析系统,公司可以对所有数据应用相同的标准。这有助于减少错误并提高数据一致性。1.2国内外研究现状情感分析按照处理文本的粒度不同,大致可分为词语级,句子级和篇章级三个研究层次。在早期做出卓越贡献的有Turney和Pang,他们运用了多种方法探测商品评论和电影评论的两极观点,他们延伸了此前的基础呈现两极观点,将电影影评分类并将情感分数细分,Snyder也就参观评论做了深度分析,从多种方面评测其分数,即在一个五星的等级制度上进行评分,在分类中分出“中性”来提高分类算法的整体准确率。在国内,陈国兰通过分析微博文本的特点,结合网上开源的情感词典构建了一个适合微博文本分析的情感词典,然后基于微博情感句对文本进行语义规则分析。最后基于标注好的语料构建相关词典。吴杰胜等人对情感词典进行了改进与扩充。并将句间分析规则和句型分析规则考虑到情感分析中,然后通过结合情感词典和规则集对微博文本进行情感分析。杨小平等人通过采用神经网络语言模型对中文语料进行统计分析,提出一种基于转换约束集的多维情感词典自动构建方法。1.3机器学习简介机器学习是将情感分析问题转化为分类问题,判断出语句所蕴含的是积极情绪还是消极情绪。机器学习方法训练的具体步骤:首先对数据集进行标注,将数据集分为积极和消极两类,提取情感特征,然后用训练数据集进行训练,构造情感分类器,最后用分类器对待分类的文本进行情感倾向性分析。机器学习的研究方向主要包括决策树、随机森林、人工神经网络、贝叶斯学习等方面的研究,常用的比较成熟的机器学习分类方法有朴素贝叶斯、支持向量机和最大墒模型。基于机器学习:是指选取情感词作为特征词,将文本分词,运用停用词表将停用词去除,利用SnowNLP,朴素贝叶斯,支持向量机等方法进行文本分类,训练出模型。最终分类效果取决于训练文本的选择以及正确的情感标注。我们采用SnowNLP来将数据进行情感分析测试。伴随着大数据和人工智能的兴起,Python这门“古老”的语言重新焕发出了青春。其实Python一直是一门优秀的编程语言,不仅简洁、易用,而且功能强大,它能做到的事情太多了——既可用于开发桌面应用,也可用于做网络编程,还可用于开发Web应用,甚至可以开发移动App。可能正因为它能做到的方面太多,反而显得没有特别突出的一面。现在情况发生了改变,Python不仅可以做那些常规的应用,还可以编写大数据和人工智能这两个被认为高大上领域的程序,下面我们简单介绍Python的相关情况。Python由Guidovanrossum于1989年年底出于某种娱乐目的而开发,Python语言是基于ABC教学语言的,而ABC这种语言非常强大,是专门为非专业程序员设计的。但ABC语言并没有获得广泛的应用,Guido认为是非开放造成的。Python的“出身”部分影响了它的流行,Python上手非常简单,它的语法非常像自然语言,对非软件专业人士而言,选择Python的成本非常低,因此某些没有计算机相关知识的人,往往会选择Python作为编程语言。Guido在Python中避免了ABC不够开放的劣势,Guido加强了Python和其他语言如C、C++和Java的结合性。此外,Python还实现了许多ABC中未曾实现的东西,这些因素大大提高了Python的流行程度。
2数据预处理2.1获取数据可以通过下载网上已整合的评论数据,或者通过爬虫来爬取数据,爬取微博评论前需要安装Python的mongodb、selenium、pymongo、Pillow、lxml等数据包,基于Scrapy框架构建爬虫框架。给定初始的url地址即所选网站的地址,爬虫工具就会将该页面下载下来,并解析该页面的信息,得到该页面的微博数据,同时产生下一页的地址,并接着去抓取下一页数据。最后数据会存入Mongo数据库,数据导出的格式为CSV格式。首先需要将人类的自然语言表达评论将其有效的替换成计算机能够识别并准确分类的格式。其中较为重要的几项技术分别是分词技术、停用词过滤技术、词性标注、文本表示方法、特征提取这五种。将这五种技术融合在一起能够帮助计算机对微博评论情感倾向进行有效、准确的分类。得到情感标签后,计算每个词在全部文本、积极文本和消极文本的频率,用以训练新的模型。读入数据框处理工具pandas,将所选本地数据读入,利用SnowNLP库所含有的功能模块进行分词,SnowNLP是受到TextBlob启发而写的,其中SnowNLP是针对中文,TextBlob是针对英文的。然后进行词性标注和断句,而后进行情感分析,之后会返回一个值,返回值为正面情绪的概率,越接近1表示正面情绪,越接近0表示负面情绪。本文系统的情绪分数结果会显示在窗口上,并且会生成一个结果文件到指定路径方便查看,并收集保存资料,可用于训练模型。2.2数据处理2.2.1分词中文自动分词是指根据某些规范将连续的、没有分割标记的字符串或序列重组为词序列的过程。词是中文表达语义的最小单位。在中文自然语言处理中,最重要的基础步骤就是对文本进行分词,分词的结果对中文信息处理至为关键。互联网绝大多数应用都需要分词,典型应用实例有汉字处理、信息检索、内容分析、语音处理等。在英文中,词与词之间通过特定的间隔标记符分割(空格和标点符号),遍历文档便能获得单词列表。但中文与英文不同,中文是以字为单位,两个或多个字组合成词,词与词之间没有间隔。在文本分析中,首先遇到的问题就是分词问题,分词效果的好坏将直接影响分类模块的效果.因此对文本进行正确切分是自然语言处理中的必要条件。主流的分词方法有:基于字符串匹配的分词方法、基于统计的分词方法、基于规则的分词方法、基于字标注的分词方法等。分词可以让计算机更好的来识别词语的性质,比如“我非常高兴”,其中“高”与“高兴”,两者关联性不大,前者作为单字时基本没有情绪,后者是显示出积极情绪,分词后“我非常高兴”能让计算机更加能理解词语之间的情绪表达,提高输出结果为正确情绪的概率。其中Jieba分词工具是目前较好的中文分词工具,Jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图,再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。Jieba分词包的整体工作流程如下图2-1所示。图2-1Jieba分词工具工作流程2.2.2停用词停用词往往指那些文本中使用频率高,适用范围广泛,但是没有意义和情绪波动的字词。这些词对分类结果影响不大,但是会使计算量变大,浪费资源,降低模型的工作效率,所以我们需要将停用词去除,使计算机更加高效快速地运算。在通常意义上,停用词主要分为以下几类:常用的指代词,比如,“你”、“她”、“他”、“它”、“这个”、“那个”等,英文中诸如“it”,“she”,“he”等。语气助词、介词、连接词,如“啊”、“吗”、“了”、“者”、“也”、“从”等,英文中诸如“the”、“that”、“an”等。特殊符号,如“#*%&0(¥©@$①”。去除停用词通常是通过构建停用词表来实现的,网上有很多已构建好的停用词表,但每个长度不同,内容差异也很大,具体做法是将分词得到的词语与停用词表进行匹配,如果匹配成功,则删除该词。2.2.3文本特征提取并向量化在自然语言处理(NaturalLanguageProcessii,NLP)领域,要将自然语言交给机器学习中的算法处理,通常必须首先对语言进行数学化处理。因为机器对于普通的文本语言是理解不了的,必须通过转化为数字的形式来表征时应的文本。当前,使用较多的文本表示模型行词袋模型(BagofWord,BOW)、TF-IDF和词向量。词向过是将自然语言数学化的一种很好的转化方式。最常用的词向量模型有one・hot、Word2vec和Doc2Vec。计算机是无法看懂人类语言的,但是能看懂数字,所以需要将文本进行向量化处理,用数字表示出来,而在此之前将去除完停用词的数据进行特征提取,即将每个词的出现频率进行统计计算,能提高分析结果的准确率,比如文本中含有“高兴”一词,那显示出积极情绪的概率也会越大。因此我们需要引入TF-IDF(TermFrequency-InverseDocumentFrequency,词频和逆向文件频率)对每个单词做进一步考量。TF(词频)的计算就是针对一个文件,某个单词出现在该文档中的频率。比如文档“Ilovethismovie”,单词“love”的TF为1/4,如果去掉停用词“I"和”it“,则为1/2。IDF(逆向文件频率)的意义是对于某个单词,凡是出现了该单词的文档数,占了全部测试文档的比例,再求自然对数。IDF是为了凸显那种出现的少,但是占有强烈感情色彩的词语。TF-IDF值越大,则这个词成为一个关键词的概率就越大,TF-IDF算法公式如图2-2所示。将数据进行向量化处理,让计算机能识别文本语言,完成后续情感分析等一系列操作。图2-2TF-IDF算法公式2.2.4分类进行文本分类让计算机能更加快速有效的分析出数据中与情绪的关联度,文本分类用电脑对文本按照一定的分类体系或标准进行自动分类标记。它根据一个已经被标注的训练文档集合,找到文档特征和文档类别之间的关系模型,然后利用这种学习得到的关系模型对新的文档进行类别判断。贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。分类算法的一般流程如图2-3所示。图2-3文本分类工作流程贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性,朴素贝叶斯算法原理如图2-4所示。图2-4朴素贝叶斯算法原理3总体设计3.1情感分析情感分析又称意见挖掘、倾向性分析等,是自然语言处理的一个领域。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。互联网(如博客和论坛以及社会服务网络如大众点评)上产生了大量的用户参与的、对于诸如人物、事件、产品等有价值的评论信息。这些评论信息表达了人们的各种情感色彩和情感倾向性,如喜、怒、哀、乐和批评、赞扬等。基于此,潜在的用户就可以通过浏览这些主观色彩的评论来了解大众舆论对于某一事件或产品的看法。在情感分析系统的帮助下,这种非结构化信息可以自动转换为,结构化数据,关于产品,服务,品牌,政治或人们可以表达意见的其他主题。这些数据对于商业应用非常有用,例如营销分析,公共关系,产品评论,网络发起人评分,产品反馈和客户服务。网上许多优秀的情感分析工具大多都是针对英文的,其中SnowNLP是较好的中文情感分析工具,SnowNLP是受到了TextBlob的启发,SnowNLP应运而生,SnowNLP是用Python写的个中文情感分析的包,自带了中文正负情感的训练集,主要是评论的语料库,使用的是朴素贝叶斯原理来训练和预测数据。对获取的本地数据进行预处理:分词、去除停用词、特征向量化等操作,而后进行词性标注,读取朴素贝叶斯模型和语料库来进行情感分析,得出语句情感倾向。情感分析架构如图3-1所示。图3-1情感分析架构3.2功能模块的实现3.2.1文件操作因为需要读取和保存文件,以便查询,我们需要对文件进行操作,用到os模块,可让我们对文件进行新建、删除、查看等方法,还提供了对文件以及目录的路径操作,而shutil功能为移动、复制、解压、压缩、打包等,对os模块进行了补充,两个模块相辅相成,基本能完成所有文件的操作,os和shutil对于文件的操作如图3-2所示。图3-2os与shutil模块3.2.2窗口Python可以简单快速的创建一个窗口界面,首先导入tkinter模块,然后就可以设置窗口标题和尺寸,排版,设置按键及其功能,tkinter功能模块如图3-3所示。图3-3tkinter模块3.2.3Excel表格处理此功能模块处理Excel表格,xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlutils模块;xlutils库也仅仅是通过复制一个副本进行操作后保存一个新文件,像是xlrd库和xlwt库之间的一座桥梁,需要依赖于xlrd和xlwt两个库。Xlrd、xlwt与xlutils的关系如图3-4所示。图3-4xlrd与xlutils与xlwt关系图3.2.4SnowNLPSnowNLP是一个中文的自然语言处理的python的类库。可以进行各种中文自然语言操作,其中包括:中文分词、词性标注、情感分析、转换成拼音、繁体字转换为简体字、文本分类、提取文本关键词等操作,它可以完成情感分析的大部分操作,但因为不够完善所以部分功能可以调用其它模块来提升整体的运行速度和准确率,例如SnowNLP自带的分词系统并不好,所以可以用分词更好的Jieba工具,如图3-5所示,安装就可以直接在python环境中进行操作。调用SnowNLP来训练情感分析模型,根据实际的数据重新训练模型,可以通过大量数据不断学习,来提高模型的准确率。在训练过程中,我们的模型学习基于训练样本,将特定输入(即文本)与相应的输出(标签)相关联。特征提取器将文本输入传输到特征向量中。将成对的特征向量和标签(例如,正,负或中性)喂给到机器学习算法中以生成模型。在预测过程中,特征提取器用于将未见过的的文本输入,变换为特征向量。然后将这些特征向量喂给模型,该模型生成预测标签(正,负或中性)。图3-5SnowNLP分词与Jieba分词比较基于SnowNLP再结合Jieba工具、os模块和TF-IDF等就可以完成情感分析的一系列操作,在系统里选中目标文件,将读取的本地数据进行预处理,分词、去除停用词、词性标注、分类,进行情感分析,抽取情感词、识别情感搭配、计算情绪极性,输出结果至窗口,保存至本地目标路径,总体流程如图3-6所示。图3-6总体流程
4系统测试与运行4.1系统开发和运行环境运行环境:Anaconda3Python3.7.9Jieba0.42.1SnowNLP测试与运行读取本地数据进行情感分析测试,运行代码生成程序窗口,如图4-1所示。图4-1系统窗口界面选择本地的目标文件进行读取,可选择任意本地.txt文件或者.csv文件,如图4-2所示。图4-2读取本地文件而后系统对数据进行情感分析,将结果输出到窗口界面,如图4-3所示。图4-3输出结果界面输出结果也会保存至本地所指定的路径,方便日后进行查看或者进行新的模型训练,改进计算方式,提高准确率,保存结果如图4-4所示。图4-4保存本地文件数据结果
5结束语基于机器学习的情感分析技术能够从评论文本中识别出用户的情感极性,是自然语言处理领域的重要课题。基于机器学习的情感分析模型目前也是自然语言处理领域广泛研究的热点问题,因为机器学习方法能够较充分的分析语料文本中的信息与逻辑关系。目前,基于机器学习的情感分析模型具有文本分析不透彻、机器学习分类器准确度低与稳定性差两个典型问题。通过参考近年国内外在该方面的研究成果来撰写本篇论文。在这四年里,我学习了很多的计算机知识,也参考了很多实例,但也意识到自己的不足之处,有部分知识点没有融会贯通,所做出来的系统部分想要的功能也没有实现出来,譬如在爬取数据和训练模型这方面还是有所欠缺,参考网上资料也做得并不好,缺少这方面的经验,希望以后能学会,学好这方面的知识,能更加完善自己以及自己所设计的东西。关于情感分析技术,在了解这项技术时还是相当有趣的,让计算机来代替人类判断一个语句或者文章所表达的情绪,优势在于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏省泰兴市高二化学下册期末考试模拟考试卷【含答案】
- 2026年福建省武夷山市高二化学下册期末考试模拟卷附答案【巩固】
- 2026年江西省瑞昌市高二化学下册期末考试模拟考试卷及参考答案【满分必刷】
- 2026语文新教材 1.邓稼先七年级下册
- 2026年江苏省启东市高二化学下册期末考试模拟检测卷及参考答案【研优卷】
- 2026年云南省泸水市高二化学下册期末考试模拟试卷及完整答案(典优)
- 2026年四川省什邡市高二化学下册期末考试模拟检测卷及完整答案(各地真题)
- 2026年江苏省靖江市高二化学下册期末考试模拟测试卷【真题汇编】附答案
- 2026语文新教材 3首届诺贝尔奖颁发教学课件八年级上册
- 2026年吉林省扶余市高二化学下册期末考试模拟卷及一套参考答案
- GB/T 2423.21-2025环境试验第2部分:试验方法试验M:低气压
- 北京积水潭医院贵州医院招聘笔试真题2024
- 宫腔镜的保养与维护
- 人教版2024版历史八年级上册第四单元第12课《中国共产党诞生》创新教学设计
- 营养不良与肥胖教学课件
- 采油工基础技能培训手册
- 国开机考 答案 人力资源管理2025-06-21
- 2025陕西氢能产业发展有限公司所属单位招聘(101人)笔试参考题库附带答案详解析集合
- 建筑行业消防工程质量控制措施
- 2025年九年级数学中考复习 二次函数综合压轴题类训练题(含答案)
- 郑州工程技术学院《工程力学及机械设计》2023-2024学年第一学期期末试卷
评论
0/150
提交评论