FastText的实现
- 本次试验是基于fasttext的文本分类
- 使用pip install fasttext可安装fasttext库
- 因某些原因本机安装fasttext出错,于是使用pytorch写了简易的fasttext网络
- 这里首先导入了训练数据和测试数据,由于使用fasttext第一层为embedding层,需要将每一条数据的文本个数调整为固定值,因此选取了文本最大值进行截断(未达到的使用未使用编码填充)
- 之前观察了单词的对应情况,由于数据进行脱敏处理得到的全为数字,便不建立词库对应表,直接使用其数字进行embedding操作
- 建立数据集,方便使用dataloader加载数据
- 搭建网络,网络结构为一层embedding,一个线性层,一个bn层,一个relu层和最后的全连接层(fasttext原文使用的是结构化的sigmoid激活函数,这里简易版本使用relu激活函数)
- 使用该网络训练了10个epoch,最终线上0.909,分数比之前传统机器学习要稍低,可尝试加入预训练的词向量进行embedding,测试结果