Python 使用新数据测试文本分类ML模型失败

Python 使用新数据测试文本分类ML模型失败,python,machine-learning,scikit-learn,nlp,text-processing,Python,Machine Learning,Scikit Learn,Nlp,Text Processing,我已经建立了一个机器学习模型,将电子邮件分类为垃圾邮件还是非垃圾邮件。现在我想测试我自己的电子邮件,看看结果。因此,我编写了以下代码对新电子邮件进行分类: message = """Subject: Hello this is from google security team we want to recover your password. Please contact us as soon as possible""" mes

我已经建立了一个机器学习模型,将电子邮件分类为垃圾邮件还是非垃圾邮件。现在我想测试我自己的电子邮件,看看结果。因此,我编写了以下代码对新电子邮件进行分类:

message = """Subject: Hello this is from google security team we want to recover your password. Please contact us 
as soon as possible"""

message = pd.Series([message,])
transformed_message = CountVectorizer(analyzer=process_text).fit_transform(message)
proba = model.predict_proba(transformed_message)[0]

知道
process\u text
是一个处理电子邮件的函数,当我运行代码时,我会出现以下错误:

Number of features of the model must match the input. Model n_features is 37229 and input n_features is 13 

问题出在哪里?我该如何解决?

对于此类管道中的所有数据预处理步骤,我们再也不会适应了,就像您在这里使用(新定义的)计数向量器所做的那样


因此,您应该通过应用其
transform
方法重用现有的计数向量器(即用于训练数据的计数向量器),而不是将
fit\u transform
与新的计数向量器一起使用。这将允许您的新数据映射到训练数据的37229个特征(模型是用这些特征训练的),而不是将计数向量器重新匹配到如此短的文本时生成的13个特征。

如果答案解决了您的问题,请接受它-请参阅