Использование длинных n-грамм
До сих пор вы создавали признаки на основе отдельных слов в каждом тексте. Такой подход может быть весьма эффективным в моделях машинного обучения, однако при анализе слов по отдельности значительная часть контекста теряется. Чтобы решить эту проблему, при построении моделей можно использовать n-граммы — последовательности из n слов, объединённых вместе. Например:
- биграммы: последовательности из двух соседних слов
- триграммы: последовательности из трёх соседних слов
Они могут автоматически создаваться в вашем наборе данных с помощью аргумента ngram_range, которому передаётся кортеж (n1, n2), где включаются все n-граммы в диапазоне от n1 до n2.
Это упражнение является частью курса
Конструирование признаков для машинного обучения в Python
Инструкции к упражнению
- Импортируйте
CountVectorizerизsklearn.feature_extraction.text. - Создайте экземпляр
CountVectorizer, учитывая только триграммы. - Обучите векторизатор и примените его к столбцу
text_cleanза один шаг. - Выведите названия признаков, сгенерированных векторизатором.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import CountVectorizer
from sklearn.feature_extraction.text import ____
# Instantiate a trigram vectorizer
cv_trigram_vec = CountVectorizer(max_features=100,
stop_words='english',
____)
# Fit and apply trigram vectorizer
cv_trigram = ____(speech_df['text_clean'])
# Print the trigram features
print(cv_trigram_vec.____)