c语言中向量表示方法,词的向量表示方法 | 靖待的技术博客 | 小清新IT旅程 | 为中华之崛起而读书...

f4c2e0b57323accc24672c08110028b6.png

思想简记

NLP中,离散符号化的词语不能包含语义信息,所以把词映射到向量空间。

独热编码(One-Hot Encoding)

思想:将一个词表示成很长的向量,该向量的维度是整个词表的大小。对某一具体词,除了该词编号的维度为1,其余都为0。

ca4c21606e9000e717b96bf2e188b55f.png

独热编码

词袋模型(Bag-of-Words, BoW)

思想:将文本视为装词的袋子,不考虑词的上下文关系和顺序,只记录每个词在该文本(词袋)中出现的次数。

%E8%AF%8D%E7%9A%84%E5%90%91%E9%87%8F%E8%A1%A8%E7%A4%BA%E6%96%B9%E6%B3%95%E2%80%94%E2%80%94%E8%AF%8D%E8%A2%8B%E6%A8%A1%E5%9E%8B.png?raw=true

词袋模型

词向量/词嵌入(Word Embedding)

上面对词的表示方法没有考虑语义层面信息。为表示词与词之间的语义相似程度,提出词的分布式表示,即基于上下文的稠密向量表示法,通常称为词向量或词嵌入(Word Embedding)。

产生词向量的手段:

Count-based。基于计数的方法,即记录词的出现次数。

Predictive。基于预测的方法,即可通过上下文预测中心词,又可通过中心词预测上下文。

Task-based。基于任务的,即通过任务驱动的方法。通过对词向量在具体任务上的表现效果对词向量进行学习。

下面是经典开源工具word2vec中的CBoW模型和Skip-gram模型。

连续词袋模型(Continuous Bag-of-Words, CBoW)

和BoW相同点:不考虑词的顺序。

思想:将上下文词的独热表示与词向量矩阵相乘,提取相应的词向量并求和得到投影层,然后再经过一个Softmax层最终得到输出,输出的每一维表达的就是词表中每个词作为该上下文中心词的概率。整个模型训练时类似于一个窗口在训练语料上滑动,所以得名连续词袋模型。

Skip-gram模型(Continuous skip-gram Model)

思想:与CBoW思想刚好相反,它用中心词来预测上下文词。先通过中心词的独热表示从词向量矩阵中得到中心词的词向量,得到投影层,再经过一层Softmax得到输出,输出的每一维中代表某个词作为输入中心词的上下文出现的概率。

这两种模型都包含三层,输入层、投影层、输出层:

f4c2e0b57323accc24672c08110028b6.png

Word2Vec

训练好的词向量中,具有一定的空间平移性。

%E8%AF%8D%E7%9A%84%E5%90%91%E9%87%8F%E8%A1%A8%E7%A4%BA%E6%96%B9%E6%B3%95%E2%80%94%E2%80%94%E7%A9%BA%E9%97%B4%E5%B9%B3%E7%A7%BB%E6%80%A7.png?raw=true

空间平移性

如图,Rome和Italy之间存在is-capital-of关系,而Paris和France也同样存在。可以理解为知识图谱中的relation,即(Rome, is-capital-of, Italy)和(Paris, is-capital-of, France)。

通过两对在语义上关系相同的词向量相减可得相似结果,这种连续向量可近似地平移到其它具有类似关系的两个词向量之间。

如:

vector(‘Paris’) - Vector(‘France’) + Vector(‘Italy’) ≈ Vector(‘Rome’)

论文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值