Python 使用Scikit Learn CountVectorizer,根据文本语料库中出现的情况列出词汇表中的单词

Python 使用Scikit Learn CountVectorizer,根据文本语料库中出现的情况列出词汇表中的单词,python,machine-learning,scikit-learn,text-extraction,countvectorizer,Python,Machine Learning,Scikit Learn,Text Extraction,Countvectorizer,我在scikit learn中的一些文档中安装了计数矢量器。我想在文本语料库中查看所有术语及其对应的频率,以便选择停止词。比如说 '和'123次,'到'100次,'90次。。。等等 有任何内置函数吗?如果cv是您的CountVectorizer并且X是矢量化语料库,那么 zip(cv.get_feature_names(), np.asarray(X.sum(axis=0)).ravel()) 返回计数向量器提取的语料库中每个不同术语的(术语,频率)对的列表 (小的asarray+r

我在
scikit learn
中的一些文档中安装了
计数矢量器。我想在文本语料库中查看所有术语及其对应的频率,以便选择停止词。比如说

'和'123次,'到'100次,'90次。。。等等

有任何内置函数吗?

如果
cv
是您的
CountVectorizer
并且
X
是矢量化语料库,那么

zip(cv.get_feature_names(),
    np.asarray(X.sum(axis=0)).ravel())
返回
计数向量器提取的语料库中每个不同术语的
(术语,频率)
对的列表


(小的
asarray
+
ravel
舞蹈需要解决
scipy.sparse
中的一些怪癖)

没有内置的。我找到了一种更快的方法,基于:

输出

[('world', 2), ('python', 1), ('hello', 1), ('better', 1), ('makes', 1)]

谢谢但它们没有排序,但我设法做到了:对于排序中的tuple(occ_list,key=lambda idx:idx[1]):打印tuple[0]+'''+str(tuple[1])。问题是字符åäö没有打印出来。我已将编码设置为utf8。您是否确定get_feature_names()将根据术语频率矩阵中的索引对术语进行排序?我发现cv.get\u feature\u names()和cv.vocability\u.keys()的顺序不同。@user1506145:
dict.keys
不保证任何顺序;这正是
get\u feature\u names
存在的原因。很抱歉,我要详细介绍一下这个主题,但是您如何从一个简单的字符串中创建一个向量化语料库,
X
,例如“这是我们将要制作的示例。”
[('world', 2), ('python', 1), ('hello', 1), ('better', 1), ('makes', 1)]