在进行训练/测试分割后,我在X_train上创建了一个scipy-sparse-matrix with sklearn CountVectorizer。我有两个问题(消极与积极)。
我想弄清楚矩阵中每个类的前20个最高和最低频率项是什么。到目前为止,我已经弄清楚如何在矩阵整体上做到这一点。
feature_names = np.array(vect.get_feature_names())
sorted_countvect_index = X_train_vectorized.max(0).toarray()[0].argsort()
values = X_train_vectorized.max(0).toarray()[0]
small_idf = pd.Series(values[sorted_tfidf_index[:20]], index=feature_names[sorted_tfidf_index[:20]]).sort_index()
large_idf = pd.Series(values[sorted_tfidf_index[:-21:-1]], index=feature_names[sorted_tfidf_index[:-21:-1]]).sort_index()
思想?
答案 0 :(得分:0)
我认为按类你的意思是你有一些布尔向量y_train
,其形状为X_train_vectorized
高度。
您可以通过此向量进行子集化来检索适当的正/负示例:
X_train_vectorized_positive = X_train_vectorized[y_train, :]
X_train_vectorized_negative = X_train_vectorized[~y_train, :]
然后运行您在X_train_vectorized
上运行的其余代码。
有关详细信息,请查看numpy indexing。