基于机器学习的文本分类
- 本部分将使用传统机器学习模型对数据集训练并对测试集进行分类
- 首先需要做的是使用tf-idf对训练数据text部分进行编码
- 在nlp中传统表示文本的方法有三种
- one-hot编码:统计全部单词进行词库的构建,词库大小为V,每一个单词可以表示为长度为V的向量,向量中V-1个值为0,仅向量对应词库索引位置值为1
- 词袋模型:在one-hot编码中,每一行数据表示向量维度为NV(N为文本单词个数,V为词库大小),在词袋模型中,每一行数据表示向量维度为1V,其中向量中每一位置值代表其在句子中出现的频次
- 在sklearn中可以使用CountVectorizer进行词袋模型的实现
- tf-idf:tf-idf由两部分组成,tf是词语频率,idf是逆文档频率,tf计算方法为词语在该文档中出现的次数/当前文档中词语的总数,idf计算方法为log(文档总数/出现该词语的文档数)
- 本次试验将使用TF-IDF对文本进行编码,使用Ridge分类器进行分类,对特征不进行其他处理
- 代码如下- 未进行调参,使用全部训练数据进行训练,在测试集上进行分类,最终线上分数91