Построение модели «мешок слов»

Конструирование признаков для NLP на Python

Rounak Banik

Data Scientist

Требования к формату данных для алгоритмов МО

Для любого алгоритма МО:

  • Данные должны быть в табличном формате
  • Признаки для обучения должны быть числовыми
Конструирование признаков для NLP на Python

Модель «мешок слов»

  • Извлечение токенов слов
  • Подсчёт частоты токенов
  • Построение векторного представления слов на основе частот и словаря корпуса
Конструирование признаков для NLP на Python

Пример модели «мешок слов»

Корпус

"The lion is the king of the jungle"
"Lions have lifespans of a decade"
"The lion is an endangered species"
Конструирование признаков для NLP на Python

Пример модели «мешок слов»

Словарьa, an, decade, endangered, have, is, jungle, king, lifespans, lion, Lions, of, species, the, The

"The lion is the king of the jungle"
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1]
"Lions have lifespans of a decade"
[1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0]
"The lion is an endangered species"
[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1]
Конструирование признаков для NLP на Python

Предобработка текста

  • Lions, lionlion
  • The, thethe
  • Без знаков препинания
  • Без стоп-слов
  • Уменьшение размера словаря
  • Сокращение числа измерений улучшает качество модели
Конструирование признаков для NLP на Python

Модель «мешок слов» с помощью sklearn

corpus = pd.Series([
    'The lion is the king of the jungle',
    'Lions have lifespans of a decade',
    'The lion is an endangered species'
])
Конструирование признаков для NLP на Python

Модель «мешок слов» с помощью sklearn

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Create CountVectorizer object vectorizer = CountVectorizer()
# Generate matrix of word vectors bow_matrix = vectorizer.fit_transform(corpus) print(bow_matrix.toarray())
array([[0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 3],
       [0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0],
       [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1]], dtype=int64)
Конструирование признаков для NLP на Python

Давайте потренируемся!

Конструирование признаков для NLP на Python

Preparing Video For Download...