You need to enable JavaScript to run this app. texts_to_matrix训练的新闻分类模型,推理时如何正确做新文本tokenize
优惠活动
大模型
产品
解决方案
定价
更多

texts_to_matrix训练的新闻分类模型,推理时如何正确做新文本tokenize

推理阶段正确的文本向量化与预测实现

两类异常的产生根源

  • texts_to_matrix方法强制要求入参为字符串组成的可迭代序列(如列表、numpy数组),不支持直接传入单个字符串。直接传入单字符串时,方法会将字符串逐字符拆分为多个独立的“文本条目”,最终输出形状为(字符串字符长度, num_words),与单文本预期的单条特征向量形状完全不符。
  • 错误的输入形状导致模型输出结构偏离预期:模型训练时的输入为二维张量(样本数, 1000),对应输出为(样本数, 类别数);但嵌套错误的三维输入后,模型输出形状变为三维,此时未指定维度的np.argmax会将整个数组拉平为一维计算最大值位置,最终得到的索引远超text_labels的长度范围,触发越界报错。

正确的推理代码实现

推理阶段需严格对齐训练时的向量化逻辑与张量形状,完整可运行的流程如下:

test_text = 'Im super insecure AND unsure of everything'
# 将单条待预测文本包裹为列表,传入已完成词表学习的tokenizer
test_vec = tokenize.texts_to_matrix([test_text])
print(test_vec.shape) # 输出形状为 (1, 1000),与训练输入维度完全匹配
# 直接传入向量完成预测,无需额外嵌套数组维度
test_pred = model.predict(test_vec)
# 沿类别维度计算最大概率对应的索引,匹配标签集合
pred_idx = np.argmax(test_pred, axis=1)[0]
predict_result = text_labels[pred_idx]

关键操作规范

  • 推理阶段必须直接使用训练阶段已经通过fit_on_texts完成词表构建的同一个tokenizer实例,严禁重新初始化、重新拟合分词器,否则词表不统一会导致向量化结果完全失效。
  • 批量预测多条文本时,直接将所有待预测文本组成列表传入即可,例如tokenize.texts_to_matrix([text1, text2, text3]),输出形状为(文本条数, 1000),可直接输入模型完成批量推理。
  • 提前校验模型输出层维度与标签集合长度一致:如果标签共6类,模型最后一层Dense层的输出单元数必须为6,否则即使输入形状正确也会出现索引越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 01:15:03