首页 > 解决方案 > 如何从特征列表(TfidfVectorizer)中删除特征?

问题描述

目前我正在研究一个文本分类程序。我用 TfidfVectorizer 引出了一些特性。现在,我想从原始特征列表中删除一些单词,因为它们不提供有用的信息。

我有两个问题:

  1. 特征存储在哪里?(通过 .get_feature_names() 或在 X_train_union_tfidf 中?)
  2. 我怎样才能删除它们?

我在这里发现了一个非常相似的问题:Ignore a column while building a model with SKLearn,但我无法将它与我的问题联系起来。

代码:

X_train_union_tfidf = combined_tfidf.fit_transform(X_train) 
X_test_union_tfidf  = combined_tfidf.transform(X_test)
print(feature_union_df_tfidf)


unigram__compris             15.844468
unigram__devic               16.797861
bigram__speech recognit      17.065831
bigram__invent relat         17.527465
bigram__present invent       21.158065

假设我想删除 invent relat 并呈现 invent。在将其传递给分类算法之前,如何从 X_train_union_tfidf (稀疏矩阵)中删除它?

naive_bayes = MultinomialNB()

naive_bayes.fit(X_train_union_tfidf, y_train)                                                            
predictions_NB_tfidf = naive_bayes.predict(X_test_union_tfidf) 
predicted_prob_NB_tf = naive_bayes.predict_proba(X_test_union_tfidf)                                             

标签: pythonscikit-learnfeature-extractiontf-idf

解决方案


推荐阅读