当前位置:   article > 正文

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

tfidf可视化

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌

毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

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

1、项目介绍

技术栈: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、数据分析: 以旭日图的形式展示各个话题正负面舆情占比。

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、核心代码


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项目



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/449157
推荐阅读
相关标签