Ami*_*mir 6 nlp information-retrieval google-api-python-client word2vec word-embedding
我完全了解单词嵌入(skip-gram,CBOW)的含义和方法.我知道,谷歌有一个word2vector API,通过获取单词可以生成向量.但我的问题是这样的:我们有一个条款,包括主题,对象,动词......每个单词以前都是由Google API嵌入的,现在是"我们如何将这些向量组合在一起创建一个等于条款?" 例子:条款:V ="狗咬人"在谷歌嵌入后,我们有V1,V2,V3,每个人都映射到狗,咬人,男人.我们知道:V = V1 + V2 + V3我们如何提供V?如果你通过一个真实载体的例子来解释它,我将不胜感激.
向量基本上只是数字列表。通过将每个列表中相同位置的数字加在一起来添加向量。这是一个例子:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b # vector addition
c is [(1+4), (2+5), (3+6)], or [5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
如该问题所示,在python中执行此操作的简单方法如下:
map(sum, zip(a, b))
Run Code Online (Sandbox Code Playgroud)
向量加法是线性代数的一部分。如果您不了解向量和矩阵的运算,那么很难理解围绕词向量的数学运算,因此,您可能通常希望学习更多有关线性代数的知识。
通常,将单词向量加在一起是一种近似句子向量的好方法,因为对于任何给定的单词集,都有明显的顺序。但是,您的Dog bites man和的示例Man bites dog显示了添加向量的弱点-结果不会根据单词顺序发生变化,因此即使两个句子的含义非常不同,这两个句子的结果也将相同。
有关获取受单词顺序影响的句子向量的方法,请查看doc2vec或刚刚发布的InferSent。
| 归档时间: |
|
| 查看次数: |
3640 次 |
| 最近记录: |