介绍词向量word2evc概念,及CBOW和Skip-gram的算法实现( 九 )
#通过minimize函数 , 让程序根据loss , 完成一步对参数的优化更新
adam.minimize(loss)
#使用clear_gradients函数清空模型中的梯度 , 以便于下一个mini-batch进行更新
skip_gram_model.clear_gradients()
#每经过100个mini-batch , 打印一次当前的loss , 看看loss是否在稳定下降
step+=1
ifstep%100==0:
print("step%d,loss%.3f"%(step,loss.numpy()[0]))
#经过10000个mini-batch , 打印一次模型对eval_words中的10个词计算的同义词
#这里我们使用词和词之间的向量点积作为衡量相似度的方法
#我们只打印了5个最相似的词
ifstep%10000==0:
get_similar_tokens('one',5,skip_gram_model.embedding.weight)
get_similar_tokens('she',5,skip_gram_model.embedding.weight)
get_similar_tokens('chip',5,skip_gram_model.embedding.weight)
step100,loss0.693
step200,loss0.693
step300,loss0.693
step400,loss0.693
step500,loss0.691
step600,loss0.688
step700,loss0.682
step800,loss0.665
step900,loss0.658
step1000,loss0.646
step1100,loss0.631
step1200,loss0.612
step1300,loss0.592
step1400,loss0.568
从打印结果可以看到 , 经过一定步骤的训练 , Loss逐渐下降并趋于稳定 。 同时也可以发现skip-gram模型可以学习到一些有趣的语言现象 , 比如:跟who比较接近的词是"who,he,she,him,himself" 。
3.4词向量的有趣应用
在使用word2vec模型的过程中 , 研究人员发现了一些有趣的现象 。 比如得到整个词表的wordembedding之后 , 对任意词都可以基于向量乘法计算出跟这个词最接近的词 。 我们会发现 , word2vec模型可以自动学习出一些同义词关系 , 如:
shell
Top5wordsclosestto"beijing"are:
1.newyork
2.paris
3.tokyo
4.berlin
5.seoul
Top5wordsclosestto"apple"are:
1.banana
2.pineapple
3.huawei
4.peach
5.orange
除此以外 , 研究人员还发现可以使用加减法完成一些基于语言的逻辑推理 , 如:返回搜狐 , 查看更多
责任编辑:
- 麻醉导管密封性测试仪麻醉导管密封性测试仪YY/T 0321.|麻醉导管密封性测试仪技术参数介绍,请查收!
- 金舟视频大师2.7.5操作介绍
- mov转换成mp4格式的具体方法介绍
- 前几天介绍了多台电脑怎么共享一台打印机的设置方法|电脑共享打印机提示错误怎么办?
- 前几天介绍了怎么屏蔽微信某个人发的信息后|删除了微信中的好友,还能收到对方发来的信息吗?
- 平板电脑|红米平板电脑介绍,这里有它的特点
- vivo s15|Vivo s15手机怎么样?vivo s15参数配置及价格介绍
- 作为一个数码潮男|三千买块带屏幕的镜子值吗?网红悬浮歌词音箱体验
- 斐登|GAUSS 23最新更新
- 音箱|网红歌词音箱一网打尽,没想到差距有点大!
