0% ont trouvé ce document utile (0 vote)
11 vues5 pages

Text Mining TP1: Faculté Des Sciences Ain Chock Casablanca

Transféré par

fatimaezahraouahmid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues5 pages

Text Mining TP1: Faculté Des Sciences Ain Chock Casablanca

Transféré par

fatimaezahraouahmid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 5

Faculté des sciences Ain Chock

Casablanca

Text Mining
TP 1

L’objectif du TP est d’explorer les packages de R dédiés pour le Text Mining.

Prérequis :
Installation de R

Installation des packages suivants :

Tm : pour le text mining

SnowballC : pour le text stemming

Wordcloud : générateur de word-cloud

RColorBrewer : Palettes de couleurs

Proxy : calcul statistiques

Etape 1 : Texte analysé


Cette étape concerne la collecte des documents. Dans ce premier TP, nous allons travailler sur
un seul document « text mining.txt » extrait de Wikipedia et qui se trouve dans le répertoire
TP1.

Etape 2 : Chargement des packages


Ouvrir une console R et charger les packages nécessaire pour réaliser le TP :
library("tm")

library("SnowballC")

library("wordcloud")

library("RColorBrewer")

library("proxy")

Etape 3: Exploration des textes


 Chargement du texte :
Lecture du fichier texte

filePath <- "chemin vers text mining.txt"

text <- readLines(filePath)

Charger les données comme un corpus : on utilise la fonction corpus()

docs <- Corpus(VectorSource(text))

Pour visualiser le contenu chargé du texte, on utilise la commande :

inspect(docs)

 Prétraitement du texte :

Utiliser de la fonction fonction tm_map() pour nettoyer le texte et la commande


inspect(docs)

Pour visualiser le document après chaque transformation

 Remplacer les caractères spéciaux non utiles. Par exemple : remplacer “/”, “@” et “|”
avec un espace

toSpace <- content_transformer(function (x ,pattern) gsub(pattern," ", x))

docs <- tm_map(docs, toSpace, "/")

docs <- tm_map(docs, toSpace, "@")

docs <- tm_map(docs, toSpace, "\\|")

 Convertir le texte en minuscule

docs <- tm_map(docs, content_transformer(tolower))

 Supprimer les nombres

docs <- tm_map(docs, removeNumbers)

 Supprimer les mots vides anglais

docs <- tm_map(docs, removeWords, stopwords("english"))

 Supprimer des stop-words

docs <- tm_map(docs, removeWords, c("[Ll]e", "[Uu]n"))

 Supprimer des stop-words à partir d’une liste personnalisée

mystopwords <- c(stopwords(‘french’), "les", "tout", "avoir", "être", "de")


Faculté des sciences Ain Chock

Casablanca

docs <- tm_map(docs, removeWords, mystopwords)

 Supprimer les ponctuations

docs <- tm_map(docs, removePunctuation)

 Supprimer les espaces vides supplémentaires

docs <- tm_map(docs, stripWhitespace)

Etape 4: Construction de la matrice des mots par documents


 Utiliser la fonction TermDocumentMatrix()

dtm <- TermDocumentMatrix(docs)

m <- as.matrix(dtm)

v <- sort(rowSums(m),decreasing=TRUE)

d <- data.frame(word = names(v),freq=v)

head(d, 10)

head(d, 20)

head(d, 30)

Etape 5 : Exploration de la fréquence des mots


 Afficher les mots dont la fréquence d’apparition dans le texte est supérieurs à 4

findFreqTerms(dtm, lowfreq = 4)

 Afficher la liste des mots qui sont associés au mot « fouille » avec un taux de
corrélation supérieurs à 0.35

findAssocs(dtm, terms = "fouille", corlimit = 0.3)


 Représenter par un graphe les fréquences des 10 mots les plus fréquents

barplot(d[1:10,]$freq, las = 2, names.arg = d[1:10,]$word, col ="lightblue", main


="Mots les plus fréquents", ylab = "Fréquence par mot")

Etape 6: Génération du nuage des mots


 Illustrer la matrice par un nuage des mots où la taille et la couleur de fonte de chaque
mot varie son importance dans la matrice

wordcloud(words = d$word, freq = d$freq, min.freq = 1, max.words=200,


random.order=FALSE, rot.per=0.35, colors=brewer.pal(8, "Dark2"))

Avec :

 words : les mots à dessiner


 freq : la fréquence des mots
 min.freq : les mots avec une fréquence en dessous de min.freq ne seront pas illustrés
 max.words : nombre maximum de mots à dessiner
 random.order : dessine les mots dans un ordre aléatoire. Si false, ils seront dessinés par
ordre décroissant de la fréquence
 rot.per : la proportion de mots verticaux sur le graphe
 colors : couleurs des mots du moins au plus fréquent. Utiliser par exemple, colors
=“black” pour une couleur unique.

Etape 7 : Stemming
 Utiliser les stems comme unité linguistique au lieu des mots. Reprendre le TP on a
joutant à la fin de l’tape 2 la commande :

docs <- tm_map(docs, stemDocument)

Etape 8 : Calcul de similarité


 Fonction pour Normaliser les vecteurs des documents :

normalize <- function(x) { return (x / sqrt(sum(x^2))) }

 Normalisation des colonnes de la dtm matrix (m)

m_normalized <- apply(m, 2, normalize)

 Calculer et afficher la similarité entre deux documents donnés

doc1 <- tdm_matrix_normalized[,1]

doc2 <- tdm_matrix_normalized[,2]


Faculté des sciences Ain Chock

Casablanca

cosine_similarity <- sum(doc1 * doc2)

print(cosine_similarity)

 Fonction pour Normaliser les vecteurs des documents en prenant en considération les
vecteurs de valeurs 0:

normalize <- function(x) {

norm <- sqrt(sum(x^2))

if (norm == 0) {

return(rep(0, length(x))) }

else {

return (x / norm) }

Référence :
1. http://www.sthda.com/french/wiki/text-mining-et-nuage-de-mots-avec-le-logiciel-r-5-
etapes-simples-a-savoir

2. https://rstudio-pubs-
static.s3.amazonaws.com/163802_0f005a14bcfb4c4b8ee17ac8a8e6c3e9.html

Vous aimerez peut-être aussi