教程1:https://mp.weixin.qq.com/s/dBsfygrVkFxMHE1q-q7HRQ
词向量编码:
1、独热码:one-hot code
2、word2vec:文本生成词向量模型,该方法提出目的就是解决独热码无法体现词语之间的差异性与相似性、丢失了语序信息;产生的数据高维且稀疏。而词向量主要有以下一些特点
1、如果单词量为N,那么可以用一个n维的向量来表示每一个单词,并且n远远小于N,常见的n为100到300,也可以更具具体和需求问题设定
2、词向量每一个位置不再是只能取0和1的数值,而是可以取任意的实数
3、词向量之间的差在一定程度上是有意义的,比如,中国的词向量为v1,北京的词向量为v2,美国的词向量为s2,华盛顿的词向量为s2,通过word2vec学习出来的这些词向量大致有这样的特征。这个是很漂亮的一个近似关系,相当于说v1-v2近似的等于首都这种关系,也正是受到word2vec的启发,在知识图谱表示学习中,衍生了一些名为Trans的编码算法
4、除此之外,地名和地名在词向量空间中的距离比地名和动物的词向量距离近,等等,换句话说就是描述同一属性和种类的词向量的距离要小于不同属性和种类的词向量的距离
word2vec包含以下两个模型:
continous bag of words(CBOW): 通过一个或多个单词的上下文来进行这个词语的预测
Skip Gram:通过一个或多个单词来进行上下文的预测。
通过教程1可以发现第1,2点实现比较好理解,而第3,4点太难理解,可能我还是个NLP新手,这里推荐教程2,比教程1好理解多,毕竟输入输出都解释得比较清楚,当然教程1还是比较全面的。
教程2:http://blog.leanote.com/post/[email protected]/Word2Vec-Parameter-Learning-Explained