Ограничение количества признаков
Как вы уже убедились, 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(____)