在 TF-IDF 模型中检索顶级标记的最佳方法

Best way to retrieve top tokens in TF-IDF models

如何从具有以下组件的 SciKit-learn 管道中获取最重要的标记的概览:

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

multinb.fit(X_train, y_train)

寻找一个简单的片段,visualizes/plots 总体上权重最高的标记 X)

如何提取 MultinomialNBcoef_:

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)

这将为您提供类似特征重要性的降序排列。由于 token_imp 是一个数据框,您还可以使用 token_imp.head(n) 查看 n 最重要的特征,并使用 token_imp.plot.bar()[=16= 可视化它们]