2017-01-06 2 views
3

テンソルフローを使用して、ボキャブサイズのスパースベクトルで表され、その特定の単語のインデックスが1に等しい各単語で、単語のホットエンコーディングを1つ作成するにはどうすればよいですか?テキストコーパスからの単語の1つのホットエンコーディング

何か

等oneHotEncoding(ワード= [ 'A'、 'B'、 'C​​'、 'D']) - > [[1,0,0,0]、[0,1、 0,0]、[0,0,1,0]、[0,0,0,1]]?

+0

を生み出す[ここ](https://stackoverflow.com/questions/33681517/ tensorflow-one-hot-encoder)は、Tensorflowで1つのホットエンコーディングを使用する方法の説明です – AAA

答えて

0

Scikitsの1つのホットエンコーダは、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.]]) 
関連する問題