【问题标题】:One Hot Encoding for words from a text corpus文本语料库中单词的一种热编码
【发布时间】:2017-05-21 02:02:05
【问题描述】:

如何使用 tensorflow 创建一个单词的热编码,每个单词由词汇大小的稀疏向量表示,并且该特定单词的索引等于 1 ?

类似

oneHotEncoding(words = ['a','b','c','d']) -> [[1,0,0,0],[0,1,0,0],[0 ,0,1,0],[0,0,0,1]] ?

【问题讨论】:

  • here 解释了如何在Tensorflow中使用一种热编码

标签: scikit-learn one-hot-encoding


【解决方案1】:

Scikits 一个热编码器采用一个 int 数组 (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html)。基于您的示例,您可以使用字典将单词映射到整数并从那里开始:

import numpy as np
from sklearn.preprocessing import OneHotEncoder
wdict = {'a': 0, 'b': 1, 'c': 2, 'd': 3}
dictarr = np.asarray(wdict.values()).reshape(-1, 1)
enc = OneHotEncoder()
enc.fit(dictarr)
enc.transform([[2]]).toarray()

产生

array([[ 0.,  0.,  1.,  0.]])

【讨论】:

    猜你喜欢
    • 2015-08-02
    • 2018-06-21
    • 2014-06-26
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2018-12-17
    相关资源
    最近更新 更多