词嵌入
词嵌入矩阵是自然语言处理里非常重要的东西。它可以帮助我们快速的使用小样本建立一个不错的自然语言处理任务。那么他是如何生成的呢。
格式
词嵌入矩阵一般在一个很大的字库里学习的,其中包含许多的单词,格式为[keyword_num,vec_num]。
keyword_num就是训练字库的字的数量(英文为一个单词或一个字母);
vec_num代表了用多少维的向量表示字库里的一个字。
输入的数据为一句话,格式为[m,maxLen]
m为输入样本数;
maxLen为句子的最大长度,不够用0补全。
每个maxLen为一个单词在字库里的编号,我们知道一个单词可以表示为一个one_hot向量,只有一个位置为1,其他为0。此处为这个位置的索引。
每个这样的one_hot向量与词嵌入矩阵相乘得到最后的网络输入,维度为[m,maxLen,vec_num]。
词嵌入矩阵的训练
现在一般使用其他人训练好的词嵌入矩阵,很多人已经使用庞大的字库对词嵌入矩阵进行训练。而且网上已经有大量的开源词嵌入矩阵的训练结果。
词嵌入矩阵的训练方法为,使用Word2Vec,负样本,Skip-Gram,Glove等。