python - 我可以将熊猫数据框输入“TfidfVectorizer”吗?如果是这样,我如何找出我的数据框中有多少文档?
问题描述
这是原始数据:
我正在尝试运行TfidfVectorizer
,但我不断收到以下错误:
ValueError: After pruning, no terms remain. Try a lower min_df or a higher max_df.
我看到这篇文章说当值max_df
小于. 我尝试了几种变体,其中我的值大于我的值,但仍然得到相同的错误。因此,我认为该错误可能与我的数据在 pandas 数据框中的存储方式有关。我在正确的轨道上吗?如果是这样,我如何找出我的数据框中有多少个文档?如果没有,我该如何解决这个问题?min_df
TfidfVectorizer
max_df
min_df
这是我的代码:
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']
示例中显示的那样。
推荐阅读
- netlogo - 比较 netlogo 中的坐标时应该使用哪个原语?
- javascript - 如何在 React 中一次拖动多个对象?
- python - 安装nodejs问题
- vue.js - Vuejs如何在单个组件中使用重复方法
- c - 为什么在 C 中声明函数参数之前使用“const *”?
- swift - 如何更新不同视图控制器中的标签?
- azure - 创建流式定位器时在 Azure 媒体服务上出现间歇性错误
- javascript - 发布 Chrome 扩展程序的问题
- javascript - DataTables ajax 高级搜索
- python - 两个数组之间的 Python/Numpy 广播连接