У меня есть следующий фрейм данных или проблема классификации текста:
X = df['text'].apply(clean_text)
clean_text
выполняет некоторые основные операции очистки c, необходимые для этого конкретного случая, такие как удаление специальных символов, преобразование чисел c значений в тексте в ведрах и т. Д. c. В качестве следующего шага - я создаю конвейер, как показано ниже:
text_clsf = Pipeline([('tfidf',TfidfVectorizer(use_idf=True,max_df=max_df,min_df=min_df,stop_words=stop_words,ngram_range=(1,2))),
('clsf',LinearSVC(C=C))])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
text_clsf.fit(X_train,y_train)
Эта модель была протестирована с использованием тестовых данных и сохранена с использованием библиотеки pickle
pickle.dumps(text_clsf,open(file_path,'wb'))
После использования этой модели на реальных мировые данные, я снова использую pickle
для загрузки модели, а затем для своего текста в реальном мире применяю очистку, используя тот же метод clean
, как показано ниже.
text_value = 'this is my real world sample text to predict'
text_cleaned = clean_text(text_value)
text_clsf = pickle.loads(open(filepath,'rb'))
У меня есть беспокойство по поводу Следующий шаг: могу ли я кодировать, как показано ниже, напрямую, чтобы сделать прогноз? Я не создал bigrams
здесь, хотя векторизатору tfidf было присвоено ngram_range(1,2)
, text_cleaned
содержит только очищенный текст. text_clsf.predict ([text_cleaned])
Или модель text_clsf
сама по себе заботится о создании bigrams
.