如何正确保存模型的字符串类型输出至DataFrame或CSV文件?
解决模型输出保存为CSV的格式问题
你之前用pd.DataFrame([text])保存时,会把整个输出对象(比如Series)当成DataFrame的单个元素,导致所有内容挤在一个单元格里。下面是正确的处理和保存步骤:
1. 先修正原代码的语法错误
你的预处理和编码代码存在几处语法问题,先修正才能正常生成批量摘要:
# 预处理文本:修正str.replace的调用方式,去掉末尾多余的点 preprocess_text = gf.str.strip().str.replace("\n", "") t5_prepared_Text = "summarize: " + preprocess_text # 编码时要处理单个文本,不能直接把整个Series转成字符串(原代码语法错误) # 后续需循环处理每个文本
2. 批量生成并收集摘要
因为你的输入是批量的(Series格式),需要循环处理每个文本,把所有摘要收集到列表中:
summaries = [] for text in t5_prepared_Text: tokenized_text = tokenizer.encode(text, return_tensors="pt").to(device) summary_ids = model.generate( tokenized_text, num_beams=4, no_repeat_ngram_size=2, min_length=30, max_length=100, early_stopping=True ) output = tokenizer.decode(summary_ids[0], skip_special_tokens=True) summaries.append(output)
3. 正确保存为CSV
把收集到的摘要列表转换成DataFrame,直接保存即可:
# 可同时保留原始数据和摘要,方便后续分析 prediction_df = pd.DataFrame({ 'original_findings': df['findings'], 'summarized_text': summaries }) # 保存时设置index=False,避免把行索引写入CSV prediction_df.to_csv('prediction.csv', index=False)
如果你的输出已经是一个Series(比如你给出的模型输出格式),可以直接转成DataFrame保存:
# 假设你的输出Series名为output_series prediction_df = output_series.to_frame(name='summarized_text') prediction_df.to_csv('prediction.csv', index=False)
内容的提问来源于stack exchange,提问作者ZaHid
相关产品推荐
相关产品推荐

