options(warn=-1)
# Vamos a cargar las librerias necesarias
library(pdftools)
## Using poppler version 23.08.0
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stopwords)
library(tidytext)
library(stringi)
library(stringr)
library(ggplot2)
library(scales)
library(tidyr)
library(widyr)
library(ggraph)
library(igraph)
##
## Attaching package: 'igraph'
## The following object is masked from 'package:tidyr':
##
## crossing
## The following objects are masked from 'package:dplyr':
##
## as_data_frame, groups, union
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
library(quanteda)
## Package version: 3.3.1
## Unicode version: 13.0
## ICU version: 69.1
## Parallel computing: 8 of 8 threads used.
## See https://quanteda.io for tutorials and examples.
library(topicmodels)
library(lattice)
library(robustbase)
library(cvTools)
library(syuzhet)
##
## Attaching package: 'syuzhet'
## The following object is masked from 'package:scales':
##
## rescale
library(stringr)
library(tm)
## Loading required package: NLP
##
## Attaching package: 'NLP'
## The following objects are masked from 'package:quanteda':
##
## meta, meta<-
## The following object is masked from 'package:ggplot2':
##
## annotate
##
## Attaching package: 'tm'
## The following object is masked from 'package:quanteda':
##
## stopwords
## The following object is masked from 'package:stopwords':
##
## stopwords
library(wordcloud)
## Loading required package: RColorBrewer
library(ggplot2)
library(readr)
##
## Attaching package: 'readr'
## The following object is masked from 'package:scales':
##
## col_factor
# 2. Importando datos
url1 <- "https://www.gutenberg.org/cache/epub/47287/pg47287.txt"
url2 <- "https://www.gutenberg.org/cache/epub/47631/pg47631.txt"
url3 <- "https://www.gutenberg.org/cache/epub/48903/pg48903.txt"
download.file(url1,destfile = "pg47287.txt")
download.file(url2,destfile = "pg47631.txt")
download.file(url3,destfile = "pg48903.txt")
read_lines("pg47287.txt") %>%
head(20)
## [1] "The Project Gutenberg eBook of El libro de las mil noches y una noche; t. 1"
## [2] ""
## [3] "\n "
## [4] ""
## [5] "\nThis ebook is for the use of anyone anywhere in the United States and"
## [6] ""
## [7] "\nmost other parts of the world at no cost and with almost no restrictions"
## [8] ""
## [9] "\nwhatsoever. You may copy it, give it away or re-use it under the terms"
## [10] ""
## [11] "\nof the Project Gutenberg License included with this ebook or online"
## [12] ""
## [13] "\nat www.gutenberg.org. If you are not located in the United States,"
## [14] ""
## [15] "\nyou will have to check the laws of the country where you are located"
## [16] ""
## [17] "\nbefore using this eBook."
## [18] ""
## [19] "\n"
## [20] ""
file.show("pg47287.txt")
read_lines("pg47631.txt") %>%
head(20)
## [1] "The Project Gutenberg eBook of El libro de las mil noches y una noche; t. 2"
## [2] ""
## [3] "\n "
## [4] ""
## [5] "\nThis ebook is for the use of anyone anywhere in the United States and"
## [6] ""
## [7] "\nmost other parts of the world at no cost and with almost no restrictions"
## [8] ""
## [9] "\nwhatsoever. You may copy it, give it away or re-use it under the terms"
## [10] ""
## [11] "\nof the Project Gutenberg License included with this ebook or online"
## [12] ""
## [13] "\nat www.gutenberg.org. If you are not located in the United States,"
## [14] ""
## [15] "\nyou will have to check the laws of the country where you are located"
## [16] ""
## [17] "\nbefore using this eBook."
## [18] ""
## [19] "\n"
## [20] ""
file.show("pg47631.txt")
read_lines("pg48903.txt") %>%
head(20)
## [1] "The Project Gutenberg eBook of El libro de las mil noches y una noche; t. 3"
## [2] ""
## [3] "\n "
## [4] ""
## [5] "\nThis ebook is for the use of anyone anywhere in the United States and"
## [6] ""
## [7] "\nmost other parts of the world at no cost and with almost no restrictions"
## [8] ""
## [9] "\nwhatsoever. You may copy it, give it away or re-use it under the terms"
## [10] ""
## [11] "\nof the Project Gutenberg License included with this ebook or online"
## [12] ""
## [13] "\nat www.gutenberg.org. If you are not located in the United States,"
## [14] ""
## [15] "\nyou will have to check the laws of the country where you are located"
## [16] ""
## [17] "\nbefore using this eBook."
## [18] ""
## [19] "\n"
## [20] ""
file.show("pg48903.txt")
# revisando el documento
#libro<-read_lines("pg58221.txt")
# Leer el contenido de los tres archivos
tomo1 <- readLines("pg47287.txt", warn = FALSE)
tomo2 <- readLines("pg47631.txt", warn = FALSE)
tomo3 <- readLines("pg48903.txt", warn = FALSE)
# Crear un nuevo archivo unificado
libro <- c(tomo1, tomo2, tomo3)
# Escribir el contenido unificado en un nuevo archivo
writeLines(libro, "libro_completo.txt")
file.show("libro_completo.txt")
# Análisis Inicial
total_lineas <- length(libro)
cat("El número de líneas que contiene el texto son:", total_lineas ," líneas \n")
## El número de líneas que contiene el texto son: 19387 líneas
num_palabras <- sum(sapply(libro, function(x) length(unlist(strsplit(as.character(x), "\\s+")))))
cat("El numero de palabras que contiene el texto son: ", num_palabras, "palabras.")
## El numero de palabras que contiene el texto son: 184908 palabras.
coleccion<- libro %>%
VectorSource()%>%
Corpus()
wordcloud(coleccion,
min.freq = 5,
max.words = num_palabras,
random.order = FALSE,
colors = brewer.pal(name = "Dark2", n=8))

