【笔记】NLP分类方法

摘录于下文,对NLP分类方法大概了解,内示例代码

入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型

0.数据预处理

这一部分讲述了数据来源({0,1}情感数据)、测试集划分(1/10)、噪声清洗(http网址、#主题、@用户)


清洗后的数据

1.基于词级ngram的词袋模型

流程:提取n-gram特征,组成词-文档(计数)矩阵,再生成tf-idf矩阵作为特征,用LR训练分类模型


n-gram
词-文档矩阵

2.基于字符级的ngram词袋模型

与基于词的ngram类似,只是分词组合的对象是字符级别,也是生成tfidf后训练预测

image

3.基于词级 ngram 和字符级 ngram 的词袋模型

由1、2的train的tfidf特征矩阵合并而成,训练预测一致

总结一波:关于词袋模型

  • 优点:考虑到其简单的特性,词袋模型已经很强大了,它们训练速度快,且易于理解。
  • 缺点:即使 ngram 带有一些单词间的语境,但词袋模型无法建模序列中单词间的长期依赖关系。

4.无预训练词嵌入的RNN

Keras的Tokenizer进行分词(根据词频分词)->映射词表->词嵌入->spatial dropout->GRU->池化->全连接

#清洗后的数据
'breakfast time happy time'
#分词后映射词表
[530, 50, 119, 50]
#句子补0对齐35列
[0,0,0, ...,530, 50, 119, 50]
#嵌入300维,每个句子35*300矩阵
#spatial dropout等处理
#GRU从左到右/从右到左,双向扫描,输出100*2=200维
#最大池化,全连接输出
RNN

5.用GloVe预训练词嵌入的RNN

替换4中的嵌入部分,通过自己的语料库做word embedding

也可以用word2vec或其他方法

6.多通道卷积神经网络

用CNN做文本问题,通过设置不同大小的滤波器(下图的(2, 5) (3, 5) 和 (4, 5) ),列维度最大,行维度为不同窗口,类似n-gram


image.png

7.RNN+CNN

先RNN,GRU后用CNN来卷积

结果对比

image
image

你可能感兴趣的:(【笔记】NLP分类方法)