《TensorFlow自然语言处理》—3.4 skip-gram算法
3.4 skip-gram算法
我们将讨论的第一个算法称为skip-gram算法,它由Mikolov和其他人在2013年提出,该算法是一种利用文本单词上下文来学习好的词嵌入的算法。让我们一步一步地了解skip-gram算法。
首先,我们将讨论数据准备过程,然后介绍理解算法所需要的表示法。最后,我们将讨论算法本身。
正如我们在许多地方所讨论的那样,单词的含义可以从围绕该单词的上下文单词中得到。但是,建立一个利用这种性质来学习单词含义的模型并不是很容易。
3.4.1 从原始文本到结构化的数据
首先,我们需要设计一种方法来提取可以送入学习模型的数据集,这样的数据集应该是格式为(输入,输出)这样的一组元组。而且,这需要以无监督的方式创建。也就是说,人们不应该手动设置数据的标签。总之,数据准备过程应该执行以下操作:
获取给定单词的周围单词
以无监督的方式执行
skip-gram模型使用以下方法来构建这样的数据集:
1.对于给定的单词wi,假设上下文窗口大小为m。上下文窗口大小,指的是单侧被视为上下文的单词数。因此,对于wi,上下文窗口(包括目标词wi)的大小为2m + 1,如下所示:[wi - m, …, wi - 1, wi, wi + 1, …, wi + m]。
2.接下来,输入输出元组的格式为[…, (wi , wi - m), …, (wi , wi - 1), (wi , wi + 1), …, (wi,wi + m), …];这里,m + 1≤i≤N - m,N是文本中用于获得实际含义的单词数。让我们假设以下句子和上下文窗口大小m为1:
对于此示例,数据集将如下所示:
- 点赞
- 收藏
- 关注作者
评论(0)