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