Python 词频向量化器
Python Term Frequency vectorizer
借助 Pythons 的包 scikit-learn 中的 TfidfVectorizer,我们可以轻松地将文档列表转换为具有特征 <term>-frequency-inverse-document-frequency
的数据集,其中 term
s 是文档中出现的单词。
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)]
借助 Pythons 的包 scikit-learn 中的 TfidfVectorizer,我们可以轻松地将文档列表转换为具有特征 <term>-frequency-inverse-document-frequency
的数据集,其中 term
s 是文档中出现的单词。
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)]