本文主要是介绍【python、nlp】Word2vec的CBOW模式(文本张量表示),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一段用于训练的文本语料,再选定某段长度(窗口)作为研究对象,使用上下文词汇预测目标词汇。
假设我们给定的训练语料只有一句话:Hope can set you free(愿你自由成长),窗口大小为3,因此模型的第一个训练样本来自Hope can set,因为是CBOW模式,所以将使用Hope和set作为输入,can作为输出,在模型训练时, Hope,can,set等词汇都使用它们的one-hot 编码,如图所示:每个one-hot编码的单词与各自的变换矩阵(即参数矩阵3x5,这里的3是指最后得到的词向量维度)相乘之后再相加,得到上下文表示矩阵(3x1)。
接着,将上下文表示矩阵与变换矩阵(参数矩阵5x3,所有的变换矩阵共享参数)相乘,得到5x1的结果矩阵,它将与我们真正的目标矩阵即can的one-hot编码矩阵(5x1)进行损失的计算,然后更新网络参数完成一次模型迭代。
最后窗口按序向后移动◇重新更新参数◇直到所有语料被遍历完成,得到最终的变换矩阵(3x5),这个变换矩阵与每个词汇的one-hot编码(5x1)相乘,得到的3x1的矩阵就是该词汇的word2vec张量表示.
这篇关于【python、nlp】Word2vec的CBOW模式(文本张量表示)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!