【PyTorch深度学习项目实战100例】—— 基于词级ngram的词袋模型对twitter数据进行情感分析 | 第15例

440 阅读3分钟

前言

大家好,我是阿光。

本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

正在更新中~ ✨

🚨 我的项目环境:

  • 平台:Windows10
  • 语言环境:python3.7
  • 编译器:PyCharm
  • PyTorch版本:1.8.1

💥 项目专栏:【PyTorch深度学习项目实战100例】


一、基于词级ngram的词袋模型对twitter数据进行情感分析

N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

本项目在于探索其他在相同数据集上训练出来的 NLP模型,然后在给定的测试集上对这些模型的性能进行评估。

二、数据集介绍

「该数据集基于以下两个来源的数据:」

  • 密歇根大学情感分析比赛Kaggle
  • Niek Sanders的推特情绪语料库

推特情绪分析数据集包含1,578,627条分类推文,每一行标记为1表示积极情绪,0表示消极情绪。我建议使用1/10的语料库来测试你的算法,而剩下的可以用来训练你用来分类情绪的算法。我试着用这个数据集和一个非常简单的朴素贝叶斯分类算法,结果是75%的准确率,假设猜测工作的方法随着时间的推移将达到50%的准确率,一个简单的方法可以比猜测工作更好50%的性能,本质上不是那么好,但考虑到通常(特别是当涉及到社交情感分类时)10%的人类情感分类是可以争论的,任何分析文本整体情感的算法所能达到的最大相对准确率是90%,这是一个不错的起点。

在这里插入图片描述

在这里插入图片描述

「数据下载链接:」 thinknook.com/twitter-sen…

三、词级ngram的词袋模型

在这里插入图片描述

在这里插入图片描述

N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。

该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。

完整源码

【PyTorch深度学习项目实战100例】—— 基于词级ngram的词袋模型对twitter数据进行情感分析 | 第15例_Bi 8 Bo的博客-CSDN博客_ngram算法实例