CountVectorizer для извлечения признаков из текстов на Python, подробно
CountVectorizer подробное руководство по извлечению признаков из текстов на Python
Все, что вам нужно знать, чтобы эффективно использовать CountVectorizer в Sklearn
Самая базовая обработка данных, которая требуется для любого проекта по обработке естественного языка (Natural Language Processing, NLP), заключается в преобразовании текстовых данных в числовые данные. Пока данные находятся в текстовой форме, мы не можем выполнять никакие вычислительные операции.
Для этого преобразования текста в числа существует несколько методов. В этом руководстве будет объяснен один из самых базовых векторизаторов, метод CountVectorizer в библиотеке scikit-learn.
Этот метод очень простой. Он принимает частоту встречаемости каждого слова как числовое значение. Пример поможет это понять.
В следующем блоке кода:
- «О, ты имел в виду управлять изменениями?»
- Понимание удержания с помощью Gradio
- Случайные числа в машинном обучении
- Мы импортируем метод CountVectorizer.
- Вызываем этот метод.
- Подгоняем текстовые данные под метод CountVectorizer и преобразовываем их в массив.
import pandas as pd from sklearn.feature_extraction.text import CountVectorizer # Это текст, который нужно векторизироватьtext = ["Привет, всем! Меня зовут Лили. У меня тоже есть тетя Лили. Я люблю свою тетю.\ Я пытаюсь научиться пользоваться count vectorizer."]cv= CountVectorizer() count_matrix = cv.fit_transform(text)cnt_arr = count_matrix.toarray()cnt_arr
Результат:
array([[1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1]], dtype=int64)
Здесь я имею числовые значения, представляющие текстовые данные выше.
Как мы можем узнать, какие значения представляют какие слова в тексте?
Чтобы это прояснить, полезно преобразовать массив в DataFrame, где имена столбцов будут сами слова.
cnt_df = pd.DataFrame(data = cnt_arr, columns = cv.get_feature_names())cnt_df
Теперь это отображается наглядно. Значение слова “also” равно 1, что означает, что “also” появилось только один раз в тесте. Слово “aunt” встретилось дважды в тексте. Поэтому значение слова “aunt” равно 2.
В предыдущем примере все предложения были в одной строке. Поэтому мы получили только одну строку данных для четырех предложений. Давайте переупорядочим текст и…