完整代码:https://download.csdn.net/download/qq_38735017/87425721

一、课程项目

文本分类分析

二、项目类容

爬取川大匿名社区SCUinfo在一段时间内的帖子,对其进行情感分类分析,包括情绪分类(积极,消极),帖子内容关联分析等。

三、个人工作完成报告

3.1 工作概述

负责数据收集、预处理以及简单的情感分析

3.2 爬虫方案


scuinfo为动态加载网页,并且有移动端验证,尝试使用scrapy爬取数据失败,需要对爬虫进行大量定制优化,为了提高开发效率,最终使用了之前爬取QQ空间采用的方式:使用selenium库调用firefox浏览器驱动,该再通过代码模拟人为操作浏览器。获取到对应页面数据后,使用etree和xpath选取相应的目标节点数据。

  • 优点:轻松解决网页动态加载,登录验证,移动端验证等问题

  • 缺点:该方式需要一直保持浏览器前台运行,并且只能为单线程模式,爬取效率相对较低

关键代码如下所示:

print("准备打开浏览器")
driver = webdriver.Firefox()
print("打开浏览器")
driver.maximize_window()driver.get("https://scuinfo.com/")
time.sleep(1)
driver.find_element_by_css_selector('body').click()
# 浏览器翻页控制
for i in range(1, 20000):driver.find_element_by_xpath("//body").send_keys(Keys.DOWN)time.sleep(0.001)
selector = etree.HTML(driver.page_source)
divs = selector.xpath('//div[@id="homeList"]/div[@style="padding: 12px 25px 4px; border-bottom: 12px solid rgb(242, 242, 242);"]')
# 这里使用 a 表示内容可以连续不清空写入
with open('scuinfo.txt','a',encoding='utf-8') as f:for div in divs:content = div.xpath('./div[2]/div[1]/span/text()')comment_num = div.xpath('./div[2]/div[2]/div[2]/div[1]/div[2]/text()')name = div.xpath('./div[1]/div[1]/div[2]/text()')good_num = div.xpath('./div[2]/div[2]/div[2]/div[2]/div[2]/text()')

3.3 数据存储


为了方便初期直观的处理数据,使用Mysql数据库保存爬虫数据集。最终数据5000余条。存储方式使用自己编写的Mysql操作类实现。每次爬虫进程创建一个数据库连接对象。

3.4 文本分词


使用第三方python库jieba分词,以及词汇情感标注开源语料库,将分词结果保存到数据库,每个数据项包括词汇内容,频数,词性,以及情感评分,其中,积极情感分数为正,消极情感分数为负数。分数绝对值代表情感激烈程度。

3.5 数据展示


分词结果合计41795条,帖子总数合计5429条。

3.6 初步情感分析


使用Corpus语料库,该语料库包含一个词汇词汇情感评分的标签库,该标签库数据为微博帖子训练而来,由于微博与scuinfo平台相似度较高,因此理论上数据用在本场景中会有比较不错的效果。

本次情感评分方式为直接将每个帖子分词后,将所有分词的情感评分相加。此处分别展示积极和消极情绪的前3条。

积极情绪:

1. 华为财务精英挑战赛,粤港澳赛区区域赛招募新队员1至3人,截止日期为华为那边案例下发日期之前。我们是Nikolas队伍,原团队成员为三个中山,两个川大,一个暨南,由于一些老队员由于期末考、实习等原因无法参赛,先重新招募新队员和我们一起参加粤港澳赛区的比赛。我们的队伍通过了暨南赛区线上筛选14进4,之......    54.500145667723522. 2018年腾讯游戏安全技术竞赛,由腾讯游戏安全主办的2018年游戏安全技术竞赛,作为国内首个专注于“游戏安全”领域的技术赛事,旨在提高高校学生以及游戏从业者对游戏安全领域的认知,并通过竞赛的形式,挖掘技术人才,共同完善与捍卫游戏安全的防线。本次竞赛不仅提供了丰厚的现金奖励,参赛者还有机会与专......  54.500145667723523. 同道共识,方谓同仁;志同道合,共赴理想。地产top10的绿城中国暑期实习生校园招聘“同道人2.0计划”开启啦!现面向川大,招募2名校园大使,我们希望你:•执行力超强,能按照招聘节点计划,完成相应任务;•亲和力、沟通力与团队协作能力nice,能协同其他大使小伙伴,愉快高效地完成任务;•19届...... 54.1780398103219

消极情绪:

1. 真心讨厌双标*  有室友晚上写论文第二天一个劲的说别人吵到自己,别人睡觉又一个劲的说话 有病了解一下?真的今天说话一直被打断只想说敲里嘛敲里马,真的很没素质ok,老是说打断你说话的人有问题,你自己有点 B,真的火大了  -33.03775467582962. 十二舍有个女人,吹头发三角插头,于是我就走过去插了那个两脚插头,于是她吹完后狠狠一拔她的插头,把我的吹风机一下子拔出来然后没有一句话拔腿就跑,我他妈转过头去想问她为啥这样结果人已经跑远,请问你为什么要这么恶意?我妨碍到你了?两个人可以同时用并且不妨碍你你为什么非要我一个人霸占?果然绝大多数长得好看...... -30.857462722284013. t在校大学生的苦逼,四川大学校车站的庸车,尾号为3512,3102,1339的车子,害得我出了丢钱包事故,把我搞的半死不活。 在打电话之前虽然很难过但是知道明明钱包就在三辆车的其中之一上。而现在是打电话后司机找都不找就说钱包肯定不在车上,这样的庸车留着有何用? -29.93353905734

