НачатьНачать бесплатно

Ограничение количества признаков

Как вы уже убедились, CountVectorizer с настройками по умолчанию создаёт отдельный признак для каждого слова в корпусе. Это может привести к избыточному числу признаков, многие из которых практически не несут аналитической ценности.

Для решения этой проблемы CountVectorizer предоставляет параметры, позволяющие сократить количество признаков:

  • min_df : учитывать только слова, встречающиеся более чем в заданном проценте документов. Это помогает отфильтровать редкие слова, которые плохо обобщаются на разные тексты.
  • max_df : учитывать только слова, встречающиеся менее чем в заданном проценте документов. Это позволяет исключить очень распространённые слова, присутствующие в любом корпусе, но не несущие смысловой нагрузки, — например, «and» или «the».

Это упражнение является частью курса

Конструирование признаков для машинного обучения в Python

Посмотреть курс

Инструкции к упражнению

  • Ограничьте количество признаков в CountVectorizer: задайте минимальную долю документов, в которых должно встречаться слово, равной 20%, а максимальную — 80%.
  • Обучите векторизатор и примените его к столбцу text_clean за один шаг.
  • Преобразуйте полученный разреженный массив в массив numpy со счётчиками.
  • Выведите размерность нового уменьшенного массива.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Specify arguements to limit the number of features generated
cv = ____

# Fit, transform, and convert into array
cv_transformed = ____(speech_df['text_clean'])
cv_array = ____

# Print the array shape
print(____)
Редактировать и запускать код