Cette étape nécessite quatre sous-étapes : transformation du message en mots, calcul du poids d'un mot dans chaque message, réduction du poids des mots non pertinents dans chaque message et combinaison des vecteurs de caractéristiques.
Procédure
-
Pour transformer des messages en mots :
-
Double-cliquez sur le tModelEncoder nommé Tokenize pour ouvrir sa vue Component. Ce composant transforme les SMS en mots.
-
Cliquez sur le bouton Sync columns afin de récupérer le schéma du composant précédent.
-
Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma.
-
Du côté de la sortie, cliquez sur le bouton [+] pour ajouter une ligne et, dans la colonne Column, renommez-la sms_tokenizer_words. Cette colonne est utilisée pour contenir les messages transformés.
-
Dans la colonne Type, sélectionnez Object pour la ligne sms_tokenizer_words.
-
Cliquez sur OK pour valider ces modifications.
-
Dans la table Transformations, ajoutez une ligne en cliquant sur le bouton [+] et en procédant comme suit :
- Dans la colonne Input column, sélectionnez la colonne fournissant les données à transformer en caractéristiques. Dans ce scénario, sélectionnez sms_contents.
- Dans la colonne Output column, sélectionnez la colonne contenant les caractéristiques. Dans ce scénario, sélectionnez sms_tokenizer_words.
- Dans la colonne Transformation, sélectionnez l'algorithme à utiliser pour la transformation. Dans ce scénario, sélectionnez Regex tokenizer.
- Dans la colonne Parameters, saisissez les paramètres que vous souhaitez personnaliser pour les utiliser dans l'algorithme sélectionné. Dans ce scénario, saisissez pattern=\\W;minTokenLength=3.
En utilisant cette transformation, le tModelEncoder sépare chaque message d'entrée par des espaces blancs, sélectionne uniquement les mots contenant au moins trois lettres et écrit le résultat de la transformation dans la colonne sms_tokenizer_words. Les symboles monétaires, les valeurs numériques, les signes de ponctuation et les mots comme a, an ou to sont exclus de cette colonne.
-
Pour calculer le poids d'un mot dans chaque message :
-
Double-cliquez sur le tModelEncoder nommé tf pour ouvrir sa vue Component.
-
Répétez les opérations précédemment décrites durant la configuration du tModelEncoder nommé Tokenize pour ajouter la colonne sms_tf_vect de type Vector au schéma de sortie et définir la transformation comme dans l'image ci-dessus.
Dans cette transformation, le tModelEncoder utilise HashingTF pour convertir les SMS transformés en vecteurs de caractéristiques de longueur fixe (15 dans ce scénario) afin de refléter l'importance d'un mot dans chaque SMS.
-
Pour réduire le poids des mots sans importance dans chaque message :
-
Double-cliquez sur le composant tModelEncoder nommé tf_idf pour ouvrir sa vue Component.
Dans ce processus, le
tModelEncoder réduit le poids des mots apparaissant très souvent mais dans de trop nombreux messages, car un mot de ce genre n'apporte généralement pas d'information utile lors d'une analyse de texte, comme le mot anglais
the.
-
Répétez les opérations précédemment décrites durant la configuration du tModelEncoder nommé Tokenize pour ajouter la colonne sms_tf_idf_vect de type Vector au schéma de sortie et définir la transformation comme dans l'image ci-dessus.
Dans cette transformation, le tModelEncoder utilise Inverse Document Frequency pour réduire le poids des mots apparaissant dans cinq messages ou plus.
-
Pour combiner les vecteurs de caractéristiques :
-
Double-cliquez sur le tModelEncoder nommé features_assembler pour ouvrir sa vue Component.
-
Répétez les opérations décrites précédemment dans la configuration du tModelEncoder nommé Tokenizer pour ajouter la colonne features_vect de type Vector au schéma de sortie et définir la transformation comme affiché dans l'image ci-dessus.
Notez que le paramètre à mettre dans la colonne Parameters est inputCols=sms_tf_idf_vect,num_currency,num_numeric,num_exclamation.
Dans cette transformation, le tModelEncoder combine tous les vecteurs de caractéristiques en une seule colonne de caractéristiques.