由以上结果可知,前三条为消极情绪的帖子,识别结果是比较准确的,而对于积极情绪的帖子,前面多数为招聘广告,从内容来看,广告内容的确多为积极词汇,这也是影响分析结果的主要原因。

3.7 词云生成


为了直观感受川大学生在匿名平台讨论的主题,使用python库按词频生成词云,结果如下图。

基于Python实现的论坛帖子文本情感分析完整代码+数据 可直接运行 毕业设计相关推荐

  1. 基于机器学习的上证指数、东方股吧的股市评论情感分析 完整代码数据

    视频讲解:基于机器学习的上证指数.东方股吧的股市评论情感分析 完整代码数_哔哩哔哩_bilibili 所使用模型LinearSVC,LogisticReg,SGD,MultinomialNB,KNN, ...

  2. 基于 Keras 实现 12500 张猫狗图像的精准分类 附完整代码+数据 可直接运行 毕业设计

  3. python图像分类实战: Keras 实现 12500 张猫狗图像的精准分类 附完整代码+数据 可直接运行 毕业设计

  4. [深度学习]-基于tensorflow的CNN和RNN-LSTM文本情感分析对比

    基于tensorflow的CNN和LSTM文本情感分析对比 1. 背景介绍 2. 数据集介绍 2.0 wordsList.npy 2.1 wordVectors.npy 2.2 idsMatrix.n ...

  5. python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析

    基于 Python 和 NLTK 的推特情感分析 作者:宋彤彤 1. 导读 NLTK 是 Python 的一个自然语言处理模块,其中实现了朴素贝叶斯分类算法.这次 Mo 来教大家如何通过 python ...

  6. 【Mo 人工智能技术博客】基于 Python 和 NLTK 的推特情感分析

    基于 Python 和 NLTK 的推特情感分析 作者:宋彤彤 1. 导读 NLTK 是 Python 的一个自然语言处理模块,其中实现了朴素贝叶斯分类算法.这次 Mo 来教大家如何通过 python ...

  7. [深度学习TF2][RNN-LSTM]文本情感分析包含(数据预处理-训练-预测)

    基于LSTM的文本情感分析 0. 前言 1. 数据下载 2. 训练数据介绍 3. 用到Word2Vector介绍 wordsList.npy介绍 wordVectors.npy介绍 4 数据预处理 4 ...

  8. [源码和文档分享]基于Python实现的论坛帖子情感分析

    一.课程项目 Scuinfo文本分类分析 二.项目类容 爬取川大匿名社区SCUinfo在一段时间内的帖子,对其进行情感分类分析,包括情绪分类(积极,消极),帖子内容关联分析等. 三.个人工作完成报告 ...

  9. 基于Python实现的论坛帖子情感分析

    一.课程项目 Scuinfo文本分类分析 二.项目类容 爬取川大匿名社区SCUinfo在一段时间内的帖子,对其进行情感分类分析,包括情绪分类(积极,消极),帖子内容关联分析等. 三.个人工作完成报告 ...

最新文章

  1. vue - 使用axios
  2. TechTarget数据库Redis
  3. SAP实施方法论之探讨-现状调研与需求分析
  4. IntelliJ IDEA 学习笔记
  5. python方法大全参数是对象_向对象方法Python传递太多参数
  6. c语言输入一串字符辨别奇偶,c语言设计输入一个正整数判断其中各个数字是否奇数偶数交替出现是输出yes不是输出no...
  7. 有人上传你的脸?Facebook新功能立刻就会提醒你
  8. linux ras目录,Linux下配置站点-FTP-RSA私钥-公钥
  9. mysql多个left join
  10. hdoj1160:FatMouse's Speed(dp+最长递减子序列思想+数组巧妙记录输出)
  11. 2022年金融与互联网资质牌照研究报告
  12. html用css美化表格
  13. 学习一下什么是SRE和DevOps
  14. 服务器硬盘热插拔后告警,IBM硬盘所谓支持热插拔带来的问题
  15. 联邦学习和去中心化训练--知识记录
  16. Android应用商店——项目介绍
  17. 漫步在洛杉矶的春天里
  18. 爆火书单视频怎么制作?实用制作教程来了
  19. java 制作签名版电子合同pdf版本
  20. GLSL——绘制平面图形(二)

热门文章

  1. chrome浏览器隐藏滚动条
  2. 数据挖掘分析相关面试题(亲身经历),持续更新中(最新一次为20210209)
  3. 我们的童年,永远停滞的童年!
  4. Matlab机器人工具箱(1)——机器人的建立、绘制与正逆运动学
  5. 幽默:美国人绝对常用的吵架经典句
  6. java工具类——字符串拼接,逗号分隔
  7. C/C++ 声卡编程代码
  8. sigsuspend 等待
  9. 时序竟态条件分析 sigsuspend函数 Linu系统编程
  10. 深入MySQL的使用