【毕业设计_课程设计】基于各种机器学习和深度学习的中文微博情感分析
2023-09-11 14:19:18 时间
前言
基于各种机器学习和深度学习的中文微博情感分析
提示:适合用于课程设计或毕业设计,工作量达标,源码开放
项目介绍
1、用FastText在语料库上训练并生成词向量, 该任务语料库较小, 用fastText可以增加n-gram特征,比传统word2vec要好
2、训练集10000条语料, 测试集500条语料
3、分别用SVM, Bayes, DNN, LSTM, Attention+BiLSTM, XGBoost等多种模型搭建并训练正负情感二分类器
- SVM其实不太适合做NLP,只是当年我还很菜所以选了SVM
- Bayes速度快,效果好。可能是因为该任务语料规模较小,在大规模语料任务上性能会下降,而且磁带模型丢失了语序信息,可拓展性不强
- DNN效果不好,不过现在也很少有直接用DNN做NLP的,所以这里仅作为从机器学习到深度学习的过渡模型了
- LSTM用到了上游训练的FastText词向量,并且考虑了语序信息, 效果有明显提升
- Attention+BiLSTM效果很好,但相比纯LSTM提升没那么明显,主要是因为该任务相对简单且语料少。迁移至更复杂任务后注意力的强大会越来越明显
- XGBoost真是机器学习界的一大杀器, 在这种简单的NLP任务上真是又快又好
4、对不同话题下的100条微博进行简单的舆情分析(正负情感微博比例)
实验结果
各种分类器在测试集上的测试结果
舆情分析
工程结构
WeiboSentiment
├── 00.FastText.ipynb `生成FastText词向量`
├── 01.SVM.ipynb `SVM分类器`
├── 02.Bayes.ipynb `朴素贝叶斯`
├── 03.DNN.ipynb `神经网络分类器`
├── 04.LSTM.ipynb `LSTM分类器`
├── 05.Attention+BiLSTM.ipynb `Attention+BiLSTM分类器`
├── 06.XGBoost.ipynb `XGBoost分类器`
├── SentimentAnlysis.ipynb `验证集分析`
├── stopwords.txt `停用词典`
├── utils.py `工具函数`
├── model `各种模型`
│ ├── model_100.txt `维度为100的FastText词向量`
│ ├── attention `Attention+LSTM模型`
│ ├── lstm `LSTM模型`
│ └── nn `神经网络模型`
└── weibo2018 `微博语料数据`
├── topics `未标注情感的不同主题微博语料`
├── train.txt `训练集`
└── test.txt `测试集`
相关文章
- (《机器学习》完整版系列)第3章 线性模型——3.3 线性判别分析LDA(将平面上点投影到线上)
- (《机器学习》完整版系列)第2章 模型评估与选择 ——2.9 (实战)在机器学习开发实践中如何改善学习器的性能?可使用“人类基准”
- 机器学习数学笔记|微积分梯度jensen不等式
- 大数据与机器学习:实践方法与行业案例.1.1 数据的基本形态
- 《机器学习与R语言(原书第2版)》一1.3 机器如何学习
- 如何在 Kubernetes Pod 和您的机器之间复制文件
- Caffe机器学习框架
- 【机器学习】激活函数(Activation Function)
- Python数据处理Tips机器学习中文数据8种常用处理方法
- 机器学习在物联网中有何应用?首先要搞清楚它和数据分析的区别
- python笔记(十八)机器量化分析—数据采集、预处理与建模