skikit-learn的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.]])
最佳答案
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]])
关于python - scikit学习矢量化器词汇,具有映射到同一索引的多个术语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26149273/