Skip to content

哈尔滨工业大学情感分析与计算情感分类系统

License

Notifications You must be signed in to change notification settings

limit123123/sentimentAnalysisCourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本项目为哈尔滨工业大学情感分析与计算实验

本系统主要采用了文本分类的方法,项目主要由CNN、RNN等和基于Bert预训练模型的方法构成。

数据集

采用学校老师发放的微博数据集,为json格式,训练集的大小为8000,验证集的大小为2000,测试集大小为3000,格式如下:

[
  {
    "id": 22,
    "content": "武汉挺[抱抱]",
    "label": "positive"
  },
  {
    "id": 23,
    "content": "[doge][doge][doge][爱你][爱你][爱你]",
    "label": "positive"
  },
  {
    "id": 24,
    "content": "会好起来的???还想去武汉旅游呢!",
    "label": "positive"
  }
]

需要数据集请私信[email protected]

数据预处理

使用基于字向量的随机映射和基于SGNS的词向量映射。
基于字向量的映射:以字为分词单位,将其编码后,使用Embedding层将每个字映射为一个向量。
基于词向量的映射:基于预训练的SGNS模型,使用jieba分词工具分词后,读取预训练模型作为Embedding层。
基于Bert预训练模型的映射:使用Bert的tokenizer进行分词并标注,将句子映射为向量或将词映射为向量。

实验结果

模型 Accuracy F1-Score 说明
CNN 76.25% 0.7412 SGNS+CNN
RNN 72.95% 0.7073 SGNS+BiRNN
LSTM 73.3% 0.6826 SGNS+BiLSTM
Bert 81.5% 0.7941 Bert
DeBerta 83.1% 0.802 DeBerta

实验

CNN文本分类

CNN文本分类内容

CNN文本分类的实验部分主要参考Kim在2014年的Convolutional Neural Networks for Sentence Classification 论文, 模型结构如Figure 1所示。
Figure 1
CNN的模型主要由四层组成:

  1. 第一层:Embedding层,将每个字或词映射为一个词向量。
  2. 第二层:卷积层,使用256个卷积核,识别不同的模式。
  3. 第三层:池化层。
  4. 第四层:全连接层,将结果映射到分类。

CNN文本分类实验结果

本部分基于词的粒度、字的粒度进行词嵌入。
使用基于字的粒度时,CNN的精度为70%左右;
使用基于SGNS预训练的embedding模型时,以词为粒度,精度为75.45%左右,相较于字粒度随机化embedding的方式, 提升了大约5%左右的精度。

模型 Accuracy F1-Score
CNN 72.3% 0.6988
SGNS+CNN 76.25% 0.7412

RNN文本分类

训练时长:4.923min
本部分基于词的粒度、字的粒度进行词嵌入。
使用基于字的粒度时,BiRNN的精度为%,f1-score为。
使用基于词的粒度时,BiRNN的精度为72.95%,f1-score为0.7073。

模型 Accuracy F1-Score
BiRNN 61.3% 0.5390
SGNS+BiRNN 72.95% 0.7073

LSTM文本分类

训练时长:5.405min
本部分基于词的粒度、字的粒度进行词嵌入。
使用基于字的粒度时,BiLSTM的精度为71.55%,f1-score为0.6826。
使用基于词的粒度时,BiLSTM的精度为73.30%,f1-score为0.7116。

模型 Accuracy F1-Score
BiLSTM 71.15% 0.6826
SGNS+BiLSTM 73.05% 0.7116

基于Bert预训练模型

模型 Accuracy F1-Score
Bert 81.5% 0.7941
BertCNN 79.95% 0.7822
DeBerta 83.1% 0.802

DeBerta使用K折交叉验证,K=5.

致谢

部分内容参考
Chinese-Text-Classification-Pytorch
Bert-Chinese-Text-Classification-Pytorch
Chinese-Word-Vectors

参考文献

[1] Convolutional Neural Networks for Sentence Classification
[2] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

About

哈尔滨工业大学情感分析与计算情感分类系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages