Bag-of-words

Анализ тональности текста на Python

Violeta Misheva

Data Scientist

Что такое bag-of-words (BOW)?

 

  • Описывает частоту слов в документе или коллекции документов (корпусе)

  • Формирует словарь и оценивает присутствие каждого слова

Анализ тональности текста на Python

Отзывы о товарах Amazon

первые 10 строк набора данных с отзывами о товарах Amazon

Анализ тональности текста на Python

Анализ тональности с BOW: пример

This is the best book ever. I loved the book and highly recommend it!!!

{'This': 1, 'is': 1, 'the': 2 , 'best': 1 , 'book': 2, 
'ever': 1, 'I':1 , 'loved':1 , 'and': 1  , 'highly': 1,
'recommend': 1 , 'it': 1 }
  • Порядок слов и грамматика не сохраняются!
Анализ тональности текста на Python

Итоговый результат BOW

  • Результат будет выглядеть примерно так:

первые 5 строк набора данных с результатом применения подхода BOW

Анализ тональности текста на Python

Функция CountVectorizer

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(max_features=1000) 
vect.fit(data.review)
X = vect.transform(data.review)
Анализ тональности текста на Python

Вывод CountVectorizer

X
<10000x1000 sparse matrix of type '<class 'numpy.int64'>' 
  with 406668 stored elements in Compressed Sparse Row format>

Анализ тональности текста на Python

Преобразование векторизатора

# Transform to an array
my_array = X.toarray()
# Transform back to a DataFrame, assign column names
X_df = pd.DataFrame(my_array, columns=vect.get_feature_names())
Анализ тональности текста на Python

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

Анализ тональности текста на Python

Preparing Video For Download...