Обмеження кількості ознак
Як ви бачили, використання CountVectorizer із типовими налаштуваннями створює окрему ознаку для кожного слова у вашому корпусі. Це може призвести до надто великої кількості ознак, часто включно з тими, що майже не матимуть аналітичної цінності.
Для цього в CountVectorizer є параметри, які дають змогу зменшити кількість ознак:
min_df: використовувати лише слова, що трапляються більш ніж у такому відсотку документів. Це можна застосувати, щоб вилучити рідкісні слова, які не узагальнюються між текстами.max_df: використовувати лише слова, що трапляються менш ніж у такому відсотку документів. Це корисно, щоб прибрати дуже поширені слова, які є майже в кожному корпусі та не додають цінності, як-от «and» або «the».
Ця вправа є частиною курсу
Feature Engineering для машинного навчання в 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(____)