Créez un tibble de texte ordonné !
Puisque vous avez appris les principes du tidy data, ce code vous aide à organiser vos données dans un tibble pour pouvoir ensuite travailler dans le tidyverse.
Vous avez vu précédemment qu'appliquer tidy() à un objet TermDocumentMatrix() convertit la TDM en tibble. Dans cet exercice, vous allez créer directement les données de mots à partir de la colonne d'avis appelée comments.
Commencez par utiliser unnest_tokens() pour mettre le texte en minuscules et tokeniser les avis en mots uniques.
Il est parfois utile de conserver l'ordre original des mots au sein de chaque groupe d'un corpus. Pour cela, utilisez mutate(). Dans mutate(), vous utiliserez seq_along() pour créer une suite de nombres de 1 à la longueur de l'objet. Cela permettra de capturer l'ordre des mots tel qu'il a été écrit.
Dans le package tm, vous utiliseriez removeWords() pour supprimer les stopwords. Dans le tidyverse, vous devez d'abord charger le lexique de mots vides (stopwords), puis appliquer un anti_join() entre le data frame de texte ordonné et ces stopwords.
Cet exercice fait partie du cours
<cours>Analyse de sentiments en R</cours>Instructions de l’exercice
- Créez
tidy_reviewsen chaînant (%>%) l'objet d'avis originalbos_reviewsvers la fonctionunnest_tokens(). Passez un nouveau nom de colonne,word, et indiquez la colonnecomments. Rappelez-vous que dans le tidyverse vous n'avez pas besoin de$ni de guillemets. - Créez une nouvelle variable à la manière tidy ! Réécrivez
tidy_reviewsen le chaînant versgroup_byavec la colonneid. Puis%>%de nouveau versmutate(). À l'intérieur de mutate, créez une nouvelle variableoriginal_word_orderégale àseq_along(word). - Affichez le tibble,
tidy_reviews. - Chargez les stopwords « SMART » prédéfinis dans votre session R avec
data("stop_words"). - Écrasez
tidy_reviewsen passant letidy_reviewsoriginal àanti_join()avec un%>%. À l'intérieur deanti_join(), passez le lexique prédéterminéstop_words.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Vector to tibble
tidy_reviews <- bos_reviews %>%
___(___, ___)
# Group by and mutate
tidy_reviews <- tidy_reviews %>%
___(___) %>%
___(original_word_order = ___(___))
# Quick review
___
# Load stopwords
___
# Perform anti-join
tidy_reviews_without_stopwords <- tidy_reviews %>%
___(___)