Word2Vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,它被大量地用在自然语言处理(NLP)中。Word2Vec模型中,主要有Skip-Gram和CBOW两种模型,本文将详细介绍这两种模型。
CBOW
CBOW全称是Continuous Bag of Words Model,即连续词袋模型,模型如下图(图为七月在线NLP课程截图)
由图可看出,CBOW的输入是上下文,输出是中间词,即是通过上下文内容来预测中间词。
接下来我们来看看如何训练我们的神经网络。假如我们有一个句子“The dog barked at the mailman”。
定义两个参数batch_size和bag_window,batch_size定义了batch个数,bag_window定义了上下文长度,假设我们设置batch_size为4,bag_window为1,那么我们得到的batch为:[['The', 'barked'], ['dog', 'at'], ['barked', 'the'], ['at,'mailman']]
,对应的labels为['dog', 'barked', 'at', 'the']
将batch作为x,label作为y喂入构造的网络中就可以生成一个概率分布