AYE89

coding & learning

导航

文本分类小结

Posted on 2018-02-24 14:44  AYE89  阅读(470)  评论(0编辑  收藏  举报

阿里工程师的综述(包括多标签分类)

  • 文本的分布式表示:词向量(word embedding)
  • 深度学习的结构一般为:把文本表示为词向量(比如word2vec,需fine-tune) -- 接一个CNN/RNN提取特征 -- 用一个softmax分类
  • 最新的结构是:TextRNN + Attention;
  • 实际中文本分类任务单纯用CNN已经足以取得很不错的结果了,我们的实验测试RCNN对准确率提升大约1%,并不是十分的显著。最佳实践是先用TextCNN模型把整体任务效果调试到最好,再尝试改进模型。
  • 一些工程技巧:如超参调节、如何避免训练震荡

 

传统与深度学习模型7种实验及代码

  • 作者的模型都设计的很简单,所以训练时间较短;工程中需改进模型
  • 深度学习方法对比了是否使用word2vec,结论是使用更好;
  • 与传统方法相比,深度学习省去了设计特征工程的时间,但是难点在超参调节和训练;
  • 参数调节时,画图记录并观察何时收敛是一种有效方法;

 

Keras:  Text & sequences examples

github

CNN例子:pretrained_word_embeddings.py

CNN + LSTM/GRU 较为常用,工程中的例子参见github-TextCate

word2vec篇

中英文维基百科语料上的Word2Vec实验

word2vec介绍

 

语料库

enron spam mail 数据集

spam-filter github

新闻  20 Newshroup DataSet

 

Build a Spam Filter

http://pythonforengineers.com/build-a-spam-filter/