【问题标题】:one_hot Vs Tokenizer for Word representation用于单词表示的 one_hot Vs Tokenizer
【发布时间】:2020-12-23 15:20:38
【问题描述】:

我在许多博客中看到,人们使用 one_hot(来自 tf.keras.preprocessing.text.one_hot)将单词字符串转换为代表索引的数字数组。这并不能确保唯一性。而 Tokenizer 类确保唯一性(tf.keras.preprocessing.text.Tokenizer)。 那为什么 one_hot 比 tokenizer 更受欢迎呢?

更新:我知道 One_hot 中使用散列将单词转换为数字,但没有得到它的重要性,因为我们可以使用标记器类更准确地做同样的事情。

【问题讨论】:

    标签: tensorflow keras nlp


    【解决方案1】:

    不确定你所说的 uncity 是什么意思。我希望它与单词之间的顺序关系有关。这当然会因 ine 热编码而丢失。然而,当字数有限时,使用 one-hot 编码。如果说您的词汇表中有 10 个单词,您将创建 10 个新特征,这对于大多数神经网络来说都可以处理。如果您的数据集中除了单词序列之外还有其他特征说数字序数参数,您仍然可以创建单个输入模型。但是,如果您的词汇表中有 10,000 个单词,您将创建 10,000 个新特征,这些特征最多需要大量处理。因此,在大量词汇的情况下,最好使用“密集”编码“而不是由一种热编码生成的稀疏编码。您可以使用标记器编码的结果作为 keras 嵌入层的输入,该嵌入层将编码将单词放入 n 维空间,其中 N 是您指定的值。如果您有额外的序数特征,那么要处理数据,您的模型将需要多个输入。也许这就是为什么有些人更喜欢对单词进行热编码的原因。

    【讨论】:

    • 其实,这两个类都返回相同维度的数组(即字符串的长度) Tokenizer首先将词汇表作为输入进行处理,然后返回数字数组(代表索引)。 One_hot 仅适用于字符串并返回数字数组(也表示索引),但我们可以为 2 个不同的单词使用相同的数字(不能确保唯一性)。
    猜你喜欢
    • 2018-12-19
    • 2020-09-08
    • 2016-03-28
    • 2021-05-24
    • 1970-01-01
    • 2023-03-30
    • 2018-01-23
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多