gpt4 book ai didi

keras 使用 one_hot 类对文本进行预处理

转载 作者:行者123 更新时间:2023-12-04 12:42:02 29 4
gpt4 key购买 nike

我在网上学习 keras 时遇到了这段代码。

from keras.preprocessing.text import one_hot
from keras.preprocessing.text import text_to_word_sequence

text = 'One hot encoding in Keras'
tokens = text_to_word_sequence(text)
length = len(tokens)
one_hot(text, length)

这会像这样返回整数......

[3, 1, 1, 2, 3]

我不明白独特的词为什么以及如何返回重复数字。例如即使文本中的单词是唯一的,也会重复 3 和 1。

最佳答案

one_hot 的文档描述了它是如何包装hashing_trick的:

This is a wrapper to the hashing_trick function using hash as the hashing function; unicity of word to index mapping non-guaranteed.

来自 hasing_trick 的文档:

Two or more words may be assigned to the same index, due to possible collisions by the hashing function. The probability of a collision is in relation to the dimension of the hashing space and the number of distinct objects.

由于使用了散列,不同的词有可能被散列到同一个索引。非唯一散列的概率与所选词汇量大小成正比。由 Jason Brownlee 建议 Jason Brownlee使用比单词大小大 25% 的词汇量来增加哈希值的唯一性。

按照 Jason Brownlee 在您的案例中提出的建议会导致:

from tensorflow.keras.preprocessing.text import one_hot
from tensorflow.keras.preprocessing.text import text_to_word_sequence
from tensorflow.random import set_random_seed
import math

set_random_seed(1)
text = 'One hot encoding in Keras'
tokens = text_to_word_sequence(text)
length = len(tokens)
print(one_hot(text, math.ceil(length*1.25)))

返回整数

[3, 4, 5, 1, 6]

关于keras 使用 one_hot 类对文本进行预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57653204/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com