649453932 / Chinese-Text-Classification-Pytorch

中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。
MIT License
5.27k stars 1.23k forks source link

vocab.pkl 与word2vec 预训练文件对应问题 #17

Closed rubby33 closed 4 years ago

rubby33 commented 4 years ago

大神你好,请问一个问题:

在 utils.py 中,main()方法将训练集中出现的字词, 重新生成vocab.pkl 以及对应的embedded npz文件。这样训练集中没有出现的字词就是unk,不会出现在vocab.pkl 也没有对应的pretrained embed。

请问为什么一定要加这个步骤了? 不加这个步骤,利用从搜狗新闻训练的所有字词及其预训练embedded向量,也可以顺利模型训练和预测。

1.增加这个步骤,只考虑训练集中出现的字词,可以提高准确性,还是别的考虑,谢谢? 2.另外vocab.pkl 中额外增加了UNK 和PAD,但是对应的embedded npz文件似乎没有对应UNK 和PAD 的id 对应的embed vector? 谢谢您 @649453932

649453932 commented 4 years ago

1.不会提高准确率,是为了减少模型参数,只提取出现过的字词,整体模型大小也就10M左右,但是若将预训练词向量中的所有字词全拿出来,那么这些向量就全都是模型的参数了,模型会变得特别大,但这对效果没有提升。 2.embedded npz文件中是有UNK和PAD的,两者是随机初始化的,代码中都有体现喔。