Получение ошибки «пустой словарь; возможно, документы содержат только стоп-слова» при реализации CountVectorizer ()

#python #pandas #scikit-learn #one-hot-encoding #countvectorizer

#python #pandas #scikit-learn #one-hot-encoding #countvectorizer

Вопрос:

Я пытаюсь выполнить одноразовое кодирование категориальной переменной с помощью CountVectorizer(). Я могу реализовать это во всех столбцах, кроме одного столбца с именем «Центр детализации». Этот столбец содержит три уникальных значения ‘A’, ‘B’, ‘C’. Когда я реализую CountVectorizer в этом столбце, он выдает ошибку пустого словаря; возможно, документы содержат только стоп-слова

 vec=CountVectorizer()
train_drill=vec.fit_transform(X_train['Drill Centre']).toarray()
test_drill=vec.transform(X_test['Drill Centre']).toarray()
  

введите описание изображения здесь

Комментарии:

1. Count vectorizer не генерирует одноразовые кодировки. Он генерирует ngrams.

2. Почему бы не использовать кодировщик one-hot напрямую: scikit-learn.org/stable/modules/generated /…

3. В CountVectorizer есть шаблон tokenizer (параметр), который не распознает отдельные буквы как слова. Вот почему пустой вокабуляр.

4. Count vectorizer с категориальными данными создает разреженные представления, а не одноразовые представления. Если вы хотите one-hot, используйте one-hot, как предлагает @Metropolis.

5. Как сказал @SergeyBushmanov, CountVectorizer игнорирует отдельные буквы; он обрабатывает их как «стоп-слова». CountVectorizer предназначен для работы с данными на естественном языке: со словами и предложениями.