You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow序列模型传入DataFrame批量预测结果全为中性问题求助

问题排查思路

  • 先修正代码中的变量错误
    你写的循环逻辑没有用到遍历得到的x变量,prediction属于未定义变量(如果没有提前全局定义,这里取到的固定值大概率对应neutral的索引1,所以所有输出都是neutral):
# 错误写法
for x in data_prediction:
    np.array(x)
    print(y_label[np.argmax(prediction)])
# 正确循环写法
for x in data_prediction:
    print(y_label[np.argmax(x)])
# 更高效的批量处理写法,无需循环
pred_classes = np.argmax(data_prediction, axis=1)
pred_labels = [y_label[c] for c in pred_classes]
  • 修正输入数据格式错误
    你输出的padded全是[1, 0, 0,...],说明tokenizer.texts_to_sequences没有正确识别输入文本,本质原因是data_predict.values.tolist()得到的是二维列表,每一行是DataFrame的整行数据(包含所有列),而texts_to_sequences要求输入是一维字符串列表,每个元素对应一条待处理的文本。你单条测试时传入的是一维字符串列表所以正常,批量时转成二维列表就会失效。
    需要先指定待预测的文本列,比如你的文本存在名为text的列,写法如下:
# 错误写法,整个DataFrame转二维列表
new = data_predict.values.tolist()
# 正确写法,取文本列转一维字符串列表
new = data_predict['text'].tolist()
  • 核对预处理参数一致性
    确认max_length、padding_type、trunc_type三个参数和模型训练时的取值完全一致,同时确认当前使用的tokenizer就是训练阶段已经完成词汇拟合的分词器,不是重新初始化的新实例。

正确批量预测完整代码示例

import numpy as np
import pandas as pd

# 标签映射和训练阶段保持一致
y_label = {0:"negative",1:"neutral",2:"positive"}
# 预处理参数和训练阶段保持一致
max_length = 替换为你训练时设置的最大序列长度
padding_type = 'post' # 与训练时的填充方向一致
trunc_type = 'post' # 与训练时的截断方向一致

# 读取数据
data_predict = pd.read_excel("data clear.xlsx")
data_predict = data_predict.dropna(subset=['text']) # 只过滤文本列为空的行

# 取文本列转一维列表
text_list = data_predict['text'].tolist()

# 文本预处理
sequences = tokenizer.texts_to_sequences(text_list)
padded = pad_sequences(sequences, maxlen=max_length, padding=padding_type, truncating=trunc_type)

# 批量预测
data_prediction = model.predict(padded, batch_size=32) # 可指定batch_size提升预测效率
pred_classes = np.argmax(data_prediction, axis=1)
pred_labels = [y_label[c] for c in pred_classes]

# 结果输出
print(pred_labels)
# 可将预测结果写回原DataFrame导出
data_predict['pred_label'] = pred_labels
data_predict.to_excel("predict_result.xlsx", index=False)

内容的提问来源于stack exchange,提问作者cyber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:15:03