Représentation par fréquence des mots

Ingénierie des caractéristiques pour le Machine Learning en Python

Robert O'Callaghan

Director of Data Science, Ordergroove

Du texte aux colonnes

Ingénierie des caractéristiques pour le Machine Learning en Python

Initialiser le vectoriseur

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
Ingénierie des caractéristiques pour le Machine Learning en Python

Paramétrer le vectoriseur

from sklearn.feature_extraction.text import CountVectorizer

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

min_df : fraction minimale de documents où le mot doit apparaître max_df : fraction maximale de documents où le mot peut apparaître

Ingénierie des caractéristiques pour le Machine Learning en Python

Ajuster le vectoriseur

cv.fit(speech_df['text_clean'])
Ingénierie des caractéristiques pour le Machine Learning en Python

Transformer le texte

cv_transformed = cv.transform(speech_df['text_clean'])
print(cv_transformed)
<58x8839 sparse matrix of type '<type 'numpy.int64'>'
Ingénierie des caractéristiques pour le Machine Learning en Python

Transformer le texte

cv_transformed.toarray()
Ingénierie des caractéristiques pour le Machine Learning en Python

Obtenir les caractéristiques

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'...
Ingénierie des caractéristiques pour le Machine Learning en Python

Ajuster et transformer

cv_transformed = cv.fit_transform(speech_df['text_clean'])
print(cv_transformed)
<58x8839 sparse matrix of type '<type 'numpy.int64'>'
Ingénierie des caractéristiques pour le Machine Learning en Python

Assembler le tout

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 ```
Ingénierie des caractéristiques pour le Machine Learning en Python

Mettre à jour le DataFrame

speech_df = pd.concat([speech_df, cv_df], 
                      axis=1, sort=False)
print(speech_df.shape)
(58, 8845)
Ingénierie des caractéristiques pour le Machine Learning en Python

Passons à la pratique !

Ingénierie des caractéristiques pour le Machine Learning en Python

Preparing Video For Download...