趁机总结一下之前遇到过的一些小trick吧:
- 数据预处理时vocab的选取(前N个高频词或者过滤掉出现次数小于3的词等等)
- 词向量的选择,可以使用预训练好的词向量如谷歌、facebook开源出来的,当训练集比较大的时候也可以进行微调或者随机初始化与训练同时进行。训练集较小时就别微调了
- 结合要使用的模型,这里可以把数据处理成char、word或者都用等
- 有时将词性标注信息也加入训练数据会收到比较好的效果
- 至于PAD的话,取均值或者一个稍微比较大的数,但是别取最大值那种应该都还好
- 神经网络结构的话到没有什么要说的,可以多试几种比如fastText、TextCNN、RCNN、char-CNN/RNN、HAN等等。哦,对了,加上dropout和BN可能会有意外收获。反正模型这块还是要具体问题具体分析吧,根据自己的需求对模型进行修改(比如之前参加知乎竞赛的时候,最终的分类标签也有文本描述,所以就可以把这部分信息也加到模型之中等等)
- 超参数的话,推荐看看之前TextCNN的一篇论文,个人感觉足够了“A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification”
- 之前还见别人在文本领域用过数据增强的方法,就是对文本进行随机的shuffle和drop等操作来增加数据量

本文总结了文本分类过程中的各种技巧,包括数据预处理、词向量选择、模型选择和超参数调整。预处理涉及vocab选取、词性标注、数据增强等;模型部分讨论了词袋模型、词向量模型及数据平衡策略;还提到了特定场景下的特殊处理,如恶意文本的中文非法字符处理和词性、情感特征的利用。
最低0.47元/天 解锁文章
2592





