我是数据科学和sklearn的新手。
我有一个字符串列表,如下所示:
[
['JAVA', 'JAVASCRIPT', 'PYTHON'],
['JAVASCRIPT', 'PYTHON', 'NODEJS'],
['JAVASCRIPT', 'JAVA'],
['JAVASCRIPT', 'PYTHON'],
['JAVA']
]
我应该如何将上面的字符串标签转换成数字标签?
我想弄到数字标签,
其中每一个表示一个特定维度的向量,如下所示:
JAVA PYTHON JAVASCRIPT NODEJS
1st 1 1 1 0
2nd 0 1 1 1
3rd 1 0 1 0
4th 0 1 1 0
5th 1 0 0 0
然后在余弦相似公式中使用它们。
我被告知sklearn labelEncoder可以用于数字标签的转换,但我不知道怎么做? 非常感谢你的回答。
您可以使用SkLearn的MultilabelBinarizer
,它的目的正是在迭代的迭代和多标签格式之间进行转换:
from sklearn.preprocessing import MultiLabelBinarizer
l = [
['JAVA', 'JAVASCRIPT', 'PYTHON'],
['JAVASCRIPT', 'PYTHON', 'NODEJS'],
['JAVASCRIPT', 'JAVA'],
['JAVASCRIPT', 'PYTHON'],
['JAVA']
]
mlb = MultiLabelBinarizer()
a = mlb.fit_transform(l)
pd.DataFrame(a, columns=mlb.classes_)
JAVA JAVASCRIPT NODEJS PYTHON
0 1 1 0 1
1 0 1 1 1
2 1 1 0 0
3 0 1 0 1
4 1 0 0 0