《TensorFlow自然语言处理》—3.4 skip-gram算法

举报
华章计算机 发表于 2019/07/21 21:55:37 2019/07/21
【摘要】 本节书摘来自华章计算机《TensorFlow自然语言处理》一书中的第3章,第3.4.1节,[澳] 图珊·加内格达拉(Thushan Ganegedara) 著 马恩驰 陆 健 译。

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:

 image.png

对于此示例,数据集将如下所示:

      image.png

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。