TF IDF Vectorizer не работает должным образом - PullRequest
0 голосов
/ 08 апреля 2020

Я работаю над проблемой классификации текста и использую векторизатор TFIDF для создания текстовых объектов.

Вот код

tfidf_vectorizer = TfidfVectorizer(use_idf=True,
                                                      # stop_words=English_Stopwords,
                                  ngram_range=(1,3),
                                   min_df=0.10, #  ignore terms that have a document frequency strictly lower than the given threshold
                                   max_df=0.80, 
                                  smooth_idf=True)        
fitted_vect = tfidf_vectorizer.fit(df_sample[TEXT_FEAT])
transformed_X_train = tfidf_vectorizer.transform(X_train)
transformed_X_val = tfidf_vectorizer.transform(X_val)

Я посмотрел словарь, и он содержит только 162 слова, в то время как список стоп-слов довольно большой. В чем здесь проблема.

print(len(fitted_vect.vocabulary_))
# 162
print(len(fitted_vect.stop_words_))
# 16969712

1 Ответ

0 голосов
/ 13 апреля 2020

Если проблема only заключается в подавлении стоп-слов, можно просто добавить аргумент stop_words = 'engli sh' к векторизатору.
Примечание. замечено, что в вопросе есть закомментированный список пользовательских стоп-слов. Эти стоп-слова могут быть добавлены к существующим при необходимости.

tfidf_vectorizer = TfidfVectorizer(use_idf=True,                                                     
                                  ngram_range=(1,3),
                                  stop_words = 'english',
                                   min_df=0.10, #  ignore terms that have a document frequency strictly lower than the given threshold
                                   max_df=0.80, 
                                  smooth_idf=True)  
...