1 词嵌入(word2vec)
在自然语言这套系统中,词是表义的基本单元。
但是在计算机以及程序运算中,词是识别不了的。任何的内容都需要转化成向量embedding的形式。
于是我们就需要对词的特征进行表征,所以词向量就应运而生了。
把词映射为实数域向量的技术也叫词嵌入(word embedding)。
2 用onehot表示词向量的弊端
2.1 onehot 词向量
假设词典中一共有N个不同的词,每个词可以和从0到N−1的连续整数一一对应。这些与词对应的整数叫作词的索引。
假设一个词的索引为i,那么该词的onehot词向量就是只有第i位位1,其他N-1位全部为0的向量。
换句话说:就是有多少个不同的词,我就会创建多少维的向量。
2.2 onehot词向量存在的问题
1 词向量集合过于稀疏,需要极大的存储空间
2 无法进行单词之间的相似度计算。(因为每个单词在空间中都是正交的向量,彼此之间没有任何联系。)【像坐标系中的向量,我们可以根据余弦相似度(两个向量之间的夹角)来判断两个向量的相似程度】
2.3 onehot词向量问题的解决方案
1,跳字模型(skip-gram):通过中心词来推断上下文一定窗口内的单词。
2,连续词袋模型(continuous bag of words,CBOW):通过上下文来推断中心词。