我正在尝试从给定文档中提取一些功能,给定一组预定义的功能。
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]]
非常感谢任何帮助
答案 0 :(得分:4)
这是因为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)