La minería de texto (TM) es el proceso de extraer información útil, patrones o conocimiento de textos no estructurados.
Consta de 3 etapas:
Obtener datos: El Reconocimiento óptimo de caracteres (OCR) es una tecnología que permite convertir imágenes de texto en texto editable. También es conocido como extracción de texto de imágenes
Explorar datos: Representación gráfica o visual de los datos para su interpretación. Los métodos más comúnes son el Análisis de Sentimientos, la Nube de Palabras y el Topic Modeling.
Análisis predictivo: Son las únicas técnicas y modelos estadísticos para predecir resultados futuros. Los modelos más usados son el Random Forest, redes neuronales y regresiones.
#install.packages("tidyverse")
library(tidyverse) #Data wrangling
#install.packages("tesseract")
library(tesseract) #OCR
#install.packages("magick")
library(magick) #PNG
#install.packages("officer")
library(officer) #Office(Word)
#install.packages("pdftools")
library(pdftools) #PDF
#install.packages("purrr")
library(purrr) #Función "map" para aplicar una función a cada elemento de un vector
#install.packages("tm")
library(tm) #Text Mining
#install.packages("RColorBrewer")
library(RColorBrewer) #Colores
#install.packages("wordcloud")
library(wordcloud) #Nube de palabras
#install.packages("topicmodels")
library(topicmodels) #Modelos de temas
#install.packages("ggplot2")
library(ggplot2) #Gráficas con más diseño## [1] "Linear regression with one variable x is also known as univariate linear regression\nor simple linear regression. Simple linear regression is used to predict a single\noutput from a single input. This is an example of supervised learning, which means\nthat the data is labeled, i.e., the output values are known in the training data. Let us\nfit a line through the data using simple linear regression as shown in Fig. 4.1.\n"
imagen2 <- image_read("C:\\Users\\luisa\\Downloads\\imagen2.PNG")
# tesseract_download("spa")
texto2 <- ocr(imagen2, engine = tesseract("spa"))
texto2## [1] "Un importante, y quizá controversial, asunto político es el que se refiere al efecto del salario mínimo sobre\nlas tasas de desempleo en diversos grupos de trabajadores. Aunque este problema puede ser estudiado con\ndiversos tipos de datos (corte transversal, series de tiempo o datos de panel), suelen usarse las series de\ntiempo para observar los efectos agregados. En la tabla 1.3 se presenta un ejemplo de una base de datos\nde series de tiempo sobre tasas de desempleo y salarios mínimos.\n"
#eso3 <- pdf_convert("C:\\Users\\luisa\\Downloads\\eso3.pdf", dpi = 600)
eso3_1 <- image_read("C:\\Users\\luisa\\OneDrive\\Documentos\\Luis Angel Elizondo G\\Universidad\\Semestre 6\\Modulo 2\\eso3_1.PNG")
texto3_1 <- ocr(eso3_1, engine = tesseract("spa"))
texto3_1## [1] "Y alli estaba, persiguiendo su barco de papel por el lado izquierdo de Witcham Street. Corría\ndeprisa, pero el agua le ganaba y el barquito estaba sacando ventaja. Oyó un rugido profundo y\nvio cómo cincuenta metros más adelante, colina abajo, el agua de la cuneta se precipitaba\ndentro de una boca de tormenta que aún continuaba abierta. Era un largo semicirculo oscuro\nabierto en el bordillo de la acera y mientras George miraba, una rama desgarrada, con la corteza\noscura y reluciente se hundió en aquellas fauces. Allí pendió por un momento y luego se deslizó\nhacia el interior. Hacia allí se encaminaba su bote.\n\n— ¡Mierda! —chilló horrorizado.\n\nForzó el paso y, por un momento, pareció que iba a alcanzar al barquito. Pero uno de sus ples\nresbaló y George cayo despatarrado despellejándose la rodilla con un grito de dolor. Desde su\nnueva perspectiva, a la altura del pavimento, vio que su barco giraba en redondo dos veces,\nmomentáneamente atrapado en otro remolino, antes de desaparecer.\n\n—|¡Mierda y más mierda! —volvió a chillar, estrellando el puño contra el pavimento.\n\nEso también dolió, y se echó a sollozar. ¡Qué manera tan estupida de perder el barco!\n\nSe levantó para caminar hacia la boca de tormenta y allí se dejó caer de rodillas, para mirar hacia\nel interior. El agua hacia un ruido hueco y humedo al caer en la oscuridad, Ese sonido le daba\nescalofrios. Hacía pensar en..\n\n—¡Eh!\n\nLa exclamación le fue arrancada como con un cordel. Retrocedioó.\n\nAllí adentro había unos ojos amarillos. Ese tipo de ojos que el siempre imaginaba, sin verlos\nnunca, en la oscuridad del sótano. Es un animal —penso, incoherente—,; eso es todo: un animal; a lo\nmejor un gato que quedó atrapado...\n\nDe todos modos, estaba por echar a correr; habria corrido uno o dos segundos, cuando su\ntablero mental se hubiera hecho cargo del espanto que le produjeron esos dos ojos amarillos y\nbrillantes. Sintió la áspera superficie del pavimento bajo los dedos y la fina lámina de agua fría\nque corría alrededor. Se vio a sí mismo levantándose y retrocediendo. Y fue entonces cuando\nuna voz, una voz perfectamente razonable y bastante simpática, le habló desde dentro de la\nboca de tormenta:\n\n—Hola, George —dijo.\n\nGeorge parpadeo y volvió a mirar. Apenas podía dar crédito a lo que vela; era como algo sacado\nde un cuento o de una película donde uno sabe que los animales hablan y bailan. Si hubiera\ntenido diez años más, no habria creido en lo que estaba viendo; pero no tenia dieciséis años, sino\nseis.\n\nEn la boca de tormenta habia un payaso. La luz distaba de ser buena, pero bastó para que\nGeorge Denbrough estuviese seguro de lo que veía. Era un payaso, como en el circo o en la tele.\nParecía una mezcla de Bozo y Clarabell, el que hablaba haciendo sonar su bocina en Howdy\nDoody, los sábados por la mañana. Búfalo Bob era el único que entendía a Clarabell, y eso\nsiempre hacia reir a George. La cara del payaso metido en la boca de tormenta era blanca; tenia\ncómicos mechones de pelo rojo a cada lado de la calva y una gran sonrisa de payaso pintada\n"
eso3_2 <- image_read("C:\\Users\\luisa\\OneDrive\\Documentos\\Luis Angel Elizondo G\\Universidad\\Semestre 6\\Modulo 2\\eso3_2.PNG")
texto3_2 <- ocr(eso3_2, engine = tesseract("spa"))
texto3_2## [1] "alrededor de la boca. Si George hubiese vivido años después, habria pensado en Ronald\nMcDonald antes que en Bozo o en Clarabell.\n\nEl payaso tenía en una mano un manojo de globos de todos los colores, como tentadora fruta\nmadura.\n\nEn la otra, el barquito de papel de George.\n\n—¿Quieres tu barquito, Georgie? —El payaso sonrela.\n\nGeorge también sonrió. No podía evitarlo; aquella sonrisa era del tipo que uno devuelve sin\nquerer.\n\n—Por supuesto.\n\nEl payaso se echó a reir.\n\n—«Por supuesto». ¡Así me gusta! ¡Así me gusta! ¿Y un globo? ¿Que te parece? ¿Quieres un globo”\n—Bueno.. sí, por supuesto. —Alargó la mano, pero de inmediato la retiró contra su voluntad—. No\ndebo coger nada que me ofrezca un desconocido. Lo dice mi papá.\n\n—Y tu papa tiene mucha razón —replicó el payaso de la boca de tormenta sonriendo. George se\npreguntó cómo podia haber creido que sus ojos eran amarillos, si eran de un color azul brillante,\nbailarin, como los ojos de su mamá y de Bill —. Muchísima razón, ya lo creo. Por lo tanto, voy a\npresentarme. George, soy el señor Bob Gray, también conocido como Pennywise, el payaso\nBallarin. Pennywise, te presento a George Denbrough. George, te presento a Pennywise. Y ahora\nya nos conocemos. Yo no soy un desconocido y tu tampoco. ¿Correcto?\n\nGeorge soltó una risita.\n\n—Correcto. —Volvió a estirar la mano.. y a retirarla—. ¿Cómo te metiste alli adentro?\n\n—La tormenta me trajo volaaaando —dijo Pennywise, el payaso Bailarin—. Se llevó todo el circo.\n¿No sientes olor a circo, George?\n\nGeorge se inclinó hacia adelante. ¡De pronto olía a cacahuetes! ¡Cacahuetes tostados! ¡Y vinagre\nblanco, del que se pone en las patatas fritas por un agujero de la tapa! Y olía a algodón de\nazucar, a buñuelos, y también, leve, pero poderosamente, a estiercol de animales salvajes. Olia el\naroma regocijante del aserrin. Y sin embargo..\n\nSin embargo, bajo todo eso olía a inundación, a hojas deshechas y a oscuras sombras en bocas\nde tormenta. Era un olor húmedo y putrido. El olor del sótano.\n\nPero los otros olores eran más fuertes.\n\n—Claro que lo huelo —dijo.\n\n—¿Quieres tu barquito, George? —preguntó Pennywise—. Te lo pregunto otra vez porque no\npareces desearlo mucho.\n"
eso3_3 <- image_read("C:\\Users\\luisa\\OneDrive\\Documentos\\Luis Angel Elizondo G\\Universidad\\Semestre 6\\Modulo 2\\eso3_3.PNG")
texto3_3 <- ocr(eso3_3, engine = tesseract("spa"))
texto3_3## [1] "Y lo mostró en alto, sonriendo. Llevaba un traje de seda abolsado con grandes botones color\nnaranja. Una corbata brillante, de color azul eléctrico, se le derramaba por la pechera. En las\nmanos llevaba grandes guantes blancos, como Mickey y Donald.\n\n—Si, claro —dijo George, mirando dentro de la boca de tormenta.\n\n—¿Y un globo? Los tengo rojos, verdes, amarillos, aZules..\n\n—¿Flotan?\n\n—¿Que si flotan? —La sonrisa del payaso se acentuó—. Oh, sí, claro que sí. ¡Flotan! También tengo\nalgodón de azucar.\n\nGeorge estiró la mano.\n\nEl payaso le sujeto el brazo.\n\nY entonces George vio cómo la cara del payaso cambiaba.\n\nLo que vio entonces fue tan terrible que lo peor que había imaginado sobre la cosa del sótano\nparecía un dulce sueño. Lo que vio destruyó su cordura de un zarpazo.\n\n—Flotan —croó la cosa de la alcantarilla con una voz que reía como entre coágulos.\n\nSujetaba el brazo de George con su puño grueso y agusanado. Tiró de él hacia esa horrible\noscuridad por donde el agua corría y rugía y aullaba llevando hacia el mar los desechos de la\ntormenta. George estiró el cuello para apartarse de esa negrura definitiva y empezó a gritar hacia\nla lluvia, a gritar como un loco hacia el gris cielo otoñal que se curvaba sobre Derry aquel día de\notoño de 1957. Sus gritos eran agudos y penetrantes y a lo largo de toda la calle, la gente se\nasomó a las ventanas o se lanzó a los porches.\n\n—Flotan —gruñó la cosa—, flotan, Georgie. Y cuando estés aqui abajo, conmigo, tú también\nflotarás.\n\nEl hombro de George se clavó contra el cemento del bordillo. Dave Gardener, que ese día no\nhabia ido a trabajar al Shoeboat debido a la inundación, vio sólo a un niño de impermeable\namarillo, un niño que gritaba y se retorcia en el arroyo mientras el agua lodosa le corría sobre la\ncara haciendo que sus alaridos sonaran burbujeantes.\n\n—Aqui abajo todo flota —susurró esa voz podrida, riendo, y de pronto sonó un desgarro y hubo\nun destello de agonía y George Denbrough ya no supo más.\n\nDave Gardener fue el primero en llegar. Aunque llegó sólo cuarenta y cinco segundos después\ndel primer grito, George Denbrough ya habia muerto. Gardener lo agarró por el impermeable, tiró\nde él hasta sacarlo a la calle.. y al girar en sus manos el cuerpo de George, también el empezó a\ngritar. El lado izquierdo del impermeable del niño estaba de un rojo intenso. La sangre fluía hacia\nla alcantarilla desde el agujero donde había estado el brazo izquierdo. Un trozo de hueso,\nhorriblemente brillante, asomaba por la tela rota.\n\nLos ojos del niño miraban fijamente el cielo gris y mientras Dave retrocedía a tropezones hacia\nlos otros que ya corrian por la calle, empezaron a llenarse de lluvia.\n"
text <- readLines("http://www.sthda.com/sthda/RDoc/example-files/martin-luther-king-i-have-a-dream-speech.txt")
corpus <- Corpus(VectorSource(text)) #Pone cada renglón en una celda de vector
corpus <- tm_map(corpus, content_transformer(tolower)) #Poner en minúsculas todo el texto## Warning in tm_map.SimpleCorpus(corpus, content_transformer(tolower)):
## transformation drops documents
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
## Warning in tm_map.SimpleCorpus(corpus, removeNumbers): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords("eng")) #Elimina stopwords (palabras que no hablan del tema)## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("eng")):
## transformation drops documents
#corpus <- tm_map(corpus, removeWords, c("dream", "will")) #Elimina palabras puntuales
inspect(corpus)## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 46
##
## [1]
## [2] even though face difficulties today tomorrow still dream dream deeply rooted american dream
## [3]
## [4] dream one day nation will rise live true meaning creed
## [5]
## [6] hold truths selfevident men created equal
## [7]
## [8] dream one day red hills georgia sons former slaves sons former slave owners will able sit together table brotherhood
## [9]
## [10] dream one day even state mississippi state sweltering heat injustice sweltering heat oppression will transformed oasis freedom justice
## [11]
## [12] dream four little children will one day live nation will judged color skin content character
## [13]
## [14] dream today
## [15]
## [16] dream one day alabama vicious racists governor lips dripping words interposition nullification one day right alabama little black boys black girls will able join hands little white boys white girls sisters brothers
## [17]
## [18] dream today
## [19]
## [20] dream one day every valley shall exalted every hill mountain shall made low rough places will made plain crooked places will made straight glory lord shall revealed flesh shall see together
## [21]
## [22] hope faith go back south
## [23]
## [24] faith will able hew mountain despair stone hope faith will able transform jangling discords nation beautiful symphony brotherhood faith will able work together pray together struggle together go jail together stand freedom together knowing will free one day
## [25]
## [26] will day will day god s children will able sing new meaning
## [27]
## [28] country tis thee sweet land liberty thee sing
## [29] land fathers died land pilgrim s pride
## [30] every mountainside let freedom ring
## [31] america great nation must become true
## [32] let freedom ring prodigious hilltops new hampshire
## [33] let freedom ring mighty mountains new york
## [34] let freedom ring heightening alleghenies pennsylvania
## [35] let freedom ring snowcapped rockies colorado
## [36] let freedom ring curvaceous slopes california
## [37]
## [38]
## [39] let freedom ring stone mountain georgia
## [40] let freedom ring lookout mountain tennessee
## [41] let freedom ring every hill molehill mississippi
## [42] every mountainside let freedom ring
## [43] happens allow freedom ring let ring every village every hamlet every state every city will able speed day god s children black men white men jews gentiles protestants catholics will able join hands sing words old negro spiritual
## [44] free last free last
## [45]
## [46] thank god almighty free last
tdm <- TermDocumentMatrix(corpus)
m <- as.matrix(tdm)#Cuenta las veces que aparece cada palabra por renglón
frecuencia <- sort(rowSums(m), decreasing = TRUE) #Cuenta la frecuencia de cada palabra en el texto completo
frecuencia_df <- data.frame(word=names(frecuencia), freq=frecuencia)
frecuencia_df #convierte la frecuencia en un data frame## word freq
## will will 17
## freedom freedom 13
## ring ring 12
## dream dream 11
## day day 11
## let let 11
## every every 9
## one one 8
## able able 8
## together together 7
## nation nation 4
## mountain mountain 4
## shall shall 4
## faith faith 4
## free free 4
## today today 3
## men men 3
## state state 3
## children children 3
## little little 3
## black black 3
## white white 3
## made made 3
## god god 3
## new new 3
## sing sing 3
## land land 3
## last last 3
## even even 2
## live live 2
## meaning meaning 2
## true true 2
## brotherhood brotherhood 2
## former former 2
## georgia georgia 2
## sons sons 2
## heat heat 2
## mississippi mississippi 2
## sweltering sweltering 2
## alabama alabama 2
## boys boys 2
## girls girls 2
## hands hands 2
## join join 2
## words words 2
## hill hill 2
## places places 2
## hope hope 2
## stone stone 2
## thee thee 2
## mountainside mountainside 2
## american american 1
## deeply deeply 1
## difficulties difficulties 1
## face face 1
## rooted rooted 1
## still still 1
## though though 1
## tomorrow tomorrow 1
## creed creed 1
## rise rise 1
## created created 1
## equal equal 1
## hold hold 1
## selfevident selfevident 1
## truths truths 1
## hills hills 1
## owners owners 1
## red red 1
## sit sit 1
## slave slave 1
## slaves slaves 1
## table table 1
## injustice injustice 1
## justice justice 1
## oasis oasis 1
## oppression oppression 1
## transformed transformed 1
## character character 1
## color color 1
## content content 1
## four four 1
## judged judged 1
## skin skin 1
## brothers brothers 1
## dripping dripping 1
## governor governor 1
## interposition interposition 1
## lips lips 1
## nullification nullification 1
## racists racists 1
## right right 1
## sisters sisters 1
## vicious vicious 1
## crooked crooked 1
## exalted exalted 1
## flesh flesh 1
## glory glory 1
## lord lord 1
## low low 1
## plain plain 1
## revealed revealed 1
## rough rough 1
## see see 1
## straight straight 1
## valley valley 1
## back back 1
## south south 1
## beautiful beautiful 1
## despair despair 1
## discords discords 1
## hew hew 1
## jail jail 1
## jangling jangling 1
## knowing knowing 1
## pray pray 1
## stand stand 1
## struggle struggle 1
## symphony symphony 1
## transform transform 1
## work work 1
## country country 1
## liberty liberty 1
## sweet sweet 1
## tis tis 1
## died died 1
## fathers fathers 1
## pilgrim pilgrim 1
## pride pride 1
## america america 1
## become become 1
## great great 1
## must must 1
## hampshire hampshire 1
## hilltops hilltops 1
## prodigious prodigious 1
## mighty mighty 1
## mountains mountains 1
## york york 1
## alleghenies alleghenies 1
## heightening heightening 1
## pennsylvania pennsylvania 1
## colorado colorado 1
## rockies rockies 1
## snowcapped snowcapped 1
## california california 1
## curvaceous curvaceous 1
## slopes slopes 1
## lookout lookout 1
## tennessee tennessee 1
## molehill molehill 1
## allow allow 1
## catholics catholics 1
## city city 1
## gentiles gentiles 1
## hamlet hamlet 1
## happens happens 1
## jews jews 1
## negro negro 1
## old old 1
## protestants protestants 1
## speed speed 1
## spiritual spiritual 1
## village village 1
## almighty almighty 1
## thank thank 1
ggplot(head(frecuencia_df, 10), aes(x = reorder(word, -freq), y = freq)) +
geom_bar(stat = "identity", fill = "lightblue")+
labs(x= "Palabra", y = "Frecuencia", title = "Top 10 Palabras en el discurso de Martin Luther King")+
geom_text(aes(label = freq), vjust = -0.5) +
ylim(0,20)El procesamiento de datos antes de la nube de palabras es igual que en el Análisis de Frecuencias, desde importar el texto hasta frecuencia_df
set.seed(123)
wordcloud(words= frecuencia_df$word, freq=frecuencia_df$freq, min.freq = 1, random.order = FALSE, colors = brewer.pal(8, "RdPu"))text2 <- readLines("C:\\Users\\luisa\\OneDrive\\Documentos\\Luis Angel Elizondo G\\Universidad\\Semestre 6\\Modulo 2\\texto3.txt")
texto_sin_acentos <- iconv(text2, to = "ASCII//TRANSLIT")
corpus <- Corpus(VectorSource(texto_sin_acentos))
corpus <- tm_map(corpus, content_transformer(tolower)) #Poner en minúsculas todo el texto## Warning in tm_map.SimpleCorpus(corpus, content_transformer(tolower)):
## transformation drops documents
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
## Warning in tm_map.SimpleCorpus(corpus, removeNumbers): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords("spanish")) #Elimina stopwords (palabras que no hablan del tema)## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("spanish")):
## transformation drops documents
#corpus <- tm_map(corpus, removeWords, c("dream", "will")) #Elimina palabras puntuales
inspect(corpus)## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 3
##
## [1] alli persiguiendo barco papel lado izquierdo witcham street corria deprisa agua ganaba barquito sacando ventaja oyo rugido profundo vio cincuenta metros mas adelante colina abajo agua cuneta precipitaba dentro boca tormenta aun continuaba abierta largo semicirculo oscuro abierto bordillo acera mientras george miraba rama desgarrada corteza oscura reluciente hundio aquellas fauces alli pendio momento luego deslizo hacia interior hacia alli encaminaba bote mierda chillo horrorizado forzo paso momento parecio iba alcanzar barquito ples resbalo george cayo despatarrado despellejandose rodilla grito dolor nueva perspectiva altura pavimento vio barco giraba redondo dos veces momentaneamente atrapado remolino desaparecer mierda mas mierda volvio chillar estrellando puno pavimento tambien dolio echo sollozar manera tan estupida perder barco levanto caminar hacia boca tormenta alli dejo caer rodillas mirar hacia interior agua hacia ruido hueco humedo caer oscuridad sonido daba escalofrios hacia pensar eh exclamacion arrancada cordel retrocedioo alli adentro habia ojos amarillos tipo ojos siempre imaginaba verlos nunca oscuridad sotano animal penso incoherente animal mejor gato quedo atrapado modos echar correr habria corrido dos segundos tablero mental hecho cargo espanto produjeron dos ojos amarillos brillantes sintio aspera superficie pavimento bajo dedos fina lamina agua fria corria alrededor vio si mismo levantandose retrocediendo entonces voz voz perfectamente razonable bastante simpatica hablo dentro boca tormenta hola george dijo george parpadeo volvio mirar apenas podia dar credito vela sacado cuento pelicula sabe animales hablan bailan si diez anos mas habria creido viendo tenia dieciseis anos sino seis boca tormenta habia payaso luz distaba ser buena basto george denbrough seguro veia payaso circo tele parecia mezcla bozo clarabell hablaba haciendo sonar bocina howdy doody sabados manana bufalo bob unico entendia clarabell siempre hacia reir george cara payaso metido boca tormenta blanca tenia comicos mechones pelo rojo cada lado calva gran sonrisa payaso pintada
## [2] alrededor boca si george vivido anos despues habria pensado ronald mcdonald bozo clarabell payaso tenia mano manojo globos colores tentadora fruta madura barquito papel george quieres barquito georgie payaso sonrela george tambien sonrio podia evitarlo aquella sonrisa tipo devuelve querer supuesto payaso echo reir supuesto asi gusta asi gusta globo parece quieres globo bueno si supuesto alargo mano inmediato retiro voluntad debo coger ofrezca desconocido dice papa papa mucha razon replico payaso boca tormenta sonriendo george pregunto podia haber creido ojos amarillos si color azul brillante bailarin ojos mama bill muchisima razon creo voy presentarme george senor bob gray tambien conocido pennywise payaso ballarin pennywise presento george denbrough george presento pennywise ahora conocemos desconocido tampoco correcto george solto risita correcto volvio estirar mano retirarla metiste alli adentro tormenta trajo volaaaando dijo pennywise payaso bailarin llevo circo sientes olor circo george george inclino hacia adelante pronto olia cacahuetes cacahuetes tostados vinagre blanco pone patatas fritas agujero tapa olia algodon azucar bunuelos tambien leve poderosamente estiercol animales salvajes olia aroma regocijante aserrin embargo embargo bajo olia inundacion hojas deshechas oscuras sombras bocas tormenta olor humedo putrido olor sotano olores mas fuertes claro huelo dijo quieres barquito george pregunto pennywise pregunto vez pareces desearlo
## [3] mostro alto sonriendo llevaba traje seda abolsado grandes botones color naranja corbata brillante color azul electrico derramaba pechera manos llevaba grandes guantes blancos mickey donald si claro dijo george mirando dentro boca tormenta globo rojos verdes amarillos azules flotan si flotan sonrisa payaso acentuo oh si claro si flotan tambien algodon azucar george estiro mano payaso sujeto brazo entonces george vio cara payaso cambiaba vio entonces tan terrible peor habia imaginado cosa sotano parecia dulce sueno vio destruyo cordura zarpazo flotan croo cosa alcantarilla voz reia coagulos sujetaba brazo george puno grueso agusanado tiro hacia horrible oscuridad agua corria rugia aullaba llevando hacia mar desechos tormenta george estiro cuello apartarse negrura definitiva empezo gritar hacia lluvia gritar loco hacia gris cielo otonal curvaba derry aquel dia otono gritos agudos penetrantes largo toda calle gente asomo ventanas lanzo porches flotan gruno cosa flotan georgie estes aqui abajo conmigo tambien flotaras hombro george clavo cemento bordillo dave gardener dia habia ido trabajar shoeboat debido inundacion vio solo nino impermeable amarillo nino gritaba retorcia arroyo mientras agua lodosa corria cara haciendo alaridos sonaran burbujeantes aqui abajo flota susurro voz podrida riendo pronto sono desgarro destello agonia george denbrough supo mas dave gardener primero llegar aunque llego solo cuarenta cinco segundos despues primer grito george denbrough habia muerto gardener agarro impermeable tiro sacarlo calle girar manos cuerpo george tambien empezo gritar lado izquierdo impermeable nino rojo intenso sangre fluia hacia alcantarilla agujero habia brazo izquierdo trozo hueso horriblemente brillante asomaba tela rota ojos nino miraban fijamente cielo gris mientras dave retrocedia tropezones hacia corrian calle empezaron llenarse lluvia
tdm <- TermDocumentMatrix(corpus)
m <- as.matrix(tdm)#Cuenta las veces que aparece cada palabra por renglón
frecuencia <- sort(rowSums(m), decreasing = TRUE) #Cuenta la frecuencia de cada palabra en el texto completo
frecuencia_df2 <- data.frame(word=names(frecuencia), freq=frecuencia) #convierte la frecuencia en un data frame
ggplot(head(frecuencia_df2, 10), aes(x = reorder(word, -freq), y = freq)) +
geom_bar(stat = "identity", fill = "lightblue")+
labs(x= "Palabra", y = "Frecuencia", title = "Top 10 Palabras en el Capítulo 3 de IT")+
geom_text(aes(label = freq), vjust = -0.5) +
ylim(0,30)