向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
中文商品评论短文本分类器,可用于情感分析,各模型的准确率均达到90%以上
运行环境:
tensorflow2.0
python3
数据集:
京东商城评论文本,10万条,标注为0的是差评,标注为1的是好评。
路径:data/goods_zh.txt
已实现的模型:
Transfromer
word2vec+textCNN
fastext
word2vec+LSTM/GRU
word2vec+LSTM/GRU+Attention
word2vec+Bi_LSTM+Attention
项目代码获取方式
关注微信公众号 datayx 然后回复 中文分类 即可获取。
AI项目体验地址 https://loveai.tech
1. Transfromer
Transformer由论文《Attention is All You Need》提出,现在是谷歌云TPU推荐的参考模型。
Attention is All You Need:
https://arxiv.org/abs/1706.03762
Transformer的主体结构图:
模型分为编码器和解码器两个部分。
编码器由6个相同的层堆叠在一起,每一层又有两个支层。第一个支层是一个多头的自注意机制,第二个支层是一个简单的全连接前馈网络。在两个支层外面都添加了一个residual的连接,然后进行了layer nomalization的操作。模型所有的支层以及embedding层的输出维度都是dmode。
解码器也是堆叠了六个相同的层。不过每层除了编码器中那两个支层,解码器还加入了第三个支层,如图中所示同样也用了residual以及layer normalization。
2.textCNN
Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出TextCNN。
https://arxiv.org/abs/1408.5882
将卷积神经网络CNN应用到文本分类任务,利用多个不同size的kernel来提取句子中的关键信息(类似于多窗口大小的ngram),从而能够更好地捕捉局部相关性。
3.fastext
fasttext是facebook开源的一个词向量与文本分类工具,在2016年开源,典型应用场景是“带监督的文本分类问题”。提供简单而高效的文本分类和表征学习的方法,性能比肩深度学习而且速度更快。
https://github.com/facebookresearch/fastText
fastText结合了自然语言处理和机器学习中最成功的理念。这些包括了使用词袋以及n-gram袋表征语句,还有使用子词(subword)信息,并通过隐藏表征在类别间共享信息。我们另外采用了一个softmax层级(利用了类别不均衡分布的优势)来加速运算过程。
4.RNN ( LSTM/GRU/Bi-LSTM )
RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,但总归序列数据有一个特点——后面的数据跟前面的数据有关系。
RNN的结构及变体
这是一个标准的RNN结构图,图中每个箭头代表做一次变换,也就是说箭头连接带有权值。左侧是折叠起来的样子,右侧是展开的样子,左侧中h旁边的箭头代表此结构中的“循环“体现在隐层。
在展开结构中我们可以观察到,在标准的RNN结构中,隐层的神经元之间也是带有权值的。也就是说,随着序列的不断推进,前面的隐层将会影响后面的隐层。图中O代表输出,y代表样本给出的确定值,L代表损失函数,我们可以看到,“损失“也是随着序列的推荐而不断积累的。
除上述特点之外,标准RNN的还有以下特点:
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
AI项目体验
https://loveai.tech