在以下示例中,文本:
“那只敏捷的棕色狐狸跳过了那只懒狗。”
获取编码[5, 9, 8, 7, 9, 1, 5, 3, 8]。
我的代码:

这样,“brown”和“dog”这两个词就可以得到8、quick和jumped 9的编码。
如果不保证一致性,编码的意义是什么?
https://machinelearningmastery.com/prepare-text-data-deep-learning-keras/ https://keras.io/preprocessing/text/
发布于 2019-09-23 14:10:09
函数名的选择似乎很糟糕,因为one_hot函数实际上正在使用散列,并且等同于hashing_trick (具有标准设置)。
见本期:https://github.com/keras-team/keras/pull/6887
当我这么做时:
from keras.preprocessing.text import one_hot
from keras.preprocessing.text import hashing_trick
text = 'The quick brown fox jumped over the lazy dog.'
print(one_hot(text, n=9))
print(hashing_trick(text, n=9))我得到了相同的结果:
[5, 6, 2, 6, 5, 8, 5, 4, 1]
[5, 6, 2, 6, 5, 8, 5, 4, 1]因此,如果您想要“真正”(唯一)一个热编码结果,您需要求助于其他解决方案(目前没有Keras内置解决方案,正如我所相信的)。
发布于 2019-09-23 14:03:37
你可以把它看作是降维,尽管知道它是如何和为什么把某些东西放入桶里是很重要的。我记得我读过关于Vowpal Wabbit做了一个复杂的版本(“特性散列”)来处理一个"terafeature“。
https://datascience.stackexchange.com/questions/60624
复制相似问题