详细内容或原文请订阅后点击阅览
词形变换
如何使用 word2vec 的嵌入和 A* 搜索算法在单词之间变换。
来源:Another Datum单词变形¶
¶我假设您熟悉图像变形 - 通过无缝过渡将一张图片变为另一张图片的过程。那么单词变形是什么样的呢?如果我们想从一个单词无缝过渡到另一个单词,它会经过哪些单词?
图像变形 单词变形在这篇文章中,我将描述如何使用 word2vec 的嵌入和 $A^*$ 搜索算法在单词之间变形。
为了执行单词变形,我们将定义一个图 $G$,其中节点集 $N$ 代表单词,并且有一些权重函数 $f : N \times N \rightarrow \mathbb{R}_{\geq 0}$。给定一个起始词 $n_{\text{start}}$ 和一个结束词 $n_{\text{end}}$,我们的目标是在图中找出一条路径,使 $f$ 引起的权重总和最小化:
$\text{argmin}_{\langle n_1, ..., n_k \rangle : k \in \mathbb{N}, n_1, ..., n_k \in N, n_1 = n_{\text{start}}, n_k = n_{\text{end}}}\sum_{i=1}^{k-1} f(n_i, n_{i+1})$
通常,当人们谈论单词变形时,他们的意思是寻找一条在 $n_{\text{start}}$ 和 $n_{\text{end}}$ 之间的路径,其中只有单词之间存在一条边,因此可以通过改变一个单词来实现另一个单词字母,如这里所示。在这种情况下,当存在这样的变化时,$f(n_1, n_2)$ 为 1,否则为 $\infty$。
这里在这篇文章中,我将向您展示如何在语义相似的单词之间进行变形,即 $f$ 将与语义相关。以下示例说明了两种方法之间的区别:给定 $n_{\text{start}} = \text{tooth}$,$n_{\text{end}} = \text{light}$,每次更改一个字符的方法可导致
可导致tooth, booth, boots, botts, bitts, bitos, bigos, bigot, bight, light
tooth, booth, boots, botts, bitts, bitos, bigos, bigot, bight, light
而本文将定义的语义方法可导致
tooth, retina, X_ray, light
tooth, retina, X_ray, light