Python 在TF-IDF模型中检索顶级令牌的最佳方法

Python 在TF-IDF模型中检索顶级令牌的最佳方法,python,scikit-learn,nlp,tf-idf,tfidfvectorizer,Python,Scikit Learn,Nlp,Tf Idf,Tfidfvectorizer,如何从包含以下组件的SciKit学习管道中获得最重要令牌的概述: multinb = Pipeline([('vect', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', MultinomialNB()), ]) multinb.fit(X_train, y_train) 寻找一个简单的片段来可视化/绘制总体X的最高权重标记如何提取多项式系数nb: 这将为您提

如何从包含以下组件的SciKit学习管道中获得最重要令牌的概述:

multinb = Pipeline([('vect', CountVectorizer()),
           ('tfidf', TfidfTransformer()),
           ('clf', MultinomialNB()),
          ])

multinb.fit(X_train, y_train)
寻找一个简单的片段来可视化/绘制总体X的最高权重标记

如何提取多项式系数nb:


这将为您提供类似于按降序排列的功能重要性。由于token\u imp是一个数据帧,您也可以使用token\u imp.headn查看n个最重要的特征,并使用token\u imp.plot.bar可视化它们

ValueError:传递的值的形状是1,1234,索引意味着1234,1对不起,我忘了索引coef,因为它返回一个形状n\u类数组,n\u特征。更新了答案..排序值by=系数,升序=假
import pandas as pd


multinb = Pipeline([('vect', CountVectorizer()),
           ('tfidf', TfidfTransformer()),
           ('clf', MultinomialNB()),
          ])

multinb.fit(X_train, y_train)

token_imp = pd.DataFrame(
    data=multinb['clf'].coef_[0],
    index=multinb['vect'].get_feature_names(),
    columns=['coefficient']
).sort_values(by='coefficient', ascending=False)

print(token_imp)