【问题标题】:scikit-learn vectorizer vocabulary with multiple terms mapping to same indexscikit-learn 向量化器词汇表,具有多个术语映射到同一索引
【发布时间】:2019-01-08 08:43:51
【问题描述】:

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.]])

【问题讨论】:

    标签: python scikit-learn


    【解决方案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]])
    

    【讨论】:

    • 不是我想要的,但对我来说足够接近。
    猜你喜欢
    • 2020-01-15
    • 2017-07-06
    • 1970-01-01
    • 2020-09-09
    • 2017-12-25
    • 2018-12-13
    • 1970-01-01
    • 2019-03-14
    • 2016-10-18
    相关资源
    最近更新 更多