scikit-learn矢量化词汇表,多个术语映射到相同的索引

时间:2014-10-01 19:41:58

标签: python scikit-learn

skikit-learn&n; tfidfVectorizer正确地将具有相同字典值的词汇表术语映射到同一索引,但是,它在输出中创建的列数与词汇表词典中的条目数量相同。是否有更好的方法来解决这个问题,而不是在转换后剥离额外的列?也就是说,在下面的例子中,我不想要第三列,因为它总是为零。

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer=TfidfVectorizer(vocabulary={'surgery':0, 'sx':0, 'radiology':1})
text=['i had surgery','patient sx went well','radiology department']
vectorizer.fit(text)
vectorizer.transform(text).todense()

>>> matrix([[ 1.,  0.,  0.],
            [ 1.,  0.,  0.],
            [ 0.,  1.,  0.]])

1 个答案:

答案 0 :(得分:1)

sklearn.feature_selection.VarianceThreshold(scikit-learn> = 0.15)将删除全零功能(以及更常见的常量功能)。

>>> X = np.array([[1, 0, 0], [1, 0, 0], [0, 1, 0]])
>>> VarianceThreshold().fit_transform(X)
array([[1, 0],
       [1, 0],
       [0, 1]])