Представление подсчёта слов

Конструирование признаков для машинного обучения в Python

Robert O'Callaghan

Director of Data Science, Ordergroove

Текст в столбцы

Конструирование признаков для машинного обучения в Python

Инициализация векторизатора

from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer()
print(cv)
CountVectorizer(analyzer=u'word', binary=False, 
        decode_error=u'strict', 
        dtype=<type 'numpy.int64'>, 
        encoding=u'utf-8', input=u'content',
        lowercase=True, max_df=1.0, max_features=None, 
        min_df=1,ngram_range=(1, 1), preprocessor=None, 
        stop_words=None, strip_accents=None, 
        token_pattern=u'(?u)\\b\\w\\w+\\b',
        tokenizer=None, vocabulary=None
Конструирование признаков для машинного обучения в Python

Настройка векторизатора

from sklearn.feature_extraction.text import CountVectorizer

cv = CountVectorizer(min_df=0.1, max_df=0.9)

min_df: минимальная доля документов, в которых должно встречаться слово max_df: максимальная доля документов, в которых может встречаться слово

Конструирование признаков для машинного обучения в Python

Обучение векторизатора

cv.fit(speech_df['text_clean'])
Конструирование признаков для машинного обучения в Python

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

cv_transformed = cv.transform(speech_df['text_clean'])
print(cv_transformed)
<58x8839 sparse matrix of type '<type 'numpy.int64'>'
Конструирование признаков для машинного обучения в Python

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

cv_transformed.toarray()
Конструирование признаков для машинного обучения в Python

Получение признаков

feature_names = cv.get_feature_names()
print(feature_names)
[u'abandon', u'abandoned', u'abandonment', u'abate', 
u'abdicated', u'abeyance', u'abhorring', u'abide',
u'abiding', u'abilities', u'ability', u'abject'...
Конструирование признаков для машинного обучения в Python

Обучение и преобразование

cv_transformed = cv.fit_transform(speech_df['text_clean'])
print(cv_transformed)
<58x8839 sparse matrix of type '<type 'numpy.int64'>'
Конструирование признаков для машинного обучения в Python

Собираем всё вместе

cv_df = pd.DataFrame(cv_transformed.toarray(), 
                     columns=cv.get_feature_names())\
                               .add_prefix('Counts_')
print(cv_df.head())
     Counts_aback    Counts_abandoned    Counts_a...
0               1                   0        ...
1               0                   0        ...
2               0                   1        ...
3               0                   1        ...
4               0                   0        ...
1 ```out Counts_aback Counts_abandon Counts_abandonment 0 1 0 0 1 0 0 1 2 0 1 0 3 0 1 0 4 0 0 0 ```
Конструирование признаков для машинного обучения в Python

Обновление DataFrame

speech_df = pd.concat([speech_df, cv_df], 
                      axis=1, sort=False)
print(speech_df.shape)
(58, 8845)
Конструирование признаков для машинного обучения в Python

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

Конструирование признаков для машинного обучения в Python

Preparing Video For Download...