计算机毕业设计模板|毕设答辩|毕业设计项目|Django+Vue 基于文本的情感分析:微博情绪倾向性研究-大数据深度学习算法毕设毕业设计项目

毕业设计题目:Django+Vue 基于文本的情感分析:微博情绪倾向性研究
一、 项目概述
本项目旨在构建一个针对微博平台的文本情绪分析研究系统。系统通过爬虫获取微博数据,利用深度学习模型(如LSTM, BERT)对微博文本进行细粒度的情感倾向性分析(如正面、负面、中性),并通过Vue前端提供丰富的交互式可视化,以研究公众情绪随时间、事件、地域的变化规律,为舆情监控、社会心态研究等提供数据支持。
二、 系统核心功能
-
微博数据检索与分析:
-
支持按关键词、话题、用户、时间范围检索微博。
-
系统自动对检索到的微博进行情感分析,并展示总体情感分布(如饼图)。
-
-
情感趋势追踪:
-
对特定关键词或话题的情感倾向进行时间序列分析,以折线图展示其情绪变化趋势,并与热点事件关联。
-
-
地域情绪分析:
-
根据微博用户的地理信息(如IP属地、定位),在地图上展示不同地区的情感热度(如全国情绪热力图)。
-
-
情感成因挖掘(词云):
-
分别生成正面微博和负面微博的关键词词云,直观展示引发不同情绪的核心词汇。
-
-
模型管理与测试:
-
管理员功能:允许上传、训练和切换不同的情感分析模型。
-
在线测试:提供一个输入框,允许用户输入任意文本进行实时情感分析,并展示模型预测结果和置信度。
-
-
数据导出:允许将分析结果(数据、图表)导出为报告。
三、 系统技术架构与模块设计
本项目采用前后端分离架构,后端负责核心算法与数据处理,前端负责交互与可视化。
text
[ 数据与算法层 ] -> [ 后端API层 (Django) ] -> [ 前端表现层 (Vue) ] 微博爬虫 Django REST Framework Vue 3 + Vite 情感分析模型 (RESTful API) Vue Router, Pinia (BERT/LSTM) (JWT认证) Element Plus 数据库 (Celery异步任务) ECharts / D3.js (MySQL/Redis)
1. 数据与算法层(核心)
-
数据获取:
-
技术选型:使用
Scrapy或Selennium爬取微博数据。特别注意遵守robots.txt和相关法律法规,仅用于科研目的。 -
爬取字段:微博正文、发布时间、发布设备、用户昵称、用户IP属地、转发/评论/点赞数、话题等。
-
-
情感分析模型:
-
方案一(快速部署):使用预训练模型或第三方API,如
SnowNLP、百度NLP情感分析API、腾讯NLP。适合快速验证系统。 -
方案二(展示能力):自行构建和训练深度学习模型,这是毕业设计的亮点。
-
模型选择:
-
LSTM/BI-LSTM + Attention:经典序列模型,能较好捕捉上下文,实现难度适中。
-
BERT (Finetuning):当前SOTA水平。使用
Hugging Face的Transformers库,在中文微博情感数据集上对预训练的BERT模型进行微调,能达到非常高的准确率。这是最推荐的做法。
-
-
数据集:需寻找或自行标注微博情感数据集(如正面、负面、中性三分类)用于模型训练。
-
-
-
数据存储:
-
MySQL:存储结构化数据,如微博内容、用户信息、分析结果。
-
Redis:用作缓存,存储热点数据;同时作为Celery的Broker,管理异步任务队列。
-
2. 后端API层 (Django + Django REST Framework)
-
模型 (Models):
-
WeiboPost: 微博数据表(content,publish_time,user,ip_region,likes...)。 -
SentimentResult: 情感分析结果表(weibo_post(外键),sentiment_label(正面/负面/中性),confidence(置信度),analysis_time)。与分析结果分离,便于模型更新。 -
AnalysisTask: 分析任务表(用于管理异步分析任务)。
-
-
视图 (Views - API Views):
-
WeiboSearchAPIView: 接收前端搜索条件,从数据库查询微博,并返回(可分页)。 -
SentimentAnalysisAPIView: 核心接口。接收一批微博ID,调用情感分析服务,返回情感标签。由于模型预测耗时,此接口应设计为异步(Celery)。 -
TrendAnalysisAPIView: 处理情感趋势请求,按时间聚合情感结果,返回给前端绘图。 -
RealTimePredictAPIView: 提供单条文本的实时情感预测。
-
-
业务逻辑层 (Services):
-
sentiment_analyzer.py: 核心模块。封装模型加载和预测逻辑。python
class SentimentAnalyzer: def __init__(self, model_path): # 加载训练好的BERT模型和tokenizer self.model = TFAutoModelForSequenceClassification.from_pretrained(model_path) self.tokenizer = AutoTokenizer.from_pretrained(model_path) def predict(self, text): # 对文本进行编码、预测、返回标签和置信度 inputs = self.tokenizer(text, return_tensors="tf", truncation=True, padding=True) outputs = self.model(inputs) probabilities = tf.nn.softmax(outputs.logits, axis=-1) # ... 后续处理 return label, confidence -
celery_tasks.py: 定义异步任务,如analyze_batch_weibos_sentiment(weibo_id_list)。
-
3. 前端表现层 (Vue 3)
-
技术栈:Vue 3 + Vite + Pinia + Element Plus。
-
路由 (Vue Router):管理页面路由,如首页、分析页面、模型管理页面。
-
状态管理 (Pinia):管理用户Token、全局加载状态、当前分析结果等。
-
UI组件:使用 Element Plus 构建布局、表单、表格等。
-
可视化:使用 ECharts 绘制:
-
饼图:用于情感分布。
-
折线图:用于情感趋势。
-
地图:用于地域情绪分布(需地理编码)。
-
词云:用于情感关键词。
-
运行结果展示:











更多推荐
所有评论(0)