Python 词频向量化器

Python Term Frequency vectorizer

借助 Pythons 的包 scikit-learn 中的 TfidfVectorizer,我们可以轻松地将文档列表转换为具有特征 <term>-frequency-inverse-document-frequency 的数据集,其中 terms 是文档中出现的单词。

Python 中是否存在 TfidfVectorizer 的 TfVectorizer 类似物,它会产生 <term>-frequency 特征,即特征的值不会由逆文档频率加权?

与用其他编程语言编写的解决方案相比,我更喜欢 Python 解决方案,但如果您知道 Java 中任何易于使用的实现,也可以提及。

是的。它也在 scikit-learn 中,被称为 CountVectorizer

import numpy as np
from sklearn.feature_extraction.text import CountVectorizer

data = ['this is sample 1', 'how about sample two', 'make three samples']
vectorizer = CountVectorizer()

transformed_data = vectorizer.fit_transform(data)

print (zip(vectorizer.get_feature_names(), np.ravel(transformed_data.sum(axis=0))))

输出:

[(u'about', 1),
 (u'how', 1),
 (u'is', 1),
 (u'make', 1),
 (u'sample', 2),
 (u'samples', 1),
 (u'this', 1),
 (u'three', 1),
 (u'two', 1)]