在Pythons的软件包scikit-learn的TfidfVectorizer的帮助下,我们可以轻松地将文档列表转换为具有<term>-frequency-inverse-document-frequency
功能的数据集,其中term
是单词出现在文件中。
在Python中的任何地方都是TfVectorizer-TfidfVectorizer的类似物,它会产生<term>-frequency
个特征,即特征值不会被逆文档频率加权吗?
我更喜欢Python解决方案而不是其他编程语言编写的解决方案,但如果你知道Java中任何易于使用的实现,你也可以提及它。
答案 0 :(得分:1)
是。它也是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)]