Использование векторизованной модели текстового классификатора с использованием Tfidf с униграммами и биграммами - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть следующий фрейм данных или проблема классификации текста:

 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.

...