小编old*_*onk的帖子

在巨大的熊猫数据框的文本列上创建一个 TfidfVectorizer

我需要从存储在巨大数据框列中的文本中获取 TF-IDF 特征矩阵,从 CSV 文件(无法放入内存)加载。我正在尝试使用块迭代数据帧,但它返回的生成器对象不是TfidfVectorizer方法的预期变量类型。我想我在编写ChunkIterator如下所示的生成器方法时做错了什么。

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer


#Will work only for small Dataset
csvfilename = 'data_elements.csv'
df = pd.read_csv(csvfilename)
vectorizer = TfidfVectorizer()
corpus  = df['text_column'].values
vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())



#Trying to use a generator to parse over a huge dataframe
def ChunkIterator(filename):
    for chunk in pd.read_csv(csvfilename, chunksize=1):
       yield chunk['text_column'].values

corpus  = ChunkIterator(csvfilename)
vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
Run Code Online (Sandbox Code Playgroud)

任何人都可以请教如何修改上述ChunkIterator方法,或使用dataframe 的任何其他方法。我想避免为数据框中的每一行创建单独的文本文件。以下是一些用于重新创建场景的虚拟 csv 文件数据。

id,text_column,tags
001, This is the first …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas scikit-learn tfidfvectorizer

5
推荐指数
1
解决办法
2025
查看次数