我可以将 pandas 数据帧输入 "TfidfVectorizer" 吗?如果是这样,我如何找出我的数据框中有多少文档?

Can I input a pandas dataframe into "TfidfVectorizer"? If so, how do I find out how many documents are in my dataframe?

原始数据如下:

这是将数据读入 pandas 数据帧后的前半部分数据:

我正在尝试 运行 TfidfVectorizer 但我不断收到以下错误:

ValueError: After pruning, no terms remain. Try a lower min_df or a higher max_df.

我看到this post说当max_df值小于TfidfVectorizer中的min_df值时会出现错误。我尝试了几种变体,其中我的 max_df 值大于我的 min_df 值,但仍然出现相同的错误。因此,我认为该错误可能与我的数据在 pandas 数据框中的存储方式有关。我在正确的轨道上吗?如果是这样,我如何找出我的数据框中有多少文档?如果没有,我该如何解决这个问题?

这是我的代码:

tfidf_vectorizer = TfidfVectorizer(max_df=0.5, min_df=0, stop_words=None)
tfidf = tfidf_vectorizer.fit_transform(df)

此外,这是我正在处理的示例:

tfidf_vectorizer = TfidfVectorizer(max_df=0.95, min_df=2,
                                   max_features=n_features,
                                   stop_words='english')

在上面的例子中,min_df 大于 max_df。我确实尝试这样做,但出现以下错误:

ValueError: max_df corresponds to < documents than min_df

您应该将一列数据传递给 fit_transform 函数。这是例子

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
words = ['trust inten other','feel comfort express view']
df = pd.DataFrame(words,columns = ['words'])
tfidf_vectorizer = TfidfVectorizer(max_df=0.5, min_df=0, stop_words=None)
# right
tfidf = tfidf_vectorizer.fit_transform(df['words'])
# wrong
# tf_idf = tf_idf_vectorizer.fit_transform(df)

当您将 df 传递给 fit_transform 函数时,它会将 ['words'] 作为输入,而不是 ['trust inten other','feel comfort express view'],如示例所示。