矢量语义——从TF-IDF到Word2Vec你所需要知道的一切!

本文由罗周杨原创,转载请注明作者和出处。未经授权,不得用于商业用途

斯坦福经典NLP教材Speech and Language Processing-Vector Semantics学习笔记。

我们该如何表示一个单词的意思呢?你可能会想到其中的一种,用一个向量来表示一个单词!没错,这个章节就是讲单词的表示。

文档和向量

如果用向量来表示一个文档,该怎么表示呢?

假设现在有四个文档,我们统计各个单词在文档中出现的次数,可以得到一张表格:

- As You Like It Twelfth Night Julius Caesar Henry V
battle 1 0 7 13
good 114 80 62 89
fool 36 58 1 4
wit 20 15 2 3

当然实际上文档的单词数量远不止这几个。

上面表中,有4个单词,所以每一个文档可以表示成一个由单词频率组成的向量:

As You Like It ------> [ 1,114,36,20]
 Twelfth Night ------> [ 0, 80,58,15]
 Julius Caesar ------> [ 7, 62, 1, 2]
       Henry V ------> [13, 89, 4, 3]

如果单词有很多个,假设是N,那么每个文档就可以表示成一个N维的向量。可见,这样的向量表示是稀疏的(sparse)

单词和向量

除了文档可以表示成一个向量,单词也可以。

和文档类似,我们可以统计出一张表格,但是不同的是,我们不是统计单词的个数,而是统计两个单词出现在一起的频数。看一张表格你就知道了:

- aardvark computer data pinch result sugar
apricot 0 0 0 1 0 1
pineapple 0 0 0 1 0 1
digital 0 2 1 0 1 0
information 0 1 6 0 4 0

这个表格是一个 V × V V\times V V×V的表格,每个数字表示当前列的单词出现在当前行单词后面的次数,这就构成了上下文,所以这个表格其实就是一个上下文矩阵,其中V就是总的词典的大小,也就是单词的数量。

我们取出每一行,就可以得到一个单词的向量表示,例如:

digital ------> [ 0,..., 2, 1, 0, 1, 0]

同样的,这样的表示也是稀疏的

Cosine计算相似度

现在我们已经有文档或者单词的向量表示了,那么该如何计算它们之间的相似度呢?一个很常见的方法就是余弦相似度(Cosine similarity)

学过高中数学就知道,两个向量的**点积(dot-product)或者内积(inner product)**可以由以下公式计算:

dot-produtc ( v → , w → ) = ∑ i = 1 N v i w i = v 1 w 1 + v 2 w 2 + ⋯ + v N w N \text{dot-produtc}(\overrightarrow{v},\overrightarrow{w}) = \sum_{i=1}^Nv_iw_i=v_1w_1+v_2w_2+\dots+v_Nw_N dot-produtc(v ,w )=i=1Nviwi=v1w1+v2w2++vNwN

而**向量的模(vector length)**为:

∣ v → ∣ = ∑ i = 1 N v i 2 \vert\overrightarrow{v}\vert = \sqrt{\sum_{i=1}^Nv_i^2} v =i=1Nvi2

又:

a → ⋅ b → = ∣ a → ∣ ∣ b → ∣ cos ⁡ θ \overrightarrow{a}\cdot\overrightarrow{b} = \vert{\overrightarrow{a}}\vert \vert{\overrightarrow{b}}\vert \cos\theta a b =a b cosθ

即:

cos ⁡ θ = a → ⋅ b → ∣ a → ∣ ∣ b → ∣ \cos\theta = \frac{\overrightarrow{a}\cdot\overrightarrow{b}}{\vert{\overrightarrow{a}}\vert \vert{\overrightarrow{b}}\vert} cosθ=a b a b

所以,我们可以计算 v → \overrightarrow{v} v w → \overrightarrow{w} w 的余弦值:

cos ⁡ ( v → , w → ) = v → ⋅ w → ∣ v → ∣ ∣ w → ∣ = ∑ i = 1 N v i w i ∑ i = 1 N v

  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值