word2vec笔记

背景知识.one—hot向量
对每个元素给定唯一的01序列标签,eg:a,b,c 分别对应100,010,001

onehot的一个缺点是每个单词都是独立的和正交的,无法判别词之间的相似程度。

1.词向量
对于我们输入给神经网络的数据,我们要用一种方式来表示。转换成三维平面上,一个词就是空间上的一个点,通过不同维度的数值来定义一个表示唯一的词向量。

2.word2vec
2.1在word2vec中最重要的是对参数的训练,在one—hot中我们用顺序化的01位每个单词贴唯一的标签,而在word2上输入的向量是随机赋值通过训练生成一个结果向量y,再将训练的y喂入网络重新,以用来更新我们对输入向量的参数,最终将随机向量更新形成一套恰当的向量。

在谷歌的word2vec框架中比较重要的是以下四个部分跳字模型(skip-gram)连续词模型(continuous bag of words,简称 CBOW),以及两种高效训练的方法:负采样(negative sampling)层序 softmax(hierarchical softmax)。值得一提的是,word2vec 词向量可以较好地表达不同词之间的相似度和类比关系

001.在跳字模型中,我们用一个词来预测它在文本序列周围的词。例如,给定文本序列 “the”,“man”,“hit”,“his”,“son”。设背景窗口大小为 2, 跳字模型所关心的是,给定 “hit”,生成它邻近词 “the”,“man”.“his”,“son” 的概率(在这个例子中,“hit” 叫中心词,“the”,“man”,“his”,“son” 叫背景词)

002.连续词袋模型与跳字模型类似。与跳字模型最大的不同是,连续词袋模型是用一个中心词在文本序列周围的词 来预测中心词。简单的说就是,跳字模型用中心词预测周围的词;连续词袋模型用周围的词预测中心词。例如,给定文本 “the”,“man”,“hit”,“his”,“son”,连续词袋模型所关心的是,邻近词 “the”,“man”,“his”,“son” 一起生成中心词 “hit” 的概率

import torch
import numpy as np
import torch.nn as nn
import torch.optim as optim
import torch.utils.data as Data
import matplotlib.pyplot as plt

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
dtype = torch.FloatTensor

'the preparation'
sentences = ["jack like dog", "jack like cat", "jack like animal",
  "dog cat animal", "banana apple cat dog like", "dog fish milk like",
  "dog cat animal like", "jack like apple", "apple like", "jack like banana",
  "apple banana jack movie book music like", "cat dog hate", "cat dog like"]

sentence_list = " ".join(sentences).split() #按空格切分成单词放入list中
print("sentence
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值