You need to enable JavaScript to run this app. 如何用已训练的朴素贝叶斯模型对新句子进行情感分析并输出结果
优惠活动
大模型
产品
解决方案
定价
更多

如何用已训练的朴素贝叶斯模型对新句子进行情感分析并输出结果

实现自定义句子情感推理的操作步骤

第一步:补全训练代码的持久化逻辑

你当前的训练流程只保存了训练好的朴素贝叶斯模型,遗漏了训练阶段拟合完成的TfidfVectorizer向量化器,如果跳过这步直接推理,会因为词表不匹配、特征维度和模型训练时不一致,导致无法运行或者结果完全失真。需要在原有训练代码的最后追加一行,把向量化器也持久化保存:

# 原有代码已保存模型
joblib.dump(text_classifier, 'model.pkl')
# 新增:保存训练完成的向量化器,推理时必须复用这个对象,不能重新初始化
joblib.dump(vectorizer, 'vectorizer.pkl')

保存完重新跑一次训练流程,生成两个持久化文件:model.pkl(训练好的分类器)、vectorizer.pkl(训练好的特征转换器)。

第二步:编写推理流程代码

推理阶段的核心要求是所有处理逻辑和训练阶段保持完全一致,不能随意改动预处理规则、不能重新拟合特征转换器,完整可运行的代码如下:

import re
import joblib

# 1. 加载训练阶段保存的模型和向量化器
text_classifier = joblib.load('model.pkl')
vectorizer = joblib.load('vectorizer.pkl')

# 2. 复刻训练阶段的文本预处理逻辑,逐行对齐不能改动
def preprocess_raw_text(raw_input):
    # 移除特殊字符
    processed = re.sub(r'\W', ' ', str(raw_input))
    # 移除孤立的单字符
    processed = re.sub(r'\s+[a-zA-Z]\s+', ' ', processed)
    # 移除开头位置的孤立单字符
    processed = re.sub(r'\^[a-zA-Z]\s+', ' ', processed)
    # 多空格替换为单个空格
    processed = re.sub(r'\s+', ' ', processed, flags=re.I)
    # 移除字符串开头的b前缀
    processed = re.sub(r'^b\s+', '', processed)
    # 统一转小写
    processed = processed.lower()
    return processed

# 3. 自定义需要预测的句子
new_sentence = "I am very happy today"

# 4. 预处理输入句子
cleaned_text = preprocess_raw_text(new_sentence)
# 重点:这里用transform复用训练时的词表规则,绝对不能用fit_transform
feature_matrix = vectorizer.transform([cleaned_text]).toarray()

# 5. 调用模型预测,得到数值化标签
predicted_label = text_classifier.predict(feature_matrix)[0]

# 6. 标签映射:根据你自己数据集的标签定义调整对应关系
# 常见公开推特情感数据集约定:0=Negative(消极),1=Positive(积极)
label_catalog = {
    0: "Negative",
    1: "Positive"
}
predicted_sentiment = label_catalog[predicted_label]

# 7. 按要求格式输出结果
print(f'sentence = "{new_sentence}"')
print(f'sentiment = {predicted_sentiment}')

关键避坑提醒

  • 推理阶段如果重新对输入文本做fit_transform,会生成和模型训练时维度完全不同的特征,轻则直接报错,重则输出毫无参考价值的错误结果
  • 预处理逻辑哪怕少了一步正则替换,都会导致输入文本的特征分布和训练样本出现偏差,拉低预测准确率
  • 标签映射关系要和数据集的实际定义对齐,部分数据集的标签约定和通用规则相反,映射搞反会输出完全颠倒的情感结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 10:45:04