CC BY-NC-ND 3.0
Discursos de Lenín Moreno https://www.presidencia.gob.ec/discursos/
miTexto01 <- readLines("./myData/discurso20190109.txt")
miTexto02 <- readLines("./myData/discurso20190110.txt")
miTexto03 <- readLines("./myData/discurso20190111.txt")
miTexto04 <- readLines("./myData/discurso20190117.txt")
Objetivo: palabras mas frecuentes para cada discurso del Presidente.
miTexto01 <- paste(
readLines("./myData/discurso20190109.txt"),
collapse = " ")
miTexto02 <- paste(
readLines("./myData/discurso20190110.txt"),
collapse = " ")
miTexto03 <- paste(
readLines("./myData/discurso20190111.txt"),
collapse = " ")
miTexto04 <- paste(
readLines("./myData/discurso20190117.txt"),
collapse = " ")
sacarCarEsp <- function(mitexto_IN){
return(mitexto_OUT)
}
1.1. minusculas
sacarCarEsp <- function(mitexto_IN){
mitexto_OUT <- tolower(mitexto_IN)
return(mitexto_OUT)
}
1.2. caracteres especiales
sacarCarEsp <- function(mitexto_IN){
mitexto_OUT <- tolower(mitexto_IN)
mitexto_OUT <- gsub("á", replacement = "a", mitexto_OUT)
mitexto_OUT <- gsub("í", replacement = "i", mitexto_OUT)
mitexto_OUT <- gsub("ñ", replacement = "n", mitexto_OUT)
mitexto_OUT <- gsub("ó", replacement = "o", mitexto_OUT)
mitexto_OUT <- gsub("ú", replacement = "u", mitexto_OUT)
mitexto_OUT <- gsub("é", replacement = "e", mitexto_OUT)
mitexto_OUT <- gsub("\\—|,|;|:|\\.|\\(|\\)|%|“|”|\\-|[0-9]|¡|!|–",
replacement = "", mitexto_OUT)
return(mitexto_OUT)
}
1.3. aplicar
miTexto01_trans <- sacarCarEsp(mitexto_IN = miTexto01)
miTexto02_trans <- sacarCarEsp(mitexto_IN = miTexto02)
miTexto03_trans <- sacarCarEsp(mitexto_IN = miTexto03)
miTexto04_trans <- sacarCarEsp(mitexto_IN = miTexto04)
misPalabras01 <- data.frame(
palabra = strsplit(miTexto01_trans, split = " ")[[1]],
stringsAsFactors = FALSE)
head(misPalabras01)
## palabra
## 1 seã±ores
## 2 embajadores
## 3 y
## 4 embajadoras
## 5 representantes
## 6 de
misPalabras01 <- data.frame(
palabra = strsplit(miTexto01_trans, split = " ")[[1]],
stringsAsFactors = FALSE)
misPalabras01$tamano <- nchar(misPalabras01[, 1])
head(misPalabras01, n = 50)
## palabra tamano
## 1 seã±ores 8
## 2 embajadores 11
## 3 y 1
## 4 embajadoras 11
## 5 representantes 14
## 6 de 2
## 7 jefes 5
## 8 de 2
## 9 estado 6
## 10 y 1
## 11 de 2
## 12 los 3
## 13 organismos 10
## 14 internacionales 15
## 15 que 3
## 16 nos 3
## 17 acompaã±an 10
## 18 reciban 7
## 19 mi 2
## 20 mãs 3
## 21 afectuoso 9
## 22 saludo 6
## 23 gracias 7
## 24 por 3
## 25 aceptar 7
## 26 esta 4
## 27 invitaciã³n 11
## 28 a 1
## 29 la 2
## 30 casa 4
## 31 del 3
## 32 gobierno 8
## 33 y 1
## 34 del 3
## 35 pueblo 6
## 36 ecuatoriano 11
## 37 que 3
## 38 tambiã©n 8
## 39 es 2
## 40 su 2
## 41 casa 4
## 42 0
## 43 aprovecho 9
## 44 esta 4
## 45 ocasiã³n 8
## 46 para 4
## 47 desear 6
## 48 a 1
## 49 ustedes 7
## 50 y 1
tenerPalabras <- function(miTexto){
misPalabras <- data.frame(
palabra = strsplit(miTexto, split = " ")[[1]],
stringsAsFactors = FALSE)
misPalabras$tamano <- nchar(misPalabras[, 1])
return(misPalabras)
}
misPalabras01 <- tenerPalabras(miTexto01_trans)
misPalabras02 <- tenerPalabras(miTexto02_trans)
misPalabras03 <- tenerPalabras(miTexto03_trans)
misPalabras04 <- tenerPalabras(miTexto04_trans)
head(misPalabras04, n = 50)
## palabra tamano
## 1 muchãsimas 11
## 2 gracias 7
## 3 a 1
## 4 ustedes 7
## 5 por 3
## 6 su 2
## 7 presencia 9
## 8 quiero 6
## 9 decirles 8
## 10 que 3
## 11 absolutamente 13
## 12 todos 5
## 13 son 3
## 14 bienvenidos 11
## 15 a 1
## 16 este 4
## 17 evento 6
## 18 que 3
## 19 tiene 5
## 20 mucho 5
## 21 de 2
## 22 sentimiento 11
## 23 mucho 5
## 24 de 2
## 25 solidaridad 11
## 26 no 2
## 27 hay 3
## 28 nada 4
## 29 que 3
## 30 regocije 8
## 31 mãs 3
## 32 el 2
## 33 corazã³n 8
## 34 de 2
## 35 un 2
## 36 ciudadano 9
## 37 que 3
## 38 poder 5
## 39 atender 7
## 40 a 1
## 41 nuestros 8
## 42 viejecitos 10
## 43 a 1
## 44 nuestros 8
## 45 jubilados 9
## 46 a 1
## 47 nuestros 8
## 48 niã±os 6
## 49 poder 5
## 50 atender 7
misPalabras01 <- misPalabras01$palabra[misPalabras01$tamano > 3]
misPalabras02 <- misPalabras02$palabra[misPalabras02$tamano > 3]
misPalabras03 <- misPalabras03$palabra[misPalabras03$tamano > 3]
misPalabras04 <- misPalabras04$palabra[misPalabras04$tamano > 3]
head(misPalabras04, n = 50)
## [1] "muchãsimas" "gracias" "ustedes" "presencia"
## [5] "quiero" "decirles" "absolutamente" "todos"
## [9] "bienvenidos" "este" "evento" "tiene"
## [13] "mucho" "sentimiento" "mucho" "solidaridad"
## [17] "nada" "regocije" "corazã³n" "ciudadano"
## [21] "poder" "atender" "nuestros" "viejecitos"
## [25] "nuestros" "jubilados" "nuestros" "niã±os"
## [29] "poder" "atender" "personas" "excluidas"
## [33] "ladeadas" "aquellas" "encuentran" "estado"
## [37] "indefensiã³n" "puede" "posible" "despuã©s"
## [41] "haber" "dado" "toda" "vida"
## [45] "servicio" "jã³venes" "niã±os" "personas"
## [49] "llegan" "tercera"
stopWords <- readLines("https://raw.githubusercontent.com/stopwords-iso/stopwords-es/master/raw/stop-words-spanish.txt")
stopWords_trans <- sacarCarEsp(mitexto_IN = stopWords)
head(stopWords_trans, n = 100)
## [1] "algãºn" "alguna" "algunas" "alguno" "algunos"
## [6] "ambos" "ampleamos" "ante" "antes" "aquel"
## [11] "aquellas" "aquellos" "aqui" "arriba" "atras"
## [16] "bajo" "bastante" "bien" "cada" "cierta"
## [21] "ciertas" "cierto" "ciertos" "como" "con"
## [26] "conseguimos" "conseguir" "consigo" "consigue" "consiguen"
## [31] "consigues" "cual" "cuando" "dentro" "desde"
## [36] "donde" "dos" "el" "ellas" "ellos"
## [41] "empleais" "emplean" "emplear" "empleas" "empleo"
## [46] "en" "encima" "entonces" "entre" "era"
## [51] "eramos" "eran" "eras" "eres" "es"
## [56] "esta" "estaba" "estado" "estais" "estamos"
## [61] "estan" "estoy" "fin" "fue" "fueron"
## [66] "fui" "fuimos" "gueno" "ha" "hace"
## [71] "haceis" "hacemos" "hacen" "hacer" "haces"
## [76] "hago" "incluso" "intenta" "intentais" "intentamos"
## [81] "intentan" "intentar" "intentas" "intento" "ir"
## [86] "la" "largo" "las" "lo" "los"
## [91] "mientras" "mio" "modo" "muchos" "muy"
## [96] "nos" "nosotros" "otro" "para" "pero"
misPalabras01 <- misPalabras01[!misPalabras01 %in% stopWords_trans]
misPalabras02 <- misPalabras02[!misPalabras02 %in% stopWords_trans]
misPalabras03 <- misPalabras03[!misPalabras03 %in% stopWords_trans]
misPalabras04 <- misPalabras04[!misPalabras04 %in% stopWords_trans]
head(misPalabras04, n = 50)
## [1] "muchãsimas" "gracias" "ustedes" "presencia"
## [5] "quiero" "decirles" "absolutamente" "todos"
## [9] "bienvenidos" "este" "evento" "mucho"
## [13] "sentimiento" "mucho" "solidaridad" "nada"
## [17] "regocije" "corazã³n" "ciudadano" "atender"
## [21] "nuestros" "viejecitos" "nuestros" "jubilados"
## [25] "nuestros" "niã±os" "atender" "personas"
## [29] "excluidas" "ladeadas" "encuentran" "indefensiã³n"
## [33] "posible" "despuã©s" "haber" "dado"
## [37] "toda" "vida" "servicio" "jã³venes"
## [41] "niã±os" "personas" "llegan" "tercera"
## [45] "edad" "tengan" "retiro" "digno"
## [49] "tengan" "dinero"
misPalabras01Tabla <- sort(table(misPalabras01), decreasing = TRUE)
misPalabras02Tabla <- sort(table(misPalabras02), decreasing = TRUE)
misPalabras03Tabla <- sort(table(misPalabras03), decreasing = TRUE)
misPalabras04Tabla <- sort(table(misPalabras04), decreasing = TRUE)
head(misPalabras01Tabla, n = 20)
## misPalabras01
## mundo todos ustedes este nuestros pueblos soã±emos
## 8 5 5 4 4 4 4
## casa mayores millones naciones nuestras paãses podremos
## 3 3 3 3 3 3 3
## siempre aã±o âcon afectan amigos bienestar
## 3 2 2 2 2 2
m01 <- merge(misPalabras01Tabla, misPalabras02Tabla,
by.x = 1, by.y = 1, all = TRUE)
m01 <- merge(m01, misPalabras03Tabla,
by.x = 1, by.y = 1, all = TRUE)
m01 <- merge(m01, misPalabras04Tabla,
by.x = 1, by.y = 1, all = TRUE)
## Warning in merge.data.frame(m01, misPalabras04Tabla, by.x = 1, by.y = 1, :
## column names 'Freq.x', 'Freq.y' are duplicated in the result
colnames(m01) <- c("palabra", "d1", "d2", "d3", "d4")
head(m01, n = 30)
## palabra d1 d2 d3 d4
## 1 mundo 8 2 2 NA
## 2 todos 5 10 6 6
## 3 ustedes 5 4 3 9
## 4 este 4 5 4 7
## 5 nuestros 4 1 2 9
## 6 pueblos 4 NA NA NA
## 7 soã±emos 4 NA NA NA
## 8 casa 3 NA NA NA
## 9 mayores 3 1 NA NA
## 10 millones 3 9 NA NA
## 11 naciones 3 NA NA NA
## 12 nuestras 3 NA 1 NA
## 13 paãses 3 NA NA NA
## 14 podremos 3 NA NA NA
## 15 siempre 3 1 3 2
## 16 aã±o 2 4 NA 3
## 17 âcon 2 4 NA NA
## 18 afectan 2 NA NA NA
## 19 amigos 2 6 2 NA
## 20 bienestar 2 2 1 NA
## 21 comãºn 2 NA NA NA
## 22 compromiso 2 2 NA 1
## 23 comunes 2 NA NA NA
## 24 conocen 2 NA NA NA
## 25 deberãamos 2 NA NA NA
## 26 distinguidos 2 NA NA NA
## 27 ecuatoriano 2 2 NA NA
## 28 estados 2 NA NA NA
## 29 estos 2 NA NA NA
## 30 familias 2 2 NA NA
m01$dTot <- m01$d1 + m01$d2 + m01$d3 + m01$d4
m01 <- m01[order(m01$dTot, decreasing = TRUE),]
head(m01, n = 30)
## palabra d1 d2 d3 d4 dTot
## 2 todos 5 10 6 6 27
## 195 gobierno 1 14 6 4 25
## 3 ustedes 5 4 3 9 21
## 4 este 4 5 4 7 20
## 32 gracias 2 4 5 6 17
## 5 nuestros 4 1 2 9 16
## 120 contra 1 6 4 1 12
## 175 estã 1 7 2 2 12
## 42 personas 2 1 4 3 10
## 49 vida 2 1 3 4 10
## 15 siempre 3 1 3 2 9
## 197 gran 1 1 5 1 8
## 132 debe 1 2 1 2 6
## 40 nuevo 2 1 1 1 5
## 125 corrupciã³n 1 2 1 1 5
## 234 manera 1 2 1 1 5
## 1 mundo 8 2 2 NA NA
## 6 pueblos 4 NA NA NA NA
## 7 soã±emos 4 NA NA NA NA
## 8 casa 3 NA NA NA NA
## 9 mayores 3 1 NA NA NA
## 10 millones 3 9 NA NA NA
## 11 naciones 3 NA NA NA NA
## 12 nuestras 3 NA 1 NA NA
## 13 paãses 3 NA NA NA NA
## 14 podremos 3 NA NA NA NA
## 16 aã±o 2 4 NA 3 NA
## 17 âcon 2 4 NA NA NA
## 18 afectan 2 NA NA NA NA
## 19 amigos 2 6 2 NA NA
Hay paquetes para automatizar tareas de tratamiento de texto como tm…