过去了17天,按照学习计划来说,已经严重超时了。 主要的问题是在数据预处理部分。 Kaggle的IMDB情感分析任务其实很简单,train文件用于训练,test文件用于测试。
整合train和test(就是说所有语料库)生成词袋或词向量模型。也可以下载已有的word2vec或是glove词向量模型。
生成的词向量模型就是将每一个词向量化,方便后面的计算。依据生成的词向量模型对train和test语料进行向量化。
把向量化的train数据和标签输入分类模型中进行预测,完成模型训练。
评估模型,并对test进行预测。
数据集是tsv格式数据,说白了是分成了5类:
0 - negative
1 - somewhat negative
2 - neutral
3 - somewhat positive
4 - positive
我们先读取一下看看。TSV文件和CSV的文件的区别是:前者使用\t作为分隔符,后者使用,作为分隔符。
可以看到总共156060条记录,其中打2分的数据最多,说明大家都还是很中庸啊。
以上是数据的描述性统计结果,当然,还可以做一下可视化,这些参考kaggle的泰坦尼克号任务操作。
接下来是要对语料库向量化,这其实就是一种对文本特征的抽取。
文中提到了两种方式:BOW(词袋)和Word2Vec,相比而言,Word2Vec所包含的信息更多,而且gensim库已经打包好了,在这里使用word2vec。
在2017年新的特征抽取算法transformer将会横扫一切……
在完成词向量抽取后,将进行分类器的训练。 在这里,我们将train和test数据集进行合并,构造出一个维度为200的词向量模型,使用gensim库进行构建。
# 合并test和train的数据,用于训练词向量模型
newDf = pd.concat(, "sentiment":result} )
output.to_csv( "Word2Vec_AverageVectors.csv", index=False, quoting=3 )
到这里大致就完成了,但是,我们希望使用RNN来处理,接下来就是构建LSTM作为分类器。