Racinisation et reconstitution des mots sur une phrase
Considérons la phrase suivante comme notre document pour cet exercice :
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Cette phrase contient les trois mêmes formes du mot "complicate" que vous avez vues dans l’exercice précédent. La différence ici, c’est que même si vous appelez stemDocument() sur cette phrase, elle serait renvoyée telle quelle, sans raciniser aucun mot. Prenez un moment pour l’essayer dans la console. N’oubliez pas d’inclure les signes de ponctuation.
Cela se produit parce que stemDocument() traite la phrase entière comme un seul mot. Autrement dit, notre document est un vecteur de caractères de longueur 1, au lieu d’une longueur n, où n est le nombre de mots du document. Pour résoudre ce problème, nous supprimons d’abord les signes de ponctuation avec la fonction removePunctuation() que vous avez découverte il y a quelques exercices. Nous appliquons ensuite strsplit() à ce vecteur de longueur 1 pour obtenir une longueur n, puis unlist(), avant de procéder à la racinisation et à la reconstitution.
Pas d’inquiétude si cela vous semble confus. Passons par les étapes une à une !
Cet exercice fait partie du cours
Text mining avec sac de mots en R
Instructions
Le document text_data et le dictionnaire de reconstitution comp_dict sont chargés dans votre environnement de travail.
- Supprimez les signes de ponctuation dans
text_dataavecremovePunctuation(), et affectez le résultat àrm_punc. - Appelez
strsplit()surrm_puncavec l’argumentsplitégal à" ". Imbriquez cet appel dansunlist(), et affectez àn_char_vec. - Utilisez de nouveau
stemDocument()pour raciniser les mots den_char_vec, et affectez àstem_doc. - Créez
complete_docen reconstituant votre document racinisé avecstemCompletion()et en utilisantcomp_dictcomme corpus de référence.
Est-ce que stem_doc et complete_doc correspondent à ce que vous attendiez ?
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Remove punctuation: rm_punc
rm_punc <- ____
# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))
# Perform word stemming: stem_doc
stem_doc <- ___
# Print stem_doc
stem_doc
# Re-complete stemmed document: complete_doc
complete_doc <- ___
# Print complete_doc
complete_doc