如何创建一系列序列的热编码

时间:2017-03-28 08:40:08

标签: sequences one-hot-encoding

我想对数据集进行一次热编码,看起来像[[5,7,11,9,13,1,...],[3,7,5,9,16,... ],..];其中每个序列的长度为24,每个序列中最大可能的整数为33,序列总数为200.每个序列是句子的整数表示。 我如何才能有效地编写一个热门编码? 我试过了

for sentence in sentences:    
n=maxlen    
k=max_vocabullary    
m=np.zeros((n,k))    
m[np.arange(n),sentence]=1     
print (m)  

1 个答案:

答案 0 :(得分:1)

尝试使用Scikit-learn的OneHotEncoder。

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
encoded_seqs = enc.fit_transform([[5,7,11,9,13,1,...],[3,7,5,9,16,....],..])

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html