# Frecuencia de palabras
palabras<- coleccion%>%
TermDocumentMatrix()%>%
as.matrix()%>%
rowSums()%>%
sort(decreasing = T)
palabras%>%
head(50)
## que los con las del por una para
## 5048 2158 1546 1427 1401 1352 1042 964
## pero dijo: entonces sus más como the cuando
## 855 822 803 623 615 573 566 466
## después hasta había este «¡oh mis ¡oh rey
## 466 458 458 443 407 397 391 379
## todos todo sin muy joven ella esta pues
## 379 375 356 352 309 305 297 290
## entre visir tan project era nos todas él
## 282 281 277 249 247 246 244 242
## dos casa dijo you sobre toda alah les
## 234 226 226 219 219 217 209 204
## estaba and
## 201 199
frecuencias <- data.frame(
palabra=names(palabras),
frecuencia=palabras
)
#Visualizacion de top 10 palabras:
frecuencias[1:20,]%>%
ggplot()+
aes(frecuencia, y=reorder(palabra, frecuencia))+
geom_bar(stat='identity', color="white", fill="blue")+
geom_text(aes(label=frecuencia, hjust=1.5), color="white")+
labs(
x=NULL,
y=" 20 Palabras mas usadas en la obra"
)

# limpieza inicial del texto
total_lineas <- length(libro)
linea_empieza <- 11
linea_final <- 19037
texto_limpio <- libro[linea_empieza:linea_final]
######
texto_limpio <- texto_limpio %>%
str_replace_all(., "[[:cntrl:]]", " ") %>%
str_to_lower() %>%
removePunctuation() %>%
str_replace_all(., "-", " ")
texto_limpio <- removeWords(texto_limpio, words = stopwords("spanish"))
# Eliminar líneas vacías y líneas que solo contienen espacios en blanco
texto_limpio <- texto_limpio %>%
str_remove_all("^\n+$") %>%
str_remove_all("^\\s*$")
texto_limpio <- stripWhitespace(texto_limpio)
texto_limpio <- texto_limpio[texto_limpio != ""]
total_lineas <- length(texto_limpio)
cat("El número de líneas que contiene el texto despues de una primera limpieza son:", total_lineas ," líneas \n")
## El número de líneas que contiene el texto despues de una primera limpieza son: 15862 líneas
num_palabras1 <- sum(sapply(texto_limpio, function(x) length(unlist(strsplit(as.character(x), "\\s+")))))
cat("El numero de palabras que contiene el texto despues de la primera limpieza son: ", num_palabras, "palabras.")
## El numero de palabras que contiene el texto despues de la primera limpieza son: 184908 palabras.
coleccion<- texto_limpio %>%
VectorSource()%>%
Corpus()
wordcloud(coleccion,
min.freq = 5,
max.words = num_palabras1,
random.order = FALSE,
colors = brewer.pal(name = "Dark2", n=8))

