649453932 / Chinese-Text-Classification-Pytorch

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

您好,想咨询一下fasttext输入特征的结构问题 #14

Open 1009xy opened 4 years ago

1009xy commented 4 years ago

您好,您在定义fasttext的网络结构的时候,对于word,bigram和trigram为什么是在向量的维度上进行拼接(将300维的词向量扩充到900维),而不是直接在句子的维度上拼接(将长度为32的句子扩充到96)呢?刚刚接触这方面的东西,所以没有很理解,还望您能解答一下哈

def forward(self, x): out_word = self.embedding(x[0]) out_bigram = self.embedding_ngram2(x[2]) out_trigram = self.embedding_ngram3(x[3]) out = torch.cat((out_word, out_bigram, out_trigram), -1) out = out.mean(dim=1)

zelin-x commented 3 years ago

FastText原论文给的是Subword N-gram保证语序上的语义特征提取,那就许需要同时将这三个东西送入模型,总的模型的输入格式是# x (uni-gram,seq_len,bi-gram,tri-gram)。经过嵌入层后out_word,out_bigram,out_trigram都是32*300的二维张量,在最后一维进行进行拼接保证他们三个的特征同时输入进去。