微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

统计推理: tf.keras.preprocessing.sequence skipgrams 如何以及为什么以这种方式使用sampling_table?

如何解决统计推理: tf.keras.preprocessing.sequence skipgrams 如何以及为什么以这种方式使用sampling_table?

sampling_table parameter 只在 tf.keras.preprocessing.sequence.skipgrams 方法中使用一次,以测试 sampling_table 中目标词的概率是否小于某个从 0 到 1 的随机数({ {1}})。

如果你有一个很大的词汇量并且一个句子使用了很多不常用的词,这会不会导致方法在创建skipgrams时跳过了很多不常用的词?给定对数线性的采样表的值,就像 zipf 分布一样,这是否意味着您最终可以完全没有跳跃克数?

对此感到非常困惑。我正在尝试复制 Word2Vec tutorial 手不明白或如何使用 random.random()

source code 中,这是有问题的行:

sampling_table

解决方法

这看起来像 word2vec 实现中常见的频繁词下采样功能。 (在原始 Google word2vec.c 代码版本和 Python Gensim 库中,它由 sample 参数调整。)

实际上,很可能已经预先计算了 sampling_table,以便始终使用最稀有的词,跳过一些常用词,跳过一些最常用的词。

这似乎是 comment for make_sample_table() 所反映的意图。

您可以继续使用探测值调用它,例如对 100 个单词的词汇表说 1000,然后看看它返回什么 sampleing_table。我怀疑它会在早期接近 1.0(删除大量常用词),并接近 0.0 晚期(保留大多数/所有稀有词)。

通过为中频和低频词保留更多的相对注意力,而不是过度训练/过度加权大量词,这往往会提高词向量的质量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?