Newer
Older
explore-corpus / Niveau-2 / Vieillissement_V1 / R / TopicModels_Code_R
@Pan Pan Hu Pan Pan Hu on 21 Jul 2017 1 KB third commit
#préparation des données
Viellissement <- file.path("chemin_vers_corpus")#indiquer le chemin vers le corpus
Viellissement
library(NLP)#entrer le package NLP
library(tm)#entrer le package tm
docs <- Corpus(DirSource(Viellissement))#lire le corpus
summary(docs)
docs <- tm_map(docs, toSpace, "/|@|\\|")#éliminer certains signaux spéciaux
docs <- tm_map(docs,content_transformer(tolower))#transmettre en minuscule
docs <- tm_map(docs,removeNumbers)#éliminer le nombre
docs <- tm_map(docs,removePunctuation)#éliminer la ponctuation 
docs <- tm_map(docs,removeWords,stopwords("english")) #ajout de stopword proposé par package tm
docs <- tm_map(docs,removeWords,c("age","studies","study","use","study","fig","may","a..","also","among","can","..m")) #ajout de stopword proprement défini
docs <- tm_map(docs,stripWhitespace)#éliminer des espèces  

dtm <- DocumentTermMatrix(docs)#transformer le corpus en matrice de fréquence de mot(les documents comme la première ligne et les mots comme la première colonne )
dtm

#classement 
library(topicmodels)
ap_lda <- LDA(dtm, k = 20, control = list(seed = 1234))#k est le nombre de thématiques
ap_lda
library(tidytext)
ap_topics <- tidy(ap_lda,matrix="beta")#beta est une matrice (thématiques et leurs listes de mots avec le poids) 
ap_topics

#visualisation
library(ggplot2)#entrer le package ggplot2
library(dplyr)#entrer le package dplyr
ap_top_terms <- ap_topics %>%
group_by(topic) %>%
top_n(10,beta) %>%
ungroup() %>%
arrange(topic,-beta)

ap_top_terms <- ap_topics %>%
group_by(topic) %>%
top_n(10,beta) %>%
ungroup() %>%
arrange(topic,-beta)
ap_top_terms %>%
ggplot(aes(term,beta,fill=factor(topic)))+geom_col(show.legend = FALSE)+facet_wrap(~ topic,scales = "free")+coord_flip()