目录
摘 要 ................................................................ 4
第 1 章 绪论 ........................................................... 6
1.1 本课题的研究背景及研究意义 ..................................... 6
1.2 国内外研究现状 ................................................. 6
1.3 本文主要研究内容 ............................................... 7
第 2 章 理论基础与相关技术 ............................................. 8
2.1 情感分析环境的搭建 ............................................ 8
2.2 网络爬虫技术 .................................................. 9
2.3 数据数据结构与可视化 ......................................... 10
2.4 情感分析具体步骤 ............................................. 11
第 3 章 机器学习自然语言处理-文本情感分析 ............. 错误!未定义书签。
3.1 关键词提取 ................................... 错误!未定义书签。
3.1.1 情感词典以及停用词典等的构建 ............ 错误!未定义书签。
3.1.2 文本分词处理 ............................ 错误!未定义书签。
3.1.3 基于 TF-IDF 算法的关键词权重计算 ......... 错误!未定义书签。
3.1.4 k-means 文本聚类 .........................错误!未定义书签。
3.2 基于词典形式的文本情感极性分析 ............... 错误!未定义书签。
3.2.1 构建情感极性分析计算方式 ................ 错误!未定义书签。
3.2.2 训练情感分析模型 ........................ 错误!未定义书签。
3.2.3 情感分析 score 计算及可视化 .............. 错误!未定义书签。
3.3 基于机器学习的文本情感极性分析 ............... 错误!未定义书签。
3.3.1 NLP 模型的训练和优化 .....................错误!未定义书签。
3.3.2 NLP 情感分析 score 计算及可视化 ...........错误!未定义书签。
第 4 章 情感分析的改进及优化 .......................................... 20
4.1 方法的优缺点分析 .............................................. 20
4.2 词典形式与机器学习方法的比较 .................................. 21
4.3 情感分析方法的优化 ............................................ 22
4.4 方法改进后的结论 .............................................. 24
第 5 章 结论与展望 ..................................................... 25
5.1 本文成果与不足 ................................................ 25
5.2 展望未来 ....................................................... 26
参考文献 .............................................................. 27
致
谢 .............................................................. 28
摘要:
针对此前疫情爆发的时间段,本文选自 2020 年 1 月 15 日至 3 月 15 日的热门微博,
共选自 17 万条微博,对有关“新冠肺炎疫情”相关的文本作抓取分类,对微博文本进
行提取关键词提取,计算关键词的 TF-IDF 权重,再利用情感分析词典和机器学习模型
构建情感分析模型,分析“新冠肺炎疫情”对大多数人群所产生的心理影响,以及多数
人群心理因素对新冠肺炎产生的影响变化,通过大数据分析受新冠肺炎疫情影响人群的
心理困扰,从时间的维度上讲解疫情爆发到疫情基本控制所经历的阶段中,人群心理的
影响受时间的变化而变化,最终得出疫情发生的不同的阶段下,人群产生的正负情感以
及情绪状态
关键词:爬虫;情感分析;文本聚类;机器学习;新冠肺炎疫情
第 1 页
第 1 章 项目开发背景
本章介绍论文的研究背景以及研究意义,阐述疫情下情感分析的现状及其不足之
处,最后给出论文的主要研究内容和组织结构。
1.1 依托企业概况
2020 年初,新冠病毒疫情肆虐,国家卫生健康委员会发布公告,将新 型冠状病毒
肺炎(COVID-19)纳入《中华人民共和国传 染病防治法》规定的乙类传染病,
并采取甲类传染病的 预防、控制措施,这一发布,引起了人们的广泛关注,在过去的
两三个月里,大众人群对新冠肺炎疫情的讨论热度极高,而且持续时间长,无论是核心
话题,还是有关疫情的其他话题,对“新冠肺炎疫情”的舆情的研究,都具有一定的理
论意义,就现实层面而言,无论是对舆情的情感分析研究,还是可视化展示舆论的时间
演化过程,都可以反映出新冠肺炎疫情对人们所产生的的影响,影响人们面对疫情时的
心理因素,针对心理影响,可以有效的制定相应的疫情防控措施,因此,对新冠肺炎疫
情的舆情研究分析有着重要的价值。
1.2 项目概况
此前,在 2 月初,国内仍月较多的确诊和死亡病例的增加,疫情控制仍需要一段时
间,这段时间,不论是已确诊的群众还是家属,多多少少都会受到一个较大的心理创伤,
有些难以承受的一般人更是需要更长一段时间来恢复这种痛苦和哀伤,如果不能及时的
应对和处理这些情绪,将会严重影响日后的生活,学习和工作能力。
目前国内外的文本分析基本都是基于文本的分析,从而忽视了文本背后的时间信
息,以及随着时间的推移而演化出不同的情感分析 ,情感分析是挖掘人们观点,情感,
情绪状态,诸如对产品的看法,对商品的态度,但是很少结合时间信息与新冠肺炎疫情
的数据进行研究,另外,现在情感分析具体应用大多是在销售行业与服务行业,判断购
买一个产品的人群的情感分析,对于其他领域应用较少,自然语言一直以来都是比较抽
象的,都是直接用词汇和符号来表达概念,在应用较少的领域中,就更难发挥出好的情
感分析模型,比如两个词,他们的词性相近到词形不匹配,计算及内部可能就会认为这
是两个词,实际上从句法分析到信息抽取,再到情感分析,随着时代的进步,虽然已经
有一些成功的应用,越来越多的情感分析对于关键词在文本数据中的情感倾向研究方法
第 2 页
越来越多,准确率也越来越高,但也面临更多挑战,如何应对日益膨胀的情感研究对象
的多样化与情感人物的复杂化问题,如何应对文本中情感表达形式的复杂性问题。
1.3 本文主要研究内容
随着“新冠肺炎疫情”这一热点的广泛关注,本文主要从疫情爆发到基本控制这一
阶段中,新冠肺炎疫情对人们的影响和看法,本文将选自新浪微博 17 万条大众发表的
微博文本数据,分别来自新冠肺炎爆发的几个阶段,从不同的时间节点中分析大众的心
理情感,抽取大众看法的关键词,构建文档向量模型,最后将向量模型构造成 K 个分类
进行组织和划分,由于疫情传染学医学方面的文本训练集较少,本文将采用两种方法搭
建情感分析模型,一种是基于词典的形式,一种是基于 NLP 机器学习的形式,使用大量
的数据来训练模型,对初期的模型一步步的训练强化调参,并对模型训练过程中程度副
词和停用词的使用优化,然后对两种方法作一个比较分析,最后得出一个准确率较高的
情感分析模型。
由于情感分析模型准确率不可能达到百分百准确,本文将对模型学习分析的分数在
进一步的筛选和调节,最后用这批数据预测武汉市新冠肺炎疫情发展趋势,并与实际的
新冠肺炎发展趋势作比较,以评估预测的有效性,分析不同管控时间,新冠肺炎疫情的
响应,并作出相应的防控策略。
第 3 页
第 2 章 理论基础与相关技术
2.1 情感分析环境的搭建
本文围绕“新冠肺炎”的话题进行微博数据爬取,将爬取好的文本数据进行清洗整
理,多线程写入 mysql 数据库中,在通过 k-means 聚类文本进行话题分类,之后搭建情
感词典和机器学习模型,通过训练和优化得到基本的情感分析分数,然后校验此分数的
准确率,在进一步优化模型,利用模型来计算情感分析分数,分析储存结果,对时间维
度的疫情舆情进行分析验证最后,通过不同时间维度形式的表达,来可视化展现情感趋
势分析,本文所需的工具环境如下:
项目语言:python
项目环境:idle,anaconda,jupyter notebook
项目工具包:jieba,snownlp,pandas,numpy,sklearn,matplotlab,
selenium,pymysql,collections,re,codes,requests,bs4
流程图如下:
第 4 页
图 2.1 论文方法流程图
2.2 网络爬虫技术
本文采集的文本均来自原创微博,微博按照关键词选取疫情前 4 的关键词[1],分别
是['流感','肺炎','疫情','感染'],对 2020 年 1 月到 3 月中旬所采集的微博开放平台
的全部数据,爬取的字段有发表用户,发表时间,一级关键词,二级关键词,微博正文
共 5 个字段,共 17 万条数据,爬取基于 selenium 的模仿浏览器技术来获取数据,对正
文使用特殊字符过滤,并用 bs4 字符解析库进行解析,随后将处理好的信息利用 pymysql
第 5 页
库存入 mysql 数据库,详细流程图如下:
图 2.2 网络爬虫爬取流程图
2.3 疫情数据结构与可视化
疫情的数据总数为 172365 条,疫情的数据分为 7 个字段:
user(发表用户)
keydir(一级关键词)
keyword(二级关键词)
time(时间)
content(微博文本)
dic_grade(情感词典计算的得分)
nlp_grde(机器学习计算的得分)
dic_grade 的字段范围为-100 到 100,分数是正数,代表积极情感,分数越高,代
表积极情感概率越高,反之则亦然,nlp_grade 的字段范围为 0 到 1,0.5 代表中性情感,
第 6 页