Ошибка TfidfVectorizer в очищенном наборе текстовых данных - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь векторизовать набор данных настроений.Он имеет обзорный текст и сентиментальную метку.Когда я пытаюсь векторизовать набор данных, он выдает ошибку, называемую Объект 'LazyCorpusLoader' не повторяется

Обзоры были очищены следующим образом.

  • remove htmlтеги
  • токенизация текста для удаления знаков препинания
  • удаление стоп-слов
  • POS-теги
  • лемматизация текста

После этих моих данныхreviewdataset_df имеет следующие столбцы:

  1. reviews_clean-> очищенный текст отзыва
  2. SENTIMENT-> ярлык настроения как положительный или отрицательный

, затем я разделяю данныеустановите с помощью кода ниже,

#splitting data set into training and testing
X_train,X_test,Y_train,Y_test =train_test_split(reviewDataset_Df.head(10000).review_clean,reviewDataset_Df.head(10000).SENTIMENT,test_size=0.20,random_state=0,shuffle=True)                                          

print('Training data count:'+str(len(X_train)))
print('Test data count:'+str(len(X_test)))

Это сработало хорошо.

Затем я использую векторизатор, используя следующий код.

#vectorizer
tfidf=TfidfVectorizer(sublinear_tf=True,min_df=3,stop_words=english,norm='l2',encoding='utf-8',ngram_range=(1,3))
print("rr")
train_features=tfidf.fit_transform(X_train)
test_features=tfidf.transform(X_test)
train_labels=Y_train
test_labels=Y_test

Это выдает ошибку как return frozenset (stop) TypeError: объект 'LazyCorpusLoader' не повторяется

Я искал и пробовал некоторые решения, которые не работали.Как побороть эту ошибку.Мне нужно векторизовать набор данных, чтобы подготовиться к системе рекомендаций.

примечание: я искал в интернете и прочитал аналогичный вопрос в stackoverflow, но не смог найти правильный ответ.

1 Ответ

1 голос
/ 01 июля 2019

Без правильного отслеживания ошибок мы можем только догадываться.

Поскольку ошибка связана с stop, я предполагаю, что ваша переменная english - которой нет в общем коде, который вы предоставили - неправильно настроена, а не набор слов.

Вы, вероятно, хотели использовать stop_words="english" вместо.

...