В другой программе вы создаете экземпляр нового объекта, который не будет знать, что предыдущие данные имеют столько столбцов.
Вам необходимо сохранить CountVectorizer
и так TfidfTransformer
же, как вы сохранили модель, и загрузить их одинаково в другой программе.
Кроме того, вы можете просто использовать TfidfVectorizer вместо CountVectorizer + TfidfTransformer, потому что он делает комбинированную вещь и сделает вашу работу (экономя и загружая ее проще).
Поэтому во время обучения сделайте следующее:
...
x_train, x_test, y_train, y_test = model_selection.train_test_split(dataset['documents'],dataset['classes'],test_size=test_percentil)
#Term document matrix
tf_vect = TfidfVectorizer(ngram_range=(1, Ngram), min_df=1, max_features=MaxVocabulary, use_idf=True)
x_train_tf = tf_vect.fit_transform(x_train)
x_test_tf = tf_vect.transform(x_test)
...