# 2da limpieza del texto
a_retirar<- c("â€","â€","mã","â¡","mã¡s","â¿","quã©","â¿quã©","â€pues","â€â¡",
"usted", "don", "tal", "asi","así", "sino", "ser",
"mismo","pues","dijo","vex", "pues","ojos","fue","alli","tan","mas","fué","dé","don","fui","vi","sé","á","é","ea","oh","oí","ire","fuí","ahí","ello","después","entonces","seis","all","ele","file","its","ebook","full","fin","for","works","that","ido","can","red","etc","collar","vol","hacía","xiv","law","not","flor","work","voz","vais","oir","will")
# Remover caracteres especiales y limpiar el texto
texto_limpio <- gsub("[^a-zA-ZáéíóúüñÁÉÍÓÚÜÑ\\s]", " ", texto_limpio)
texto_limpio<- removeWords(texto_limpio, words = a_retirar)
num_palabras2 <- sum(sapply(texto_limpio, function(x) length(unlist(strsplit(as.character(x), "\\s+")))))
cat("El numero de palabras que contiene el texto despues de la segunda limpieza son: ", num_palabras2, "palabras.")
## El numero de palabras que contiene el texto despues de la segunda limpieza son: 92030 palabras.
coleccion<- texto_limpio %>%
VectorSource()%>%
Corpus()
wordcloud(coleccion,
min.freq = 5,
max.words = num_palabras2,
random.order = FALSE,
colors = brewer.pal(name = "Dark2", n=8))

#Frecuencia de palabras
palabras1<- coleccion%>%
TermDocumentMatrix()%>%
as.matrix()%>%
rowSums()%>%
sort(decreasing = T)
palabras1%>%
head(50)
## alah rey joven visir the casa noche califa
## 544 504 489 411 386 385 344 275
## historia día todas dos hermano seguida alínur hijo
## 272 260 259 255 253 251 244 228
## padre toda contestó aquí cuanto palacio ciudad vió
## 227 222 216 215 197 195 188 182
## mano ahora cabeza gutenberg project palabras efrit aquel
## 182 180 180 178 178 177 176 175
## vez gran hassán bien manos puerta hacia modo
## 170 169 165 165 160 160 160 159
## hombre sultán oro cada luego llegó corazón tiempo
## 158 157 154 152 151 151 150 150
## you ver
## 150 149
frecuencias1 <- data.frame(
palabra=names(palabras1),
frecuencia1=palabras1
)
#Visualizacion de top 10 palabras:
frecuencias1[1:20,]%>%
ggplot()+
aes(frecuencia1, y=reorder(palabra, frecuencia1))+
geom_bar(stat='identity', color="white", fill="red")+
geom_text(aes(label=frecuencia1, hjust=1.5), color="white")+
labs(
x=NULL,
y=" 20 Palabras mas usadas despues de la depuracion"
)

# Función para crear Bigramas
generar_bigramas <- function(texto){
tokens <- tokens(texto, what = "word", remove_punct = TRUE, remove_numbers = TRUE, remove_symbols = TRUE)
bigramas_tokens <- tokens_ngrams(tokens, n = 2)
bigramas_df <- dfm(bigramas_tokens)
bigramas_df <- dfm_sort(bigramas_df, decreasing = TRUE)
return(head(bigramas_df, 10))
}
# Aseguramos que texto_limpio1 sea un único string
texto_limpio <- paste(texto_limpio, collapse = " ")
# Generar bigramas
bigramas_df1 <- generar_bigramas(texto_limpio)
# Convertir el objeto dfm a un dataframe
bigramas_df1 <- tidy(bigramas_df1)
# Transformar el dataframe para tener dos columnas: "bigrama" y "n"
# Renombrar las columnas
bigramas_df1 <- bigramas_df1 %>%
rename(bigrama = term, n = count)
bigramas_df1 <- select(bigramas_df1, -document)
# Separando la columna de bigramas en dos columnas
bigramas_df1 <- bigramas_df1 %>%
filter(str_count(bigrama, "_") == 1) %>%
separate(bigrama, into = c("uno", "dos"), sep = "_")
# Filtrando bigramas con frecuencia mayor o igual a 12
bigramas_filtrados1 <- bigramas_df1 %>%
filter(n >= 12)
# Limitar el número de nodos a mostrar
max_nodos <- 20 # Establece el número máximo de nodos que deseas mostrar
nodos_a_mostrar <- bigramas_filtrados1 %>%
slice_max(n, n = max_nodos)
# Creando la red semántica
set.seed(123)
g <- graph_from_data_frame(bigramas_filtrados1)
ggraph(g, layout = "with_fr") +
geom_edge_link(arrow = arrow(type="closed", length = unit(.075, "inches")),color="blue") +
geom_node_point() +
geom_node_text(aes(label=name), vjust=1, hjust=1, color="red") +
theme_void()+
theme(plot.margin = margin(-10, -10,-10,-10))

# Imprimir los nodos
nodos <- V(g)
print(nodos)
## + 170/170 vertices, named, from 2252666:
## [1] project the hassán of kuat
## [6] emir mil sett jeique saber
## [11] rey llegado dinares llegó schahrazada
## [16] in narración vió momento terms
## [21] gutenberg noches aparecer with to
## [26] this escucho noche united if
## [31] blasco calló v ghanem imagen
## [36] mañana cada literary archive visir
## [41] tierra gracias echó médico diez
## [46] libro aquel alah toda nombre
## + ... omitted several vertices
# Imprimir las aristas
aristas <- get.edgelist(g)
print(aristas)
## [,1] [,2]
## [1,] "project" "gutenberg"
## [2,] "the" "project"
## [3,] "hassán" "badreddin"
## [4,] "of" "the"
## [5,] "kuat" "alkulub"
## [6,] "emir" "creyentes"
## [7,] "mil" "dinares"
## [8,] "sett" "elhosn"
## [9,] "jeique" "ibrahim"
## [10,] "saber" "rey"
## [11,] "rey" "afortunado"
## [12,] "llegado" "saber"
## [13,] "dinares" "oro"
## [14,] "llegó" "noche"
## [15,] "mil" "noches"
## [16,] "schahrazada" "vió"
## [17,] "in" "the"
## [18,] "narración" "schahrazada"
## [19,] "vió" "aparecer"
## [20,] "momento" "narración"
## [21,] "terms" "of"
## [22,] "of" "this"
## [23,] "gutenberg" "electronic"
## [24,] "noches" "noche"
## [25,] "aparecer" "mañana"
## [26,] "with" "the"
## [27,] "to" "the"
## [28,] "this" "agreement"
## [29,] "escucho" "obedezco"
## [30,] "noche" "llegado"
## [31,] "united" "states"
## [32,] "if" "you"
## [33,] "the" "terms"
## [34,] "blasco" "ibáñez"
## [35,] "calló" "discretamente"
## [36,] "rey" "schahriar"
## [37,] "the" "united"
## [38,] "v" "blasco"
## [39,] "ghanem" "benayub"
## [40,] "imagen" "llegó"
## [41,] "mañana" "calló"
## [42,] "cada" "vez"
## [43,] "gutenberg" "literary"
## [44,] "literary" "archive"
## [45,] "archive" "foundation"
## [46,] "visir" "chamseddin"
## [47,] "tierra" "manos"
## [48,] "gracias" "alah"
## [49,] "echó" "reir"
## [50,] "the" "foundation"
## [51,] "médico" "judío"
## [52,] "diez" "mil"
## [53,] "libro" "mil"
## [54,] "aquel" "momento"
## [55,] "alah" "altísimo"
## [56,] "toda" "noche"
## [57,] "gutenberg" "license"
## [58,] "nombre" "alah"
## [59,] "hija" "tío"
## [60,] "rey" "yunán"
## [61,] "harún" "alrachid"
## [62,] "by" "the"
## [63,] "mandó" "llamar"
## [64,] "tres" "días"
## [65,] "of" "project"
## [66,] "access" "to"
## [67,] "discretamente" "imagen"
## [68,] "día" "días"
## [69,] "exclamó" "alah"
## [70,] "besó" "tierra"
## [71,] "volviéndose" "hacia"
## [72,] "you" "may"
## [73,] "contestó" "alah"
## [74,] "toda" "historia"
## [75,] "aquella" "noche"
## [76,] "mano" "izquierda"
## [77,] "todas" "partes"
## [78,] "visir" "nureddin"
## [79,] "imagen" "imagen"
## [80,] "deseó" "paz"
## [81,] "día" "noche"
## [82,] "aquel" "día"
## [83,] "agua" "rosas"
## [84,] "diez" "días"
## [85,] "ptas" "volumen"
## [86,] "set" "forth"
## [87,] "forth" "in"
## [88,] "this" "or"
## [89,] "you" "are"
## [90,] "médico" "ruyán"
## [91,] "toda" "clase"
## [92,] "príncipe" "creyentes"
## [93,] "corredor" "nazareno"
## [94,] "primera" "vez"
## [95,] "algún" "tiempo"
## [96,] "echó" "llorar"
## [97,] "dice" "poeta"
## [98,] "día" "siguiente"
## [99,] "toda" "ciudad"
## [100,] "luna" "llena"
## [101,] "califa" "harún"
## [102,] "you" "do"
## [103,] "copies" "of"
## [104,] "agree" "to"
## [105,] "hermano" "bacbuk"
## [106,] "alínur" "dulceamiga"
## [107,] "hija" "visir"
## [108,] "todas" "cosas"
## [109,] "puso" "pie"
## [110,] "pasar" "noche"
## [111,] "volvió" "hacia"
## [112,] "recitó" "versos"
## [113,] "si" "quieres"
## [114,] "visir" "giafar"
## [115,] "abrió" "puerta"
## [116,] "joven" "hassán"
## [117,] "rey" "china"
## [118,] "illustration" "historia"
## [119,] "comer" "beber"
## [120,] "oyó" "palabras"
## [121,] "dió" "gracias"
## [122,] "di" "gracias"
## [123,] "ojo" "izquierdo"
## [124,] "dos" "perras"
## [125,] "califa" "giafar"
## [126,] "padre" "visir"
## [127,] "use" "of"
## [128,] "or" "any"
## [129,] "you" "must"
## [130,] "in" "paragraph"
## [131,] "foundation" "the"
## [132,] "are" "located"
## [133,] "the" "copyright"
## [134,] "information" "about"
## [135,] "donations" "to"
## [136,] "gran" "visir"
## [137,] "madre" "alínur"
## [138,] "madre" "hermana"
# concluciones
# Los términos en árabe o relacionados con la cultura árabe, como "schahrazada," "jeique," "mil," "dinares," "saber," y otros, desempeñan un papel central en la trama y la narrativa.
# Posibles Personajes :
#Schahrazada: Schahrazada es uno de los personajes principales de la obra. Su nombre se asocia a palabras como "narración," lo que refleja su papel central como la narradora de las historias que componen el libro.
#Rey Schahriar: Rey Schahriar es otro personaje fundamental en la narrativa, relacionado con Schahrazada y temas como "noche" y "rey." Él desempeña un papel importante en la historia, ya que es el rey que escucha las historias de Schahrazada.
#Jeique o Sabio: Los términos "jeique" y "sabio" se asocian con palabras relacionadas con la narración de historias, lo que sugiere que este personaje también podría ser relevante en la narrativa.
#Hassán: "Hassán" es otro personaje que se menciona en la red semántica. Sin más contexto, es difícil determinar su papel específico en la historia.
# Pricipe - Emir : La palabra "emir" es un título de nobleza que se utiliza en algunos contextos islámicos para designar a un líder o gobernante.
#Importancia Religiosa: La presencia de "alah" en la red semántica sugiere una fuerte importancia religiosa en la obra. Es probable que "alah" esté relacionado con conceptos religiosos, oraciones y creencias espirituales. La red refleja la influencia cultural y religiosa del contexto islámico en el que se desarrollan las historias. Los términos religiosos como "alah" son comunes en las narrativas que tienen lugar en entornos islámicos.
# La presencia de "project" y "gutenberg" en la red semántica puede indicar la influencia y el contexto del Proyecto Gutenberg al momento de publicar la obra , dado que emite comentarios sobre licencias y demas que se hacen al momento de publicar los textos y daod que el Proyecto Gutenberg ha sido utilizado como fuente para los tres tomos del libro que se analizaron.
#la red semántica no ha sido depurada de palabras en inglés. Para un análisis más preciso de la red en el contexto de "Las Mil y Una Noches", sería necesario limpiar la red de términos en inglés y los comentarios al inicio y final del texto los cuales no estén relacionados con la obra.
resultado <- get_nrc_sentiment(texto_limpio, language ="spanish")
trad_emociones <- function(cadena){
case_when(
cadena == "anger"~ "Ira",
cadena == "anticipation"~ "Anticipacion",
cadena == "disgust"~ "Aversion",
cadena == "fear"~ "Miedo",
cadena == "joy"~ "Alegria",
cadena == "sadness"~ "Tristeza",
cadena == "surprise"~ "Asombro",
cadena == "trust"~ "Confianza",
cadena == "negative"~ "Negativo",
cadena == "positive"~ "Positivo",
TRUE ~ cadena
)
}
sentimientos <- resultado%>%
gather(sentimiento, cantidad)%>%
mutate(sentimiento = trad_emociones(sentimiento))%>%
group_by(sentimiento)%>%
summarise(total = sum(cantidad))
index <- sentimientos$sentimiento %in% c("Positivo", "Negativo")
# Visualización de emociones
sentimientos[!index,] %>%
ggplot()+
aes(sentimiento, total)+
geom_bar(aes(fill = sentimiento), stat = "identity") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
xlab(NULL) +
ylab("Total") +
ggtitle("Emociones en las mil y una noches ")

# Visualización de si son sentimientos negativos o positivos:
sentimientos[index,] %>%
ggplot()+
aes(sentimiento, total)+
geom_bar(aes(fill = sentimiento), stat = "identity")+
xlab(NULL)+
ylab("Total")+
ggtitle(" Sentimientos en las mil y una noches ")

#concluciones
# El libro contiene una amplia gama de emociones. Los personajes y las historias evocan sentimientos como la felicidad, la sorpresa, la tristeza y el miedo, lo que lo hace emocionalmente diverso.
# El libro tiene partes con momentos felices y otros con situaciones conflictivas. En algunas partes, los personajes experimentan emociones positivas, mientras que en otras, enfrentan desafíos y conflictos.
# Entre las emociones, la "confianza," el "miedo" y el "asombro" son particularmente notables. Esto sugiere que la historia involucra personajes valientes y momentos sorprendentes que atraen la atención del lector.
# A pesar de la diversidad emocional, el libro mantiene un equilibrio entre las emociones positivas y negativas. Esto significa que las historias buscan generar una gama equilibrada de respuestas emocionales en los lectores.
# El análisis de sentimiento es una herramienta útil para entender la carga emocional de la obra. Ayuda a profundizar en el significado de las historias, cómo se relacionan con los personajes y los temas, y cómo impactan en los lectores.
#PREGUNTAS :
# La longitud inicial del libro en palabras es:
num_palabras1 <- sum(sapply(texto_limpio, function(x) length(unlist(strsplit(as.character(x), "\\s+")))))
cat("El numero de palabras que contiene el texto despues de la primera limpieza son: ", num_palabras, "palabras.")
## El numero de palabras que contiene el texto despues de la primera limpieza son: 184908 palabras.
#La palabra que más se repite es:
frecuencias1[1,]%>%
ggplot()+
aes(frecuencia1, y=reorder(palabra, frecuencia1))+
geom_bar(stat='identity', color="white", fill="red")+
geom_text(aes(label=frecuencia1, hjust=1.5), color="white")+
labs(
x=NULL,
y=" Palabra mas usadas despues de la depuracion"
)

# ¿Cuál palabra se repite más entre alah, rey o visir?: LA RESPUESTA ES ALAH
frecuencias1[1:5,]%>%
ggplot()+
aes(frecuencia1, y=reorder(palabra, frecuencia1))+
geom_bar(stat='identity', color="white", fill="red")+
geom_text(aes(label=frecuencia1, hjust=1.5), color="white")+
labs(
x=NULL,
y=" Palabra mas usadas despues de la depuracion"
)

# La emoción que se presenta con mayor frecuencia es:
cat("La emoción que se presenta con mayor frecuencia en el texto es: Miedo")
## La emoción que se presenta con mayor frecuencia en el texto es: Miedo
# La emoción que se presenta con menor frecuencia es:
cat("La emoción que se presenta con menor frecuencia en el texto es: Asombro ")
## La emoción que se presenta con menor frecuencia en el texto es: Asombro