I am developing a spam classifier using scikit learn.
Here is my vectorizing code
vectorizer = TfidfVectorizer(
analyzer='word',
sublinear_tf=True,
strip_accents='unicode',
token_pattern=r'\w{1,}',
ngram_range=(1, 1),
max_features=10000)
tfidf = vectorizer.fit(data['text'])
features = vectorizer.transform(data['text'])
import pickle
pickle.dump(tfidf, open('tfidf.pickle', 'wb'))
Here is what I am doing to predict new input
import joblib
model = joblib.load('model')
vect = pickle.load(open('tfidf.pickle', 'rb'))
new = vect.transform(['some new text...'])
mod.predict(new)
When I open vectorizer file (tfidf.pickle) and try to predict a new message it shows me the error as
ValueError: X.shape[1] = 7148 should be equal to 38011, the number of features at training time