word2vec确是挺好用的。
关于原理网上比较多。
NLP17-word2vec的一些想法
【1】大白话讲解word2vec到底在做些什么
http://blog.csdn.net/mylove0414/article/details/61616617
word2vec是一个最初级的入门白话讲述。作为一个感性认识的讲述。
【2】word2vec原理及实现
http://blog.csdn.net/FANGPINLEI/article/details/52200832
这篇会稍带有模型来疏理一下;

【3】word2vec 中的数学原理详解
http://blog.csdn.net/itplus/article/details/37969519
这有一系列文章,是最全面,最透彻的一个博文讲解。来龙去脉等全部基础包括:
(一)目录和前言
(二)预备知识
(三)背景知识
(四)基于 Hierarchical Softmax 的模型
(五)基于 Negative Sampling 的模型
(六)若干源码细节

【4】word2vec原理推导与代码分析
http://www.hankcs.com/nlp/word2vec.html
这是一篇高度总结的文章,总结的原料还是来自《word2vec 中的数学原理详解》

总结:以下以CBOW为例
word2vec更像是统计学习的一种方法。
NLP17-word2vec的一些想法
就是求解上面这个公式最大似然函数问题;
主要思想:对于语料的目标词,用目标词的相邻词作为条件,计算相邻词,对于所有目标词出现的最大化。反映词与词之间的位置关系,也反映了一个语料的特征。
对于这个词的表示向量是来自huffman树上的权重。
基于神经网络的语言模型,进行了进一步简化,从结构来看,一共三层,输入层、投影层、输出层;输入2C个目标词的向量,C叫做窗口;到投影层进加累加;在输出层,采用了二叉树来实现多个二分类。
最后生成的向量就是二叉树中训练的参数。
按上面的对数似然可以看出是把所有叶节点汇总,至于汇总的概率就是从根到叶子节点乘积,对于一个分叉点分类,这里采用了逻辑回归的分类方法,其实再高大上点说这里其实是一个神经网络。
就这样就构成了一个word2vec的模型,妙!!!妙!!!妙!!!

或者,我们可以这样看待这个问题,发现问题:要挖掘语料中每个字符的特征,例如,词的位置关系。我们的问题域是在自然语言处理,业务上加入N-gram模型。好的,有词有一定语法关系就可以构造成一篇有意义的文章了。这里可以假设词的位置关系可以决定文章的中心语义的。现在对所有词寻找位置关系的特征。对于目标函数就是所有词处于一个最优相邻关系时,会是语料中最好的状态。

happyprince, http://blog.csdn.net/ld326/article/details/79476844

相关文章: