如何将CSV文件所有数据传入fit_transform方法?
处理CSV所有行的TF-IDF修改方案
原代码中df1.loc[0]仅选取了DataFrame的第一行数据,导致fit_transform只处理了单条记录。要一次性传入文件所有数据,只需将选取行的代码替换为整列文本数据即可:
修改后的代码
import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer for i in range(1,6): df1 = pd.read_csv('./starReviews/' + str(i) + 'Star.csv') tfidf_vectorizer = TfidfVectorizer() # 替换为你CSV中存储评论文本的列名,比如'review' doc_vec = tfidf_vectorizer.fit_transform(df1['review'])
关键说明
- 如果你的CSV只有一列文本数据,可改用
df1.iloc[:, 0]直接选取第一列的所有行:doc_vec = tfidf_vectorizer.fit_transform(df1.iloc[:, 0]) - 若希望5个文件共用同一套TF-IDF词汇表(避免每个文件单独训练不同的词汇空间),可将向量初始化移到循环外:
tfidf_vectorizer = TfidfVectorizer() all_texts = [] for i in range(1,6): df1 = pd.read_csv('./starReviews/' + str(i) + 'Star.csv') all_texts.extend(df1['review'].tolist()) # 统一训练词汇表并转换所有文本 doc_vec = tfidf_vectorizer.fit_transform(all_texts)
内容的提问来源于stack exchange,提问作者willkn
相关产品推荐
相关产品推荐

