如何解决从 keras.preprocessing.text 导入 pytorch 中的 one_hot 等价物?
我刚开始使用 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,1345,879],[123,7653,1,5678,7890]]
如何在 pytorch 中执行相同的程序并获得如上所示的输出。
解决方法
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,9]),array([0,2,1,6,3])]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。