我正在关注Scikit learn docs where CountVectorizer
is used on some dataset 中的示例。
问题:count_vect.vocabulary_.viewitems()
列出所有术语及其频率。您如何按出现次数对它们进行排序?
sorted( count_vect.vocabulary_.viewitems() )
似乎不起作用。
我正在关注Scikit learn docs where CountVectorizer
is used on some dataset 中的示例。
问题:count_vect.vocabulary_.viewitems()
列出所有术语及其频率。您如何按出现次数对它们进行排序?
sorted( count_vect.vocabulary_.viewitems() )
似乎不起作用。
vocabulary_.viewitems()
实际上并没有列出术语及其频率,而是从术语到它们的索引的映射。频率(每个文档)由 fit_transform 方法返回,该方法返回一个稀疏(coo)矩阵,其中行是文档,列是单词(列索引通过词汇表映射到单词)。例如,您可以通过以下方式获得总频率
matrix = count_vect.fit_transform(doc_list)
freqs = zip(count_vect.get_feature_names(), matrix.sum(axis=0))
# sort from largest to smallest
print sorted(freqs, key=lambda x: -x[1])