如何在 scikit CountVectorizer 中选择词汇
how to selected vocabulary in scikit CountVectorizer
我使用 scikit CountVectorizer 将文档集合转换为标记计数矩阵。我还使用了它的 max_features,它考虑了语料库中按词频排序的前 max_features。
现在我想分析我选择的语料库,特别是我想知道所选词汇中标记的频率。但我无法找到一种简单的方法来做到这一点。所以请在这方面帮助我。
当您调用 fit_transform()
时,将返回一个稀疏矩阵。
要显示它,您只需调用 toarray() 方法即可。
vec = CountVectorizer()
spars_mat = vec.fit_transform(['toto titi', 'toto toto', 'titi tata'])
#you can observer the matrix in the interpretor by doing
spars_mat.toarray()
在@bernard post的帮助下,我能够完全得到结果,如下:
vec = CountVectorizer()
doc_term_matrix = vec.fit_transform(['toto titi', 'toto toto', 'titi tata'])
doc_term_matrix = doc_term_matrix.toarray()
term_freq_matrix = doc_term_matrix.sum(0)
min_freq = np.amin(term_freq_matrix)
indices_name_mapping = vec.get_feature_names()
feature_names = [indices_name_mapping[i] for i, x in enumerate(term_freq_matrix) if x == min_freq]
我使用 scikit CountVectorizer 将文档集合转换为标记计数矩阵。我还使用了它的 max_features,它考虑了语料库中按词频排序的前 max_features。
现在我想分析我选择的语料库,特别是我想知道所选词汇中标记的频率。但我无法找到一种简单的方法来做到这一点。所以请在这方面帮助我。
当您调用 fit_transform()
时,将返回一个稀疏矩阵。
要显示它,您只需调用 toarray() 方法即可。
vec = CountVectorizer()
spars_mat = vec.fit_transform(['toto titi', 'toto toto', 'titi tata'])
#you can observer the matrix in the interpretor by doing
spars_mat.toarray()
在@bernard post的帮助下,我能够完全得到结果,如下:
vec = CountVectorizer()
doc_term_matrix = vec.fit_transform(['toto titi', 'toto toto', 'titi tata'])
doc_term_matrix = doc_term_matrix.toarray()
term_freq_matrix = doc_term_matrix.sum(0)
min_freq = np.amin(term_freq_matrix)
indices_name_mapping = vec.get_feature_names()
feature_names = [indices_name_mapping[i] for i, x in enumerate(term_freq_matrix) if x == min_freq]