竞赛保研 基于情感分析的网络舆情热点分析系统

文章目录

  • 0 前言
  • 1 课题背景
  • 2 数据处理
  • 3 文本情感分析
    • 3.1 情感分析-词库搭建
    • 3.2 文本情感分析实现
    • 3.3 建立情感倾向性分析模型
  • 4 数据可视化工具
    • 4.1 django框架介绍
    • 4.2 ECharts
  • 5 Django使用echarts进行可视化展示
    • 5.1 修改setting.py连接mysql数据库
    • 5.2 导入数据
    • 5.3 使用echarts可视化展示
  • settings.py 文件
  • 6 实现效果
  • 7 最后

0 前言

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

🚩 基于情感分析的网络舆情热点分析系统

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

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

  • 难度系数:3分
  • 工作量:5分
  • 创新点:3分
  • 界面美化:5分

🧿 更多资料, 项目分享:

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

1 课题背景

精神文明日益发展的今天, 出行旅游成为人们的主要休闲方式和社会经济活动, 旅游业不仅能推动多个产业的发展, 调节产业结构,
同时也满足了人们日益增长的文化需要。其越来越成为国民经济的重要支撑。相关数据显示,
疫情平稳期间的旅游人数仍然稳中有增。而与之相对应的是海量的无序化旅游数据日益激增。针对有效旅游数据进行准确分析、 合理预测有助于制定与旅游发展相关的规划,
同时能有效地帮助后续在旅游设施分配和资源调度等方面上制定明智的决策, 发挥旅游信息价值的最大化。由此可知, 旅游经济的发展与对数据的合理分析是密不可分的。

2 数据处理

采用Python爬虫技术对某大同市旅游景点数据进行采集,用Python中的Pandas库对采集到的数据进行整理,
首先将旅游数据转化成DataFrame格式, 再从多个维度和角度进行处理分析。使用isnull函数选取查看缺失值占总数据百分比大于90%的列名及其数值,
认为它在数据分析中提供极其有限信息, 所以直接删除。对缺失数据采用fillna函数根据数据的不同类型进行了固定值填充,
异常值(也称为离群值)检测是一个重要的部分, 用duplicated函数表示重复行的布尔系列值, 返回缺失总数后进行去重。
采用选择(loc)、 分组(groupby)、 连接(merge)、
汇总统计(mean)等方法进行数据的统计与处理。处理完后利用其自带接口将数据存入到mysql数据库中。

3 文本情感分析

3.1 情感分析-词库搭建

通过对大量中文文本及人物会话分析,发现文本情感的判定基本上通过对通篇的情感词、程度副词及否定词的统计分布来判别,因此,我们搭建了基于情感分析的情感词库以及其它辅助词表。如下图所示

在这里插入图片描述

3.2 文本情感分析实现

情感倾向性将文本分为正面、负面、中性三种情感属性,通常由正、负面,以及强弱程度来衡量。本文通过中文分词处理,基于情感词典构建情感表,为每一个分词打分,从而判断判别情感倾向,文本情感分析的流程如下图所示。

在这里插入图片描述

3.3 建立情感倾向性分析模型

通过建立以上基础情感词库作为分析基础,我们对采集的微博网友评论做情感倾向分析,我们将用户评论简单的分为三类

  • 正面情绪
  • 负面情绪
  • 中性

4 数据可视化工具

4.1 django框架介绍

数据可视化是数据处理中的重要部分

Django是一个基于Web的应用框架,由python编写。Web开发的基础是B/S架构,它通过前后端配合,将后台服务器的数据在浏览器上展现给前台用户的应用。Django本身是基于MVC模型,即Model(模型)+View(视图)+
Controller(控制器)设计模式,View模块和Template模块组成了它的视图部分,这种结构使动态的逻辑是剥离于静态页面处理的。
Django框架的Model层本质上是一套ORM系统,封装了大量的数据库操作API,开发人员不需要知道底层的数据库实现就可以对数据库进行增删改查等操作。Django强大的QuerySet设计能够实现非常复杂的数据库查询操作,且性能接近原生SQL语句。Django支持包括PostgreSQL、My
Sql、SQLite、Oracle在内的多种数据库。Django的路由层设计非常简洁,使得将控制层、模型层和页面模板独立开进行开发成为可能。基于Django的Web系统工程结构示意图如图所示。

在这里插入图片描述

从图中可以看到,一个完整的Django工程由数个分应用程序组成,每个分应用程序包括四个部分:

(1)urls路由层:决定Web系统路由结构,控制页面间的跳转和数据请求路径

在这里插入图片描述

(2)views视图层:业务层,主要进行逻辑操作和运算,是前端页面模板和后端数据库之间的桥梁。Django框架提供了大量的数据库操作API,开发人员甚至不需要使用SQL语句即可完成大部分的数据库操作。

在这里插入图片描述

(3)models模型层:Web应用连接底层数据库的关键部分,封装了数据库表结构和实现。开发人员可以在Model层按照Django的指令要求进行建表,无须使用SQL语句或者第三方建表工具进行建表。建表的过程类似于定义变量和抽象编程语言中的类,非常方便。

(4)templates模板层:HTML模板文件,后端数据会填充HTML模板,渲染之后返回给前端请求。考虑到项目周期尽可能小,尽快完成平台的搭建,项目决定采用开源的Django框架开发整个系统的Web应用层。

4.2 ECharts

ECharts(Enterprise
Charts)是百度开源的数据可视化工具,底层依赖轻量级Canvas库ZRender。兼容了几乎全部常用浏览器的特点,使它可广泛用于PC客户端和手机客户端。ECharts能辅助开发者整合用户数据,创新性的完成个性化设置可视化图表。支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)等,通过导入
js 库在 Java Web 项目上运行。

5 Django使用echarts进行可视化展示

5.1 修改setting.py连接mysql数据库

# settings.py 文件DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}

5.2 导入数据

导入.sqlite3文件,也可以使用超级用户在 admin 管理页面中添加数据

import requestsfrom django.db import models# Create your models here.# 热点文章class HotArticle(models.Model):article_bid = models.CharField('文章BID', max_length=100)article_uid = models.CharField('文章UID', max_length=100)article_id = models.CharField('文章ID', max_length=100)screen_name = models.TextField('用户昵称')text = models.TextField('微博正文')topics = models.TextField('话题')publish_time = models.DateTimeField('发布时间')location= models.TextField('发布位置')comments_count = models.IntegerField('评论数')reposts_count = models.IntegerField('转发数')publish_tool = models.TextField('发布工具')class Meta:db_table = "hot_article"verbose_name = "热点文章"verbose_name_plural = verbose_nameordering = ('id',)# 用户评论class Comment(models.Model):article_uid = models.CharField('文章UID', max_length=100)article_id = models.CharField('文章ID', max_length=100)username = models.CharField('用户名', max_length=100)text = models.TextField('评论内容')publish_time = models.DateTimeField('发布时间')positive = models.BooleanField('是否积极', null=True, editable=False)prob = models.FloatField('积极估计概率', null=True, editable=False)def save(self, *args, **kwargs):from tools.nlpapi import sentimentif self.prob is None:prob = sentiment(self.text)self.prob = probself.positive = prob >= 0.5super(Comment, self).save(*args, **kwargs)class Meta:db_table = "comment"verbose_name = "用户评论"verbose_name_plural = verbose_name# unique_together = (#     ('article_uid', 'article_id'),# )ordering = ('id',)

5.3 使用echarts可视化展示

  • 设置静态文件目录(即 static 目录)

    settings.py 文件

    STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
    
  • 创建如下目录结构:

在这里插入图片描述

  • js 目录中为 echarts的 js 文件,大家可以在 echarts官网下载自己需要的版本,index.html 文件内容如下

    #部分代码,不完整
    DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8"><title>基于情感分析的网络舆情热点评估与分析系统title><link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/bootstrap.css"><script type="text/javascript" src="/static/js/jquery.js">script>{% block mainHead %}{% endblock %}
    head>
    <body>
    {% load static %}<nav class="navbar navbar-inverse"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="#"><img src="{% static 'images/logo.ico' %}" alt="logo" width=24 height=24>a><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigationspan><span class="icon-bar">span><span class="icon-bar">span><span class="icon-bar">span>button><a class="navbar-brand" href="#">基于情感分析的网络舆情热点评估与分析系统a>div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li class="active"><a href="/">首页 <span class="sr-only">(current)span>a>li><li><a href="/weibo_hot_article/">微博热点文章a>li><li><a href="/weibo_comment/">用户评论情感分析a>li>ul><ul class="nav navbar-nav navbar-right"><li><a href="/admin/" target="_blank">前往后台a>li>ul>div>div>nav>{% block mainbody %}<p>originalp>{% endblock %}
    body>
    html>
    
  • 编写 views.py 文件,将数据库中的数据传到前端页面中

    import json
    from multiprocessing import connection
    from sqlite3.dbapi2 import IntegrityErrorfrom django.core import serializers
    from django.core.serializers.json import DjangoJSONEncoder
    from django.forms import model_to_dict
    from django.http import HttpResponse, JsonResponse
    from django.shortcuts import renderdef index(request):# print(request.method)  #获取请求方式GET或POSTreturn render(request, 'index.html')  # 回复一个页面
    

6 实现效果

使用的数据是处理好后已生成的.sqlite数据文件,现在,我们来看一下展示效果,运行


python manage.py runserver

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7 最后

🧿 更多资料, 项目分享:

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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

将H5封装为App:实现跨平台移动应用开发的新趋势

H5技术指的是HTML5、CSS3和JavaScript等一系列前端技术的综合应用。它具有跨平台、开发成本低、开发周期短等优势&#xff0c;可以快速实现丰富的界面和交互效果。而原生应用开发受限于操作系统的差异&#xff0c;需要分别开发不同平台的应用&#xff0c;这就增加了开发成本和工…

记一次redis内存没满发生key逐出的情况。

现象&#xff1a; 从监控上看&#xff0c;redis的内存使用率最大是80%&#xff0c;但是发生了key evicted 分析&#xff1a; 原因1、可能是阿里云监控没抓取到内存100%监控数据。 阿里控制台监控监控粒度是5秒。 内存使用率的计算方法。 used_memory_human/maxmemory 原因2、…

shiro1.10版本后-IniSecurityManagerFactory过期失效

1、问题概述&#xff1f; 今天在研究了shiro的新版本shiro1.13.0版本&#xff0c;发现用了很长时间的IniSecurityManagerFactory工厂失效了。 从下图中可以看出&#xff0c;在新版本中IniSecurityManagerFactory被打上了过期线了。 那么问题来了&#xff0c;新版本如何使用呢…

在SpringBoot中自定义指标并使用Prometheus监控报警

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享 在10 分钟教你使用Prometheus监控Spring Boot工程中介绍了如何使用Prometheus监控Spring Boot提供的默认指标&#xff0c;这篇介绍如何自定义业务指标&#xff0c;并使用Prometheus进行…

神经网络:模型部署

【一】模型压缩的必要性与可行性&#xff1f; 模型压缩是指对算法模型进行精简&#xff0c;进而得到一个轻量且性能相当的小模型&#xff0c;压缩后的模型具有更小的结构和更少的参数&#xff0c;可以有效降低计算和存储开销&#xff0c;便于部署在端侧设备中。 随着AI技术的…

ERP与智能商品系统在供应链管理上有哪些区别和优势?

ERP系统和智能商品系统在供应链管理方面有以下区别和优势&#xff1a; 范围和综合性&#xff1a;ERP系统涵盖了企业的整个供应链管理过程&#xff0c;包括供应商管理、采购管理、库存管理、生产计划和物流管理等。它可以实现供应链上下游的信息共享和协同&#xff0c;提高供应…

鸿蒙原生应用/元服务开发-Stage模型能力接口(十)下

ohos.app.form.FormExtensionAbility (FormExtensionAbility) 系统能力&#xff1a;SystemCapability.Ability.Form 示例 import FormExtensionAbility from ohos.app.form.FormExtensionAbility; import formBindingData from ohos.app.form.formBindingData; import formP…

【Java干货教程】JSON,JSONObject,JSONArray类详解

一、定义 JSON&#xff1a;就是一种轻量级的数据交换格式&#xff0c;被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构&#xff0c;易于阅读和编写&#xff1b;同时也易于机器解析和生成&#xff0c;有效的提升网络传输效率&#xff1b;支持多种语言&#xff0c;很多…

Java商城 免 费 搭 建:鸿鹄云商实现多种商业模式,VR全景到SAAS,应有尽有!

鸿鹄云商 b2b2c产品概述 【b2b2c平台】&#xff0c;以传统电商行业为基石&#xff0c;鸿鹄云商支持“商家入驻平台自营”多运营模式&#xff0c;积极打造“全新市场&#xff0c;全新 模式”企业级b2b2c电商平台&#xff0c;致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

pdf编辑器:Acrobat Pro DC 2023中文

Acrobat Pro DC 2023是一款功能强大的PDF处理软件&#xff0c;可以帮助用户在创建、编辑、转换和合并PDF文档方面达到前所未有的高度。Acrobat Pro DC 2023具备创建PDF的功能&#xff0c;用户可以将各种类型的文件&#xff0c;如Word、Excel、PowerPoint、图片等&#xff0c;轻…

HTTP与HTTPS的区别,看这一篇就够了

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是网页传输中常用的两种协议&#xff0c;它们之间的主要区别在于安全性。 HTTP是一种用于在Web浏览器和服务器之间传递信息的标准协议。然而&#…

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)

文章目录 &#x1f354;Bean的获取&#x1f384;注入IOC容器对象⭐代码实现&#x1f6f8;根据bean的名称获取&#x1f6f8;根据bean的类型获取&#x1f6f8;根据bean的名称和类型获取 &#x1f384;Bean的作用域⭐代码实现&#x1f388;注意 &#x1f384;第三方Bean⭐代码实现…

【Unity动画系统】Animator有限状态机参数详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

怎么快速去除图片水印?这些快速去除的工具赶紧码住

在数字时代的大潮中&#xff0c;图片与视频中的水印如同微小的瑕疵&#xff0c;虽然旨在维护原创者的权益&#xff0c;却往往损害了内容的观感&#xff0c;降低了他人的分享欲望。那些恼人的水印&#xff0c;常常让人们束手无策。但别担心&#xff0c;接下来我将为你揭秘几种快…

羊大师讲解,羊奶怎么加热才不容易破坏营养

羊大师讲解&#xff0c;羊奶怎么加热才不容易破坏营养 随着人们对健康饮食的重视&#xff0c;越来越多的人开始选择羊奶作为补充营养的饮品。在加热羊奶的过程中&#xff0c;如果方法不当&#xff0c;很容易造成营养价值的损失。那么&#xff0c;如何加热羊奶才能最大程度地保…

gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system

目录 一、gem5 master and slave ports 二、Packets 三、Port interface 1、主设备发送请求时从设备忙 2、从设备发送响应时主设备忙 四、Simple memory object example 1、Declare the SimObject 2、Define the SimpleMemobj class 3、Define the SimpleMemobj class…

私域营销新趋势:电商品牌如何打破传统,实现共赢?

一、自私的私域 私域运营已经成为企业营销的重要手段之一&#xff0c;越来越多的品牌开始重视私域的构建和运营。瑞幸咖啡、熊猫不走和泡泡玛特等品牌的成功案例证明了私域运营的重要性和价值。这些品牌通过建立自己的用户社区&#xff0c;提供个性化的服务和营销策略&#xf…

ffmpeg 解码文件时的时间戳问题

实时流和普通文件 1 实时流 实时流编码时&#xff0c;我们一般不进行b帧编码&#xff0c;但是文件存储时为了减小大小&#xff0c;会增加b帧&#xff0c;实时流只带了I&#xff0c;P帧&#xff0c;那就会好很多 2 普通文件 很多文件带了b帧&#xff0c;所以要使用解码时间去同…

JavaScript(简写js)常用事件举例演示

目录 1.窗口事件onblur :失去焦点onfocus:获得焦点onload:窗口加载事件onresize:窗口大小缩放事件 二、表单事件oninput &#xff1a;当文本框内容改变时 &#xff0c;立即将改变内容 输出在控制台onchange&#xff1a; 内容改变事件onclick&#xff1a;鼠标单击时触发此事件 三…

Spring高手之路-SpringIOC

目录 何为IOC IOC的优点 Spring的IOC 补充 IOC是如何实现的&#xff1f; 何为IOC 所谓的IOC&#xff08;inversion of control&#xff09;&#xff0c;就是控制反转的意思。何为控制反转&#xff1f; 在传统的程序设计中&#xff0c;应用程序代码通常控制着对象的创建和管…