library(pacman)
p_load(tidyverse, tidytext, tm, wordcloud, wordcloud2, 
       pdftools, patchwork, widyr, dplyr, magrittr)
library(pdftools)
Novela <- pdf_text("El regreso de Sherlock Holmes - Arthur Conan Doyle.pdf")
Novela <- paste(Novela, collapse = " ")

#Quitamos el titulo 
Novela <- str_remove(Novela,"El Regreso de Sherlock Holmes")
Novela <- str_remove(Novela,"Por")
Novela <- str_remove(Novela,"Arthur Conan Doyle")

#Quitamos en encabezado
Novela <- str_remove(Novela,"Libro descargado en www.elejandria.com, tu sitio web de obras de")
Novela <- str_remove(Novela,"dominio público")
Novela <- str_remove(Novela,"¡Esperamos que lo disfrutéis!")

# quitando los numeros y signos de puntuacion
Novela <- str_remove_all(Novela, "[:digit:]")
Novela <- str_remove_all(Novela, "[:punct:]")


Novela <- tibble(Novela) %>% 
             unnest_tokens(Token, Novela) %>% 
             mutate(Token = removeNumbers(Token))

# Este codigo nos sirve para ir eliminado stowords plabras que no sirven e ir reemplazando por unas que son similares
library(readxl)
stopwords_es_1        <- read_excel("CustomStopWords.xlsx")
names(stopwords_es_1) <- c("Token", "Fuente")

stopwords_es_2 <- tibble(Token = c(""), Fuente="Mis StopWords")
stopwords_es   <- rbind(stopwords_es_1, stopwords_es_2)
stopwords_es   <- stopwords_es[!duplicated(stopwords_es$Token), ]

#Sacando las palabras que no sirven
Novela <- Novela %>% anti_join(stopwords_es)
Novela$Token <- str_replace(Novela$Token, "extrañas", "extraña")
Novela$Token <- str_replace(Novela$Token, "fugaces", "fugaz")
Novela$Token <- str_replace(Novela$Token, "pensamientos", "pensamiento")

# leyendo diccionario de los sentimientos
sentimientos <- read.delim("sentimientos_2.txt")
sentimientos <- as.tibble(sentimientos)
sentimientos <- distinct(sentimientos)
sentimientos <- sentimientos[!duplicated(sentimientos), ]

#  Uniendo discurso con el diccionario de sentimientos 
 Novela_sentimiento <- Novela %>% 
  inner_join(sentimientos, by = c("Token" = "palabra"))
 
####GRAFICO DE LAS 15 PALABRAS MÁS USADAS EN LA NOVELA.....
 
# Obteniendo frecuencias por palabra
library(ggplot2)
library(gganimate)
 
Novela_frecuencias <- Novela%>%
  count(Token, sort = TRUE)
#graficando
 grafico_palabras_mas_usadasNovela <- Novela_frecuencias %>% 
  top_n(15) %>% 
  ggplot() + 
  aes(x = fct_reorder(Token, n), y = n, fill = Token) + 
  geom_col() +
  labs(x = NULL, y = "Frecuencia", 
       title = "Novela  El regreso de Sherlock Holmes" ) +
  theme_minimal() + 
  theme(legend.position = "none") +
  coord_flip()

####Nube de palabras con las 100 palabras más usadas en la novela 
 analisis_sentiomiento_generaNovela <- Novela_sentimiento %>% 
  count(sentimiento) %>% 
  ggplot() + aes(x = fct_reorder(sentimiento, n),
                 y = n,
                 fill = sentimiento) + 
  geom_col(show.legend = F) + coord_flip() +
  labs(title ="Análisis de sentimientos de la novela El regreso de Sherlock Holmes",
       subtitle = "Novela El regreso de Sherlock Holmes",
       caption = "Fuente: Obras de dominio público",
       x = "Sentimientos",
       y= "Frecuencia") +
  theme_bw()
 
####Gráfico de Análisis de Sentimientos mostrando las 3 palabras más usadas por sentimiento
 
contar_palabrasNovela <- Novela %>% 
  inner_join(sentimientos,
             by = c("Token" = "palabra")) %>%
  #filter(sentimiento %in% c("positivo","negativo")) %>%
  dplyr::count(Token, sentimiento) %>% 
  group_by(sentimiento) %>% 
  top_n(3, n) 


 grafico_palabras_sentimientoNovela<- ggplot(contar_palabrasNovela) + 
  aes(x=fct_reorder(Token,n),
      y=n,
      fill=sentimiento) +
  geom_col(show.legend = FALSE) +
  facet_wrap( ~ sentimiento, scales = "free", ncol = 5) +
  labs(title= "Gráfico de 3 palabras mas usadas  por sentimiento",
       subtitle = "Novela El regreso de Sherlock Holmes ",
       x = "Palabras", y = "Frecuencia") + 
  theme_bw() +
  coord_flip() 

1 Breve biografía de Arthur Conan Doyle:

Arthur Conan Doyle fue un ovelista británico. Fue de familia escosesa, estudió en las universidades de Stonyhurst y de Edimburgo, donde concluyó la carrera de medicina. Entre 1882 y 1890 ejerció como médico en Southsea (Inglaterra). Para redondear sus magros ingresos publicó una novela de intriga, Estudio en escarlata, que se convertiría en el primero de los sesenta y ocho relatos en los que aparece uno de los detectives literarios más famosos de todos los tiempos, Sherlock Holmes.

“La mente humana es el misterio más grande de todos”

1.1 Arthur Conan Doyle

Biografia de Arthur Conan Doyle

1.2 Video del autor Arthur Conan Doyle

library(vembedr)
embed_url("https://youtu.be/oTBloAzUAKU?si=BfDdwgEYF-ltzlo2") %>% use_align("center")

2 Análisis de la novela

2.1 Gráfico de frecuencias animado con las 15 palabras más usadas en la novela.

 grafico_palabras_mas_usadasNovela

Dentro de las 15 palabras mas usadas en la novela “El regreso de Sherlock Holmes” las que destacan son las palabras “holmes” y “señor”, esto nos da a entender que la novela se trata especialmente de esto.

2.2 Nube de palabras con las 100 palabras más usadas en la novela

library(wordcloud2)

set.seed(2021)
wordcloud2(Novela_frecuencias,
           size = 0.9,
           shape = 'circle')

En esta nube de palabras se puede observar que fue orientada a convencer al publico sobre el regreso de Sherlock Holmes, nos da a entender que este señor habia vuelto a la vida. Esta nube de palabras nos transmite imaginacion.

2.3 Gráfico de Análisis de Sentimientos mostrando las 3 palabras más usadas por sentimiento

grafico_palabras_sentimientoNovela

En el resustado se puede observar que el análisis de las palabras más usadas en la novela “El regreso de Sherlock Holmes” revela que los sentimientos que nos transmiten principalmente son la “alegría”, “confianza”. Estas palabras estan asociadas o nos dan a entender que esta novela es tranquila. Sin embargo, en esta nevela tambien se presentan palabras de negatividad como el miedo, tristeza, ira. Esto significa que la novela tambien tiene un lado malo y orcuro.