零基础入门NLP之新闻分类

基于textcnn+word2vec的分类

  • 之前试验了fasttext进行文本分类的方法,最终效果并不是特别理想,比之前传统机器学习的得分稍低,这次试用textcnn+word2vec的方式进行训练
  • word2vec是采用n-gram或CBOW的方式对输入数据进行编码,不同于one-hot编码,word2vec文本向量小(不再是词典大小),也不具有稀疏性,同时还考虑到了每个单词前后文的信息
  • 这里使用gensim库进行词向量的训练零基础入门NLP之新闻分类
  • 因为最终词向量是应用至embedding层,因此需要保存模型并建立对应转化表,得到最终导入embedding层的权重矩阵零基础入门NLP之新闻分类
  • 和fasttext一样,还需要对数据进行长度统一,同时需要将输入数据转化成新词表的对应值
  • textcnn的网络结构主要是有三个不同大小卷积核的cnn加上全连接层构建而成零基础入门NLP之新闻分类
  • 之后便可以使用该网络进行训练,同样是10个epoch,textcnn最终线上分数可到93.59,优于之前模型
  • 另外用word2vec加上fasttext发现效果并没有明显提升,不知道是哪里出现了错误
  • 除textcnn外还搭了textrnn,但是可能是数据处理不当,gpu显存不够,训练不起来