python生成词向量_词向量是如何生成的

本文通过实例讲解词向量的生成过程,特别是基于hierarchical softmax的CBOW模型。从初始化词向量、输入层、映射层到输出层,详细介绍了词向量如何在训练过程中通过概率最大化更新。同时,对比了CBOW与skip-gram模型的区别,并以新垣结衣为例进行说明。
摘要由CSDN通过智能技术生成

终于开了NLP的坑了(`・д・´),这次聊聊词向量是怎样生成的。现在有很多现成的模型,cbow,skip-gram,glove等,在python不同的库里面就可以调用(比如fasttext,genism等)。当然啦,这种百度搜索就能找到怎么import,怎么调参的内容我在这就不多叙述了。这次主要在数学层面上用实例讲讲词向量到底是怎么生成的。

遇到这个问题的时候,网上有个很经典的 《word2vec的数学原理》上面一文解释得很详细,但小白入门会看得很蒙逼,不知道初始向量值是怎么来的,全局来调用是怎样运行的。所以我就希望写一篇文章,举一些例子,去阐述这个词向量到底是怎样产生的。

《word2vec的数学原理》传送门 ( ・ˍ・) word2vec数学原理

这次我们主要以基于hierarchical softmax的cbow模型讲讲。这个模型有输入层,映射层,输出层(这些层具体怎么操作后面)首先我们有一些分好词的语料库。一般泛泛而谈的话,这两者区别在于cbow是一个词预测周围的词,skip-gram是周围的词去预测中心词。

下面我们列简单的几句话看怎么产生词向量。

日本的/新垣结衣/演技/好

演员/新垣结衣/演技/在线

初始化

在这个模型中,我们得设定好,我们生成的向量是几维的,窗口取多大。

解释:

维数:就是指词向量的维数,一般不能低于32维,毕竟如果语料库大,需要涵盖的信息多

窗口:就是取某个词的前后n个作为这个词的文本。比如我取n=1,词=‘新垣结衣’ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值