从 keras.preprocessing.text 在 pytorch 中导入 one_hot 等效项?
Posted
技术标签:
【中文标题】从 keras.preprocessing.text 在 pytorch 中导入 one_hot 等效项?【英文标题】:from keras.preprocessing.text import one_hot equivalent in pytorch? 【发布时间】:2021-08-02 20:03:24 【问题描述】:我刚开始使用 pytorch 进行 NLP。我找到了一个教程,它使用from keras.preprocessing.text import one_hot
并将文本转换为给定词汇量大小的 one_hot 表示。
例如:
输入是
vocab_size = 10000
sentence = ['the glass of milk',
'the cup of tea',
'I am a good boy']
onehot_repr = [one_hot(words, vocab_size) for words in sentence]
输出是"
[[6654, 998, 8896, 1609], [6654, 998, 1345, 879], [123, 7653, 1, 5678,7890]]
如何在 pytorch 中执行相同的程序并获得如上所示的输出。
【问题讨论】:
【参考方案1】:PyTorch 从根本上与张量一起工作,而不是为与字符串一起工作而设计的。但是,您可以使用SK Learn's LabelEncoder
对您的文字进行编码:
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit([w for s in sentence for w in s.split()])
onehot_repr = [le.transform(s.split()) for s in sentence]
>>> [array([10, 5, 8, 7]), array([10, 4, 8, 9]), array([0, 2, 1, 6, 3])]
【讨论】:
以上是关于从 keras.preprocessing.text 在 pytorch 中导入 one_hot 等效项?的主要内容,如果未能解决你的问题,请参考以下文章