互联网加竞赛 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录

  • 0 前言
  • 1 课题背景
  • 2 实现效果
    • **实现功能**
    • **可视化统计**
    • **web模块界面展示**
    • 3 LDA模型
  • 4 情感分析方法
    • **预处理**
    • 特征提取
    • 特征选择
    • 分类器选择
    • 实验
  • 5 部分核心代码
  • 6 最后

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 基于大数据的社交平台数据爬虫舆情分析可视化系统

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

1 课题背景

基于Python的社交平台大数据挖掘及其可视化。

2 实现效果

实现功能

  • 实时热点话题检测
  • 情感分析
  • 结果可视化
  • Twitter数据挖掘平台的设计与实现

可视化统计

Hashtag统计
在这里插入图片描述
地理位置信息的可视化

在这里插入图片描述

话题结果可视化

矩阵图

在这里插入图片描述
旭日图

在这里插入图片描述

情感分析的可视化

在这里插入图片描述

web模块界面展示

在这里插入图片描述

3 LDA模型

2003年,D.Blei等人提出了广受欢迎的LDA(Latentdirichlet
allocation)主题模型[8]。LDA除了进行主题的分析外,还可以运用于文本分类、推荐系统等方面。

LDA模型可以描述为一个“上帝掷骰子”的过程,首先,从主题库中随机抽取一个主题,该主题编号为K,接着从骰子库中拿出编号为K的骰子X,进行投掷,每投掷一次,就得到了一个词。不断的投掷它,直到到达预计的文本长
在这里插入图片描述
可以用矩阵的乘法来表示上述的过程:

回到LDA模型来说,LDA模型的输入是一篇一篇用BOW(bag of
words)表示的文档,即用该文档中无序的单词序列来表示该文档(忽略文档中的语法和词语的先后关系)。LDA的输出是每篇文档的主题分布矩阵和每个主题下的单词分布矩阵。简而言之,LDA主题模型的任务就是已知左边的矩阵,通过一些方法,得到右边两个小矩阵。这里的“一些方法”即为LDA采样的方法,目前最主要的有两种,一种是变分贝叶斯推断(variationalBayes,
VB),另一种叫做吉布斯采样(Gibbs Sampling),其中吉布斯采样也被称为蒙特卡洛马尔可夫 (Markov Chain Monte
Carlo,MCMC)采样方法。

总的来说,MCMC实现起来更加简单方便,而VB的速度比MCMC来得快,研究表明他们具有差不多相同的效果。所以,对于大量的数据,采用VB是更为明智的选择。

4 情感分析方法

本文采用的情感分析可以说是一个标准的机器学习的分类问题。目标是给定一条推文,将其分为正向情感、负向情感、中性情感。

预处理

  • POS标注:CMU ArkTweetNLP
  • 字母连续三个相同:替换 “coooooooool”=>“coool”
  • 删除非英文单词
  • 删除URL
  • 删除@:删除用户的提及@username
  • 删除介词、停止词
  • 否定展开:将以"n’t"结尾的单词进行拆分,如"don’t" 拆分为"do not",这里需要注意对一些词进行特殊处理,如"can’t"拆分完之后的结果为"can not",而不是"ca not"。
  • 否定处理:从否定词(如shouldn’t)开始到这个否定词后的第一个标点(.,?!)之间的单词,均加入_NEG后缀。如perfect_NEG。 “NEG”后缀

特征提取

文本特征

  • N-grams

    • 1~3元模型
    • 使用出现的次数而非频率来表示。不仅是因为使用是否出现来表示特征有更好的效果[16],还因为Twitter的文本本身较短,一个短语不太可能在一条推文中重复出现。
  • 感叹号问号个数

    • 在句子中的感叹号和问号,往往含有一定的情感。为此,将它作为特征。
  • 字母重复的单词个数

    • 这是在预处理中对字母重复三次以上单词进行的计数。字母重复往往表达了一定的情感。
  • 否定的个数

    • 否定词出现后,句子的极性可能会发生翻转。为此,把整个句子否定的个数作为一个特征
  • 缩写词个数等

  • POS 标注为[‘N’, ‘V’, ‘R’, ‘O’, ‘A’] 个数(名词、动词、副词、代词、形容词)

  • 词典特征(本文使用的情感词典有:Bing Lius词库[39]、MPQA词库[40]、NRC Hashtag词库和Sentiment140词库[42]、以及相应的经过否定处理的词库[45])

    • 推文中的单词在情感字典个数 (即有极性的单词个数)
    • 推文的 总情感得分:把每个存在于当前字典单词数相加,到推文的 总情感得分:把每个存在于当前 - 字典单词数相加,到推文的 总情感得分:把每个存在于当前字典单词数相加,到推文总分,这个数作为一特征。
    • 推文中单词最大的正向情感得分和负。
    • 推文中所有正向情感的单词分数 和以及 所有负向情感单词的分数和。
    • 最后一个词的分数
  • 表情特征

    • 推文中正向 情感 和负向的表情个数
    • 最后一个表情的极性是 否为正向

特征选择

本文 特征选择主要是针对于 N-grams 特征 的,采用方法如下:


设定min_df(min_df>=0)以及threshold(0 <= threshold <= 1)
对于每个在N-grams的词:
统计其出现于正向、负向、中性的次数,得到pos_cnt, neg_cnt, neu_cnt,以及出现总数N,然后分别计算
pos = pos_cnt / N
neg = neg_cnt / N
neu = neu_cnt / N
对于 pos,neg,neu中任一一个大于阈值threshold 并且N > min_df的,保留该词,否则进行删除。

上述算法中滤除了低频的词,因为这可能是一些拼写错误的词语;并且,删除了一些极性不那么明显的词,有效的降低了维度。

分类器选择

在本文中,使用两个分类器进行对比,他们均使用sklearn提供的接口 。第一个分类器选用SVM线性核分类器,参数设置方面,C =
0.0021,其余均为默认值。第二个分类器是Logistic Regression分类器,其中,设置参数C=0.01105。

在特征选择上,min_df=5, threshold=0.6。

实验

  • SemEval(国际上的一个情感分析比赛)训练数据和测试数据
  • 评价方法采用F-score
  • 对比SemEval2016结果如下

测试集名

在这里插入图片描述

5 部分核心代码

    import jsonfrom django.http import HttpResponsefrom django.shortcuts import renderfrom topic.models.TopicTrendsManager import TopicTrendsManagerfrom topic.models.TopicParameterManager import TopicParameterManagerdef index(request):return render(request, 'topic/index.html')# TODO 检查参数的合法性, and change to post methoddef stream_trends(request):param_manager = TopicParameterManager(request.GET.items())topic_trends = TopicTrendsManager(param_manager)res = topic_trends.get_result(param_manager)return HttpResponse(json.dumps(res), content_type="application/json")def stop_trends(request):topic_trends = TopicTrendsManager(None)topic_trends.stop()res = {"stop": "stop success"}return HttpResponse(json.dumps(res), content_type="application/json")def text(request):return render(request, 'topic/visualization/result_text.html')def bubble(request):return render(request, 'topic/visualization/result_bubble.html')def treemap(request):return render(request, 'topic/visualization/result_treemap.html')def sunburst(request):return render(request, 'topic/visualization/result_sunburst.html')def funnel(request):return render(request, 'topic/visualization/result_funnel.html')def heatmap(request):return render(request, 'topic/visualization/result_heatmap.html')def hashtags_pie(request):return render(request, 'topic/visualization/result_hashtags_pie.html')def hashtags_histogram(request):return render(request, 'topic/visualization/result_hashtags_histogram.html')def hashtags_timeline(request):return render(request, 'topic/visualization/result_hashtags_timeline.html')

6 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型语言模型与知识图谱的完美结合:从LLMs到RAG,探索知识图谱构建的全新篇章

最近,使用大型语言模型(LLMs)和知识图谱(KG)开发 RAG(Retrieval Augmented Generation)流程引起了很大的关注。在这篇文章中,我将使用 LlamaIndex 和 NebulaGraph 来构建一个关于费城费利斯队(Philadelphia Phillies)的 RAG 流程。 我们用的是开源的 NebulaGraph 来…

3. SPSS数据文件的基本加工和处理

如何获取SPSS自带的案例数据文件&#xff1f; 首先找到SPSS的安装目录&#xff0c;然后找到Samples文件夹 可以看到有不同语言版本&#xff0c;选择简体中文 就能看到很多.sav文件 数据文件的整理 个案排序 单值排序 例&#xff1a;对于下面的数据集&#xff0c;将工资按…

查看Linux系统内存、CPU、磁盘使用率和详细信息

一、查看内存占用 1、free # free -m 以MB为单位显示内存使用情况 [rootlocalhost ~]# free -mtotal used free shared buff/cache available Mem: 11852 1250 8668 410 1934 9873 Swap: 601…

kafka: 基础概念回顾(生产者客户端和机架感知相关内容)

一、kafka生产者客户端 在kafka体系结构中有如下几个重要的概念&#xff1a; Producer&#xff1a;生产者&#xff0c;负责生产消息并投递到kafka broker的某个的分区中Consumer&#xff1a;消费者&#xff0c;负责消费kafka若干个分区中的消息Broker&#xff1a;kafka服务节…

@DependsOn:解析 Spring 中的依赖关系之艺术

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 DependsOn&#xff1a;解析 Spring 中的依赖关系之艺术 前言简介基础用法高级用法在 XML 配置中使用 DependsOn通过 Java Config 配置实现依赖管理 生命周期与初始化顺序Bean 生命周期的关键阶段&…

红帽宣布CentOS 7和RHEL 7将在2024年6月30日结束支持,企业面临紧迫的迁移压力!

2020 年红帽 (RedHat&#xff0c;已在 2019 年被 IBM 收购) 单方面宣布终止 CentOS Linux 的开发&#xff0c;此后 CentOS Linux 8 系列的更新已经在 2021 年 12 月结束&#xff0c;而 CentOS Linux 7 系列的更新将在 2024 年 6 月 30 日结束。 与 CentOS Linux 7 一起发布的 R…

网络的设置

一、网络设置 1.1查看linux基础的网络设置 网关 route -n ip地址ifconfigDNS服务器cat /etc/resolv.conf主机名hostname路由 route -n 网络连接状态ss 或者 netstat域名解析nslookup host 例题&#xff1a;除了ping&#xff0c;什么命令可以测试DNS服务器来解…

LeetCode 94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&…

企业级进销存管理系统

框架&#xff1a; 进销存管理系统&#xff0c;采用SpringBootShiroMyBatisEasyUI 项目采用Maven构建&#xff0c;数据库文件存放在 sql/jxc.sql 截图 运行项目部分截图&#xff0c; 登录界面&#xff0c;用户名admin&#xff0c;密码admin123 当前库存查询&#xff0c; 进…

搭建Eureka服务注册中心

一、前言 我们在别的章节中已经详细讲解过eureka注册中心的作用&#xff0c;本节会简单讲解eureka作用&#xff0c;侧重注册中心的搭建。 Eureka作为服务注册中心可以进行服务注册和服务发现&#xff0c;注册在上面的服务可以到Eureka上进行服务实例的拉取&#xff0c;主要作用…

用判断对齐大语言模型

1、写作动机&#xff1a; 目前的从反馈中学习方法仅仅使用判断来促使LLMs产生更好的响应&#xff0c;然后将其作为新的示范用于监督训练。这种对判断的间接利用受到无法从错误中学习的限制&#xff0c;这是从反馈中学习的核心精神&#xff0c;并受到LLMs的改进能力的制约。 2…

来自一个系统的自白

天空一声巨响&#xff0c;小炫我闪亮登场&#xff01;初次见面&#xff0c;给大家简单介绍下自己&#xff1a;我是炫我渲染私有云系统&#xff0c;是最新一代的智能渲染集群系统。可以进行私有化部署&#xff0c;在3dsmax、maya等软件中一键完成提交、上传、渲染、下载的任务&a…

1881_S32K344开发工具以及MCAL软件安装

全部学习汇总&#xff1a; GreyZhang/g_s32k344: A new MCU learning notes. I would try to use MCAL instead of SDK. (github.com) 编译有专门的编译器安装包&#xff0c;也有IDE的安装形式。这里我选择了IDE&#xff0c;因为我还需要一个开发调试环境。这个IDE可以让我方便…

使用cURL命令在Linux中测试HTTP服务器的性能

cURL是一个强大的命令行工具&#xff0c;用于从或向服务器传输数据。它支持多种协议&#xff0c;包括HTTP、HTTPS、FTP等。在Linux系统中&#xff0c;cURL可以用于测试和评估HTTP服务器的性能。下面是一些使用cURL命令测试HTTP服务器性能的示例和说明。 1. 基本请求 要向指定…

MySQL8下载安装教程

一、MySQL下载 我的版本是8.2.0&#xff0c;当前的最新版本&#xff0c;网址如下&#xff1a;MySQL :: Download MySQL Community Server 点击No thanks&#xff0c;just start my download&#xff0c;就是只是开始下载的意思&#xff0c;点击下载&#xff0c;等待下载完成 二…

ylov8的训练和预测使用(目标检测)

首先要配置文文件 1-配置数据集的yaml文件&#xff1a; 目录在ultralytics/cfg/datasets/下面&#xff1a; 例如我的&#xff1a; (这里面的yaml文件在/ultralytics/cfg/datasets下面有很多&#xff0c;可以找几个参考一下) path: /path/to/eye_datasets # dataset root di…

java基础之Java8新特性-方法引入

目录 1.简介 2.方法引入 方法引入遵循规范 方法引入种类 1.静态方法引入 2.对象方法引入 3.实例方法引入 4.构造函数引入 1.简介 方法引用是 Java 8 中引入的另一个重要特性&#xff0c;它提供了一种简洁的语法来直接引用现有方法或构造函数。方法引用可以看作是 Lambd…

【Python机器学习】决策树集成——梯度提升回归树

理论知识&#xff1a; 梯度提升回归树通过合并多个决策树来构建一个更为强大的模型。虽然名字里有“回归”&#xff0c;但这个模型既能用于回归&#xff0c;也能用于分类。与随机森林方法不同&#xff0c;梯度提升采用连续的方式构造树&#xff0c;每棵树都试图纠正前一…

功能分享【电商API接口】:商品采集正确使用方法!

相信很多做过电商的人&#xff0c;曾经有在淘宝、京东、天猫、拼多多、1688等平台上卖过自己的产品&#xff0c;但是每换一个平台&#xff0c;商品要重新上传&#xff0c;这浪费了很多没有必要的时间。 为此我们开发了商品采集API功能&#xff0c;一键完成上架商品&#xff0c…

CHS_01.1.5+操作系统引导

CHS_01.1.5操作系统引导 操作系统的引导一个新的磁盘安装操作系统后操作系统引导&#xff08;开机过程&#xff09; 操作系统的引导 我们会学习操作系统的引导 那你可能看见这个词的时候会觉得莫名其妙不明 绝地 什么是操作系统的引导呢 简单来说就是当你在开机的时候 如何让…