TFIDF Vectorizer 抛出 ValueError:空词汇

Posted

技术标签:

【中文标题】TFIDF Vectorizer 抛出 ValueError:空词汇【英文标题】:TFIDF Vectorizer throws ValueError: empty vocabulary 【发布时间】:2020-12-05 04:41:11 【问题描述】:

所以我尝试在一些文本数据上使用 sklearn TFIDF Vectorizer,但我不断收到此错误:

ValueError: empty vocabulary; perhaps the documents only contain stop words

代码如下:

tf_idf_vect = tfi(stop_words = 'english',
                 max_features = 20)

x = data['text']

#data = [tweets.strip() for tweets in x]
#texts = [[word.lower() for word in tweet.split()]]
         
tf_idf = tf_idf_vect.fit_transform([' '.join(tweet) for tweet in x]) # This line is causing the error
tf_idf_norm = normalize(tf_idf)
tf_idf_array = tf_idf_norm.toarray()

vector = pd.DataFrame(tf_idf_array,
                     columns = tf_idf_vect.get_feature_names())
vector.head()

有什么想法吗?

【问题讨论】:

【参考方案1】:

您无需遍历数据。 试试这个:

 x = ["text"]

tf_idf = tf_idf_vect.fit_transform(x)
tf_idf_norm = normalize(tf_idf)
tf_idf_array = tf_idf_norm.toarray()

vector = pd.DataFrame(tf_idf_array,
                      columns=tf_idf_vect.get_feature_names())
print(f"head: vector.head()")

并给了我这个输出: 头:文字 0 1.0

【讨论】:

以上是关于TFIDF Vectorizer 抛出 ValueError:空词汇的主要内容,如果未能解决你的问题,请参考以下文章

TFIDF Vectorizer 给出错误

再次加载时存储的 Tfidf-Vectorizer ValueError

如何从管道中的 sklearn TFIDF Vectorizer 返回数据帧?

Vectorizer Python中的单词组合

使用 counts 和 tfidf 作为 scikit learn 的特征

保留 TFIDF 结果以使用 Scikit for Python 预测新内容