python微博爬虫情感分析可视化系统 舆情分析 python 大数据 TF-IDF算法 Flask框架 毕业设计(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、项目介绍

技术栈:python语言、Flask框架、MySQL数据库、Vue框架、requests爬虫、Echarts可视化、情感分析(百度情感分析senta模型)、tfidf、textrank算法、

2、项目界面

(1)微博舆情关键词分析

在这里插入图片描述

(2)词云 分析

在这里插入图片描述

(3)话题中心

在这里插入图片描述

(4)舆情地图各省份

在这里插入图片描述

(5)数据分析

在这里插入图片描述

(6)热度分析

在这里插入图片描述

(7)用户管理

在这里插入图片描述

(8)后台数据管理

在这里插入图片描述

3、项目说明

技术栈:python语言、Flask框架、MySQL数据库、Vue框架、requests爬虫、Echarts可视化、情感分析(百度情感分析senta模型)、tfidf、textrank算法、

系统采集微博话题文章和评论数据,利用senta框架提供的预模型进行情感分析,对话题的关机键词、热度、地区进行分析,使用了tfidf、textrank等算法。

1、情感分析:使用 百度情感分析senta模型,分析话题下评论内容的情感数据,点击按钮会展示当前话题下情感分析数据
2、微博舆情:展示爬取到的文章信息及文章舆情分析信息(使用 百度情感分析senta模型分析舆情指数,舆情指数小于45分为绿色,45分-60分为橙色,大于60分为红色)。
点击地址可跳转到微博文章页面,点击详情按钮页面可查看该文章详情信息。
3、舆情地图:以地图的形式,直观的展示各个省份舆情信息,可以选择具体某个话题查看。
4、关键词分析: 针对某一个话题 ,使用 textrank和tfidf分别提取话题关键词,以饼图和环形图的形式展示出来。
5、数据分析: 以旭日图的形式展示各个话题正负面舆情占比。

4、核心代码

python">
from flask import Flask
from app_user import index_api
from app_business import home_api

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)

# 配置MySQL数据库
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@localhost/p_weibo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)



# 初始化Flask Admin
admin = Admin(app, name='后台管理')

# 定义模型
class tbl_user(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    account = db.Column(db.String(255))
    pwd = db.Column(db.String(255))
    email = db.Column(db.String(255))
    phone = db.Column(db.String(255))
    login_flag = db.Column(db.String(255))
    remarks = db.Column(db.String(255))
    role = db.Column(db.String(255))
    icon = db.Column(db.String(255))

class talk_article(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    talk_title = db.Column(db.String(255))
    create_user = db.Column(db.String(255))
    create_date = db.Column(db.String(255))
    text = db.Column(db.String(255))
    attitudes = db.Column(db.String(255))
    comments = db.Column(db.String(255))
    reposts = db.Column(db.String(255))
    create_time = db.Column(db.String(255))
    sentiment_label = db.Column(db.String(255))
    sentiment_key = db.Column(db.String(255))
    positive_probs = db.Column(db.String(255))
    negative_probs = db.Column(db.String(255))

class talk_detail(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(255))
    read_num = db.Column(db.String(255))
    read_unit = db.Column(db.String(255))
    talk_num = db.Column(db.String(255))
    talk_unit = db.Column(db.String(255))
    write_num = db.Column(db.String(255))
    write_unit = db.Column(db.String(255))
    type = db.Column(db.String(255))
    short_url = db.Column(db.String(255))
    target_url = db.Column(db.String(255))
    summary = db.Column(db.String(255))
    create_time = db.Column(db.String(255))
    create_user = db.Column(db.String(255))

class talk_comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    talk_title = db.Column(db.String(255))
    article_id = db.Column(db.String(255))
    create_date = db.Column(db.String(255))
    source = db.Column(db.String(255))
    create_user = db.Column(db.String(255))
    detail = db.Column(db.String(255))
    create_time = db.Column(db.String(255))
    sentiment_label = db.Column(db.String(255))
    sentiment_key = db.Column(db.String(255))
    positive_probs = db.Column(db.String(255))
    negative_probs = db.Column(db.String(255))


# 自定义模型视图
class tbl_user_ModelView(ModelView):
    column_list = ('id','name', 'account','pwd','email','phone','login_flag','remarks','role')
    # 【搜索框】---过滤的字段名
    column_searchable_list = ('name',)
    # 设置分页大小
    page_size = 10

class talk_article_ModelView(ModelView):
    column_list = ('id','talk_title','create_user','create_date','text','attitudes','comments','reposts','create_time','sentiment_label','sentiment_key','positive_probs','negative_probs')
    # 【搜索框】---过滤的字段名
    column_searchable_list = ('text',)
    # 设置分页大小
    page_size = 10

class talk_detail_ModelView(ModelView):
    column_list = ('id','title','read_num','read_unit','talk_num','talk_unit','write_num','write_unit','type','short_url','summary','create_time','create_user')
    # 【搜索框】---过滤的字段名
    column_searchable_list = ('title',)
    # 设置分页大小
    page_size = 10

class talk_comment_ModelView(ModelView):
    column_list = ('id','talk_title','source','create_user','detail','create_time','sentiment_label','sentiment_key','positive_probs','negative_probs')
    # 【搜索框】---过滤的字段名
    column_searchable_list = ('detail',)
    # 设置分页大小
    page_size = 10

# 将模型添加到后台管理
admin.add_view(tbl_user_ModelView(tbl_user, db.session))
admin.add_view(talk_article_ModelView(talk_article, db.session))
admin.add_view(talk_detail_ModelView(talk_detail, db.session))
admin.add_view(talk_comment_ModelView(talk_comment, db.session))

# 创建应用程序

app.config["SECRET_KEY"] = 'TPmi4aLWRbyVq8zu9v82dWYW1'

app.register_blueprint(index_api)
app.register_blueprint(home_api)




if __name__ == '__main__':
    app.run(host="127.0.0.1", port=5000)  # 启动Flask项目



5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻


http://www.niftyadmin.cn/n/5335083.html

相关文章

oracle日常操作记录

oracle日常操作记录 SQL中上下按键错误 rlwrap下载 SQL> ^[[A^[[A^[[D^[[C^[[D^[需要安装 rlwrap-0.42.tar.gz 这个软件包 直接解压./configure && make && make install #需要使用root用户执行在到oracle用户环境变量中添加以下数据:…

【INTEL(ALTERA)】使用Quartus出现系统错误:找不到 MSVCR120.dll

说明 由于英特尔 Quartus Prime Pro Edition 软件 23.2 及更早版本存在一个问题,您在启动 Questa*-英特尔 FPGA Edition 时可能会看到此系统错误。此错误是由于安装 Questa*-英特尔 FPGA 版软件时未安装 Visual Studio 2013 的 Visual C 可再发行组件包。 此问题仅…

商家转账到零钱开通条件有哪些?转账场景

商家转账到零钱是什么? 【商家转账到零钱】可以说是【企业付款到零钱】的升级版,商家转账到零钱可以为商户提供同时向多个用户微信零钱转账的能力,支持分销返佣、佣金报酬、企业报销、企业补贴、服务款项、采购货款等自动向用户转账的场景。…

K8S Informer机制原理解读 | 架构设计

在Kubernetes系统中,组件之间通过HTTP协议进行通信,在不依赖任何中间件的情况下需要保证消息的实时性、可靠性、顺序性等。那么Kubernetes是如何做到的呢?答案就是Informer机制。Kubernetes的其他组件都是通过client-go的Informer机制与Kuber…

Day37 贪心算法 part06 738. 单调递增的数字 968. 监控二叉树

贪心算法 part06 738. 单调递增的数字 968. 监控二叉树 738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strNum to_string(n);int tag strNum.size();for(int i strNum.size()-1; i>1; i--){if(strNum[i]<strNum[i-1]){…

面板小程序搭建环境指南

本文介绍进行面板小程序开发前所必要的环境搭建工作。如果您已具备以下开发环境&#xff0c;可跳过本文。 前提条件 了解面板小程序 面板小程序是一种特殊的小程序开发模式&#xff0c;专注于设备控制面板场景&#xff0c;有特定的开发和加载模式。 它在智能小程序基础之上增…

CHAPTER 16: 《THE LEARNING CONTINUES》第16章 《继续学习》

设计好的系统需要多年的知识积累。一条捷径是潜水进入真实的系统架构。下面是一些有用的阅读材料。我们强烈建议您关注共享的原则和基础技术。研究每种技术并理解其解决的问题是一项任务这是加强你的知识库和完善设计过程的好方法。 Real-world systems The following materi…

RNN:Recurrent Neural Network(上)

目录 1 为什么提出 RNN 1.1 什么是 Slot Filling 1.2 为什么 FFN 做不好 Slot Filling 1.3 为什么 RNN 能做好 Slot Filling 2 RNN 的整体结构 3 更高级的 RNN 结构 3.1 Deep RNN 3.2 Elman Network & Jordan Network 3.3 Bidirectional RNN 原视频&…