Python CountVectorizer只返回零

Python CountVectorizer只返回零,python,scikit-learn,Python,Scikit Learn,我试图从给定的文档中提取一些特性,给定一组预定义的特性 from sklearn.feature_extraction.text import CountVectorizer features = ['a', 'b', 'c'] doc = ['a', 'c'] vectoriser = CountVectorizer() vectoriser.vocabulary = features vectoriser.fit_transform(doc) 但是,输出是一个2x3数组,用零填充,而不是

我试图从给定的文档中提取一些特性,给定一组预定义的特性

from sklearn.feature_extraction.text import CountVectorizer
features = ['a', 'b', 'c']
doc = ['a', 'c']

vectoriser = CountVectorizer()
vectoriser.vocabulary = features
vectoriser.fit_transform(doc)
但是,输出是一个2x3数组,用零填充,而不是:

desired_output = [[1, 0, 0]
                  [0, 0, 1]]

任何帮助都将不胜感激

这是因为CountVectorizer中的默认标记模式将删除任何只有一个字符长的单词。您可以更改默认令牌模式以修复此问题:

from sklearn.feature_extraction.text import CountVectorizer
features = ['a', 'b', 'c']
doc = ['a', 'c']

vectoriser = CountVectorizer(vocabulary=features, token_pattern=r"\b\w+\b")

vectoriser.fit_transform(doc)

token\u pattern=r“\b\w+\b”
是否匹配任何标记(任何长度)?它将捕获具有一个或多个字符的单词,假设它们在词汇表中。
doc
是否表示不同的数据样本或同一样本的不同特征?如果是前者,则此用法不适用于CountVectorizer。你可以用。