【问题标题】:from keras.preprocessing.text import one_hot equivalent in pytorch?从 keras.preprocessing.text 在 pytorch 中导入 one_hot 等效项?
【发布时间】: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 中执行相同的程序并获得如上所示的输出。

【问题讨论】:

    标签: python nlp pytorch recurrent-neural-network word2vec


    【解决方案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])]
    

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2019-01-02
      • 2020-09-23
      • 1970-01-01
      • 2011-02-03
      • 2021-07-04
      • 1970-01-01
      • 2022-10-12
      • 1970-01-01
      相关资源
      最近更新 更多