Limpiar los corpus
Ahora limpiemos los corpus
# Definir una función para limpiar el texto
clean_text <- function(text) {
# Convertir el texto a minúsculas
text <- tolower(text)
# Eliminar cualquier tipo de comillas
text <- gsub("\"|“|”|‘|’", "", text)
# Eliminar la puntuación y los números
text <- gsub("[[:punct:][:digit:]]", "", text)
# Eliminar espacios en blanco adicionales
text <- gsub("\\s+", " ", text)
# Eliminar espacios en blanco al principio y al final
text <- trimws(text)
return(text)
}
# Aplicar limpieza al corpus de 1992
corp92cl <- tm_map(corp92, content_transformer(clean_text))
corp92cl <- tm_map(corp92cl, removeWords, stopwords("english"))
# Aplicar limpieza al corpus de 2019
corp19cl <- tm_map(corp19, content_transformer(clean_text))
corp19cl <- tm_map(corp19cl, removeWords, stopwords("english"))
Combination of both into a single corpus for comparative analysis
corpcomb <- c(corp92cl, corp19cl)
Analisis de texto
Term-Document Matrix
# Term-Document Matrix para la version de 1992
dtm92 <- TermDocumentMatrix(corp92cl)
# Term-Document Matrix para la version del 2019
dtm19 <- TermDocumentMatrix(corp19cl)
# Term-Document Matrix para la version combinada
dtm <- TermDocumentMatrix(corpcomb)
dtm_matrix <- as.matrix(dtm)
Frecuencia de palabras
freq_terms <- findFreqTerms(dtm, lowfreq = 50)
freq_matrix <- dtm_matrix[freq_terms, ]
apply(freq_matrix, 1, sum)
## "", "abu "aladdin "genie "iago "jafar "jasmine "sultan
## 1252 53 412 178 72 168 188 72
## abu aladdin ali back can carpet dont genie
## 120 127 57 79 59 75 90 96
## get got jafar jasmine just know lamp like
## 69 60 76 61 77 52 59 90
## looks never now one prince princess right see
## 53 60 65 67 99 52 62 65
## sultan thats think will wish youre
## 61 51 54 69 64 55
Analisis de Asociasion
Asociaremos las palabras que mas aparecen con una palabra en
especifico en este caso “abu”
associations <- findAssocs(dtm, "abu", 0.3)
# Extracting the associations for 'geni' and sorting them in decreasing order
abuas <- associations$abu
abuasmix <- sort(abuas, decreasing = TRUE)
# Getting the top 10 associations
top10as <- head(abuasmix, 10)
# Print the top 10 associations
print(top10as)
## "guard "iago "jafar "jafars "say "street "sultan "take "thats "try
## 1 1 1 1 1 1 1 1 1 1
Terminos Frecuentes
# Encontramos los terminos mas frecuentes para la version de 1992
ft92 <- findFreqTerms(dtm92, lowfreq = 80)
# Encontramos los terminos mas frecuentes para la version de 2019
ft19 <- findFreqTerms(dtm19, lowfreq = 80)
#Guardamos las palabras mas frecuentes de la version de 1992 en la variable freq92
freqmatrix92 <- as.matrix(dtm92[ft92, ])
freq92 <- rowSums(freqmatrix92)
# Guardamos las palabras mas frecuentes de la version de 2019 en la variable freq19
freqmatrix19 <- as.matrix(dtm19[ft19, ])
freq19 <- rowSums(freqmatrix19)
# Usaremos un dataframe para ver la comparacion de estos terminos frecuentes en ambas versiones
freqcomp <- merge(data.frame(Term = names(freq92), Aladdin_1992 = freq92),
data.frame(Term = names(freq19), Aladdin_2019 = freq19),
by = "Term", all = TRUE)
# Cualquier valor NA (es decir, términos que no estén presentes en una de las versiones) se reemplaza con 0.
freqcomp[is.na(freqcomp)] <- 0
# El dataframe freq_comparison se ordena en orden descendente según las frecuencias en la versión de 1992.
freqcomp2 <- freqcomp[order(-freqcomp$Aladdin_1992),]
# Se imprime el data frame para permitir ver la comparación entre ambas versiones.
print(freqcomp2)
## Term Aladdin_1992 Aladdin_2019
## 2 aladdin 381 193
## 6 jafar 197 0
## 7 jasmine 194 0
## 1 abu 166 0
## 4 genie 164 133
## 8 sultan 110 0
## 5 iago 93 0
## 3 carpet 89 0
Metodo no utiizado en clase “Syuzhet”
# Conjunto de texto a analisar
texto <- c(corp92)
texto2 <- c(corp19)
#Aplicamos analisis de sentimientos
sentimientos <- get_sentiment(texto, method = "syuzhet")
sentimientos2 <- get_sentiment(texto2, method = "syuzhet")
#Vemos los resultados
print(sentimientos)
## [1] -26.95 0.00 0.00
print(sentimientos2)
## [1] 36.95 0.00 0.00
# Graficar los puntajes de sentimiento
plot(sentimientos, type = "l", xlab = "Posición en el texto", ylab = "Puntaje de sentimiento", main = "Análisis de Sentimientos con Syuzhet")

plot(sentimientos2, type = "l", xlab = "Posición en el texto", ylab = "Puntaje de sentimiento", main = "Análisis de Sentimientos con Syuzhet")

Este código generará un gráfico que muestra los puntajes de
sentimiento a lo largo del texto en el eje x (posición en el texto) y
los puntajes de sentimiento en el eje y.
Preguntas
¿Se tomará y analizará Todo lo que aparece en la página? ¿Que si y
que no? ¿Por qué?
No, hay secciones que debemos limpiar del texto, todo aquello como
signos de puntuacion, comillas, comillas especiales, espacios extra,
existen instrucciones dentro del texto todo esto tiene que ser eliminado
para tener un analisis mas preciso.
Comparacion de frecuencia y analisis de asociasion
En en analisis de asociacion podemos observar que palabras son las que
mas se asocian con la palabra “abu” las cuales son aquellas como
“guard”, “iago”, “jafar” entre otras y en cuanto a la comparacion de
frecuencias en ambas versiones podemos ver aquellas palabras que mas se
repiten en ambas versiones tales como “aladdin”,
“genie”,“jasmine”,“jafar”, “abu”, entre otros.
LS0tDQp0aXRsZTogIkFuYWxpc2lzIGRlIEFsYWRkaW4iDQphdXRob3I6ICJMdWlzIE1lbmRvemEgLSBBMDA4MjkwOTkiDQpkYXRlOiAiMjAyNC0wNC0wMiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KLS0tDQohW10oQzpcXFVzZXJzXFxMdWlzIFJvZHJpZ3VlelxcRG93bmxvYWRzXFxhYnUuZ2lmKQ0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyMgSW5zdGFsYXIgTGlicmVyaWFzDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeSh0bSkNCmxpYnJhcnkocGRmdG9vbHMpDQpsaWJyYXJ5KFNub3diYWxsQykNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KHFkYXApDQpsaWJyYXJ5KHN5dXpoZXQpDQpgYGANCg0KIyMgUHJlcGFyYXIgbG9zIENvcnB1cw0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KdHh0OTIgPC0gcmVhZExpbmVzKCJBbGFkZGluXzE5OTIudHh0IikNCmNvcnA5MiA8LSBDb3JwdXMoVmVjdG9yU291cmNlKHR4dDkyKSkNCnR4dDE5IDwtIHJlYWRMaW5lcygiQWxhZGRpbl8yMDE5LnR4dCIpDQpjb3JwMTkgPC0gQ29ycHVzKFZlY3RvclNvdXJjZSh0eHQxOSkpDQpgYGANCg0KIyMgTGltcGlhciBsb3MgY29ycHVzDQpBaG9yYSBsaW1waWVtb3MgbG9zIGNvcnB1cw0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgRGVmaW5pciB1bmEgZnVuY2nDs24gcGFyYSBsaW1waWFyIGVsIHRleHRvDQpjbGVhbl90ZXh0IDwtIGZ1bmN0aW9uKHRleHQpIHsNCiAgIyBDb252ZXJ0aXIgZWwgdGV4dG8gYSBtaW7DunNjdWxhcw0KICB0ZXh0IDwtIHRvbG93ZXIodGV4dCkNCiAgIyBFbGltaW5hciBjdWFscXVpZXIgdGlwbyBkZSBjb21pbGxhcw0KICB0ZXh0IDwtIGdzdWIoIlwifOKAnHzigJ184oCYfOKAmSIsICIiLCB0ZXh0KQ0KICAjIEVsaW1pbmFyIGxhIHB1bnR1YWNpw7NuIHkgbG9zIG7Dum1lcm9zDQogIHRleHQgPC0gZ3N1YigiW1s6cHVuY3Q6XVs6ZGlnaXQ6XV0iLCAiIiwgdGV4dCkNCiAgIyBFbGltaW5hciBlc3BhY2lvcyBlbiBibGFuY28gYWRpY2lvbmFsZXMNCiAgdGV4dCA8LSBnc3ViKCJcXHMrIiwgIiAiLCB0ZXh0KQ0KICAjIEVsaW1pbmFyIGVzcGFjaW9zIGVuIGJsYW5jbyBhbCBwcmluY2lwaW8geSBhbCBmaW5hbA0KICB0ZXh0IDwtIHRyaW13cyh0ZXh0KQ0KICByZXR1cm4odGV4dCkNCn0NCg0KIyBBcGxpY2FyIGxpbXBpZXphIGFsIGNvcnB1cyBkZSAxOTkyDQpjb3JwOTJjbCA8LSB0bV9tYXAoY29ycDkyLCBjb250ZW50X3RyYW5zZm9ybWVyKGNsZWFuX3RleHQpKQ0KY29ycDkyY2wgPC0gdG1fbWFwKGNvcnA5MmNsLCByZW1vdmVXb3Jkcywgc3RvcHdvcmRzKCJlbmdsaXNoIikpDQoNCiMgQXBsaWNhciBsaW1waWV6YSBhbCBjb3JwdXMgZGUgMjAxOQ0KY29ycDE5Y2wgPC0gdG1fbWFwKGNvcnAxOSwgY29udGVudF90cmFuc2Zvcm1lcihjbGVhbl90ZXh0KSkNCmNvcnAxOWNsIDwtIHRtX21hcChjb3JwMTljbCwgcmVtb3ZlV29yZHMsIHN0b3B3b3JkcygiZW5nbGlzaCIpKQ0KYGBgDQoNCkNvbWJpbmF0aW9uIG9mIGJvdGggaW50byBhIHNpbmdsZSBjb3JwdXMgZm9yIGNvbXBhcmF0aXZlIGFuYWx5c2lzDQpgYGB7cn0NCmNvcnBjb21iIDwtIGMoY29ycDkyY2wsIGNvcnAxOWNsKQ0KYGBgDQoNCiMjIEFuYWxpc2lzIGRlIHRleHRvDQojIyMgVGVybS1Eb2N1bWVudCBNYXRyaXgNCmBgYHtyfQ0KIyBUZXJtLURvY3VtZW50IE1hdHJpeCBwYXJhIGxhIHZlcnNpb24gZGUgMTk5Mg0KZHRtOTIgPC0gVGVybURvY3VtZW50TWF0cml4KGNvcnA5MmNsKQ0KDQojIFRlcm0tRG9jdW1lbnQgTWF0cml4IHBhcmEgbGEgdmVyc2lvbiBkZWwgMjAxOQ0KZHRtMTkgPC0gVGVybURvY3VtZW50TWF0cml4KGNvcnAxOWNsKQ0KDQojIFRlcm0tRG9jdW1lbnQgTWF0cml4IHBhcmEgbGEgdmVyc2lvbiBjb21iaW5hZGENCmR0bSA8LSBUZXJtRG9jdW1lbnRNYXRyaXgoY29ycGNvbWIpDQpkdG1fbWF0cml4IDwtIGFzLm1hdHJpeChkdG0pDQpgYGANCg0KIyMjIEZyZWN1ZW5jaWEgZGUgcGFsYWJyYXMNCmBgYHtyfQ0KZnJlcV90ZXJtcyA8LSBmaW5kRnJlcVRlcm1zKGR0bSwgbG93ZnJlcSA9IDUwKQ0KZnJlcV9tYXRyaXggPC0gZHRtX21hdHJpeFtmcmVxX3Rlcm1zLCBdDQphcHBseShmcmVxX21hdHJpeCwgMSwgc3VtKQ0KYGBgDQoNCiMjIyBBbmFsaXNpcyBkZSBBc29jaWFzaW9uDQpBc29jaWFyZW1vcyBsYXMgcGFsYWJyYXMgcXVlIG1hcyBhcGFyZWNlbiBjb24gdW5hIHBhbGFicmEgZW4gZXNwZWNpZmljbyBlbiBlc3RlIGNhc28gImFidSINCmBgYHtyfQ0KYXNzb2NpYXRpb25zIDwtIGZpbmRBc3NvY3MoZHRtLCAiYWJ1IiwgMC4zKQ0KDQojIEV4dHJhY3RpbmcgdGhlIGFzc29jaWF0aW9ucyBmb3IgJ2dlbmknIGFuZCBzb3J0aW5nIHRoZW0gaW4gZGVjcmVhc2luZyBvcmRlcg0KYWJ1YXMgPC0gYXNzb2NpYXRpb25zJGFidQ0KYWJ1YXNtaXggPC0gc29ydChhYnVhcywgZGVjcmVhc2luZyA9IFRSVUUpDQoNCiMgR2V0dGluZyB0aGUgdG9wIDEwIGFzc29jaWF0aW9ucw0KdG9wMTBhcyA8LSBoZWFkKGFidWFzbWl4LCAxMCkNCg0KIyBQcmludCB0aGUgdG9wIDEwIGFzc29jaWF0aW9ucw0KcHJpbnQodG9wMTBhcykNCmBgYA0KIyMjIFRlcm1pbm9zIEZyZWN1ZW50ZXMNCmBgYHtyfQ0KIyBFbmNvbnRyYW1vcyBsb3MgdGVybWlub3MgbWFzIGZyZWN1ZW50ZXMgcGFyYSBsYSB2ZXJzaW9uIGRlIDE5OTINCmZ0OTIgPC0gZmluZEZyZXFUZXJtcyhkdG05MiwgbG93ZnJlcSA9IDgwKQ0KDQojIEVuY29udHJhbW9zIGxvcyB0ZXJtaW5vcyBtYXMgZnJlY3VlbnRlcyBwYXJhIGxhIHZlcnNpb24gZGUgMjAxOQ0KZnQxOSA8LSBmaW5kRnJlcVRlcm1zKGR0bTE5LCBsb3dmcmVxID0gODApDQoNCiNHdWFyZGFtb3MgbGFzIHBhbGFicmFzIG1hcyBmcmVjdWVudGVzIGRlIGxhIHZlcnNpb24gZGUgMTk5MiBlbiBsYSB2YXJpYWJsZSBmcmVxOTINCmZyZXFtYXRyaXg5MiA8LSBhcy5tYXRyaXgoZHRtOTJbZnQ5MiwgXSkNCmZyZXE5MiA8LSByb3dTdW1zKGZyZXFtYXRyaXg5MikNCg0KIyBHdWFyZGFtb3MgbGFzIHBhbGFicmFzIG1hcyBmcmVjdWVudGVzIGRlIGxhIHZlcnNpb24gZGUgMjAxOSBlbiBsYSB2YXJpYWJsZSBmcmVxMTkNCmZyZXFtYXRyaXgxOSA8LSBhcy5tYXRyaXgoZHRtMTlbZnQxOSwgXSkNCmZyZXExOSA8LSByb3dTdW1zKGZyZXFtYXRyaXgxOSkNCg0KIyBVc2FyZW1vcyB1biBkYXRhZnJhbWUgcGFyYSB2ZXIgbGEgY29tcGFyYWNpb24gZGUgZXN0b3MgdGVybWlub3MgZnJlY3VlbnRlcyBlbiBhbWJhcyB2ZXJzaW9uZXMNCmZyZXFjb21wIDwtIG1lcmdlKGRhdGEuZnJhbWUoVGVybSA9IG5hbWVzKGZyZXE5MiksIEFsYWRkaW5fMTk5MiA9IGZyZXE5MiksDQogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5mcmFtZShUZXJtID0gbmFtZXMoZnJlcTE5KSwgQWxhZGRpbl8yMDE5ID0gZnJlcTE5KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBieSA9ICJUZXJtIiwgYWxsID0gVFJVRSkNCg0KIyBDdWFscXVpZXIgdmFsb3IgTkEgKGVzIGRlY2lyLCB0w6lybWlub3MgcXVlIG5vIGVzdMOpbiBwcmVzZW50ZXMgZW4gdW5hIGRlIGxhcyB2ZXJzaW9uZXMpIHNlIHJlZW1wbGF6YSBjb24gMC4NCmZyZXFjb21wW2lzLm5hKGZyZXFjb21wKV0gPC0gMA0KDQojIEVsIGRhdGFmcmFtZSBmcmVxX2NvbXBhcmlzb24gc2Ugb3JkZW5hIGVuIG9yZGVuIGRlc2NlbmRlbnRlIHNlZ8O6biBsYXMgZnJlY3VlbmNpYXMgZW4gbGEgdmVyc2nDs24gZGUgMTk5Mi4NCmZyZXFjb21wMiA8LSBmcmVxY29tcFtvcmRlcigtZnJlcWNvbXAkQWxhZGRpbl8xOTkyKSxdDQoNCiMgU2UgaW1wcmltZSBlbCBkYXRhIGZyYW1lIHBhcmEgcGVybWl0aXIgdmVyIGxhIGNvbXBhcmFjacOzbiBlbnRyZSBhbWJhcyB2ZXJzaW9uZXMuDQpwcmludChmcmVxY29tcDIpDQpgYGANCg0KIyMjIE1ldG9kbyBubyB1dGlpemFkbyBlbiBjbGFzZSAiU3l1emhldCINCmBgYHtyfQ0KIyBDb25qdW50byBkZSB0ZXh0byBhIGFuYWxpc2FyDQp0ZXh0byA8LSBjKGNvcnA5MikNCnRleHRvMiA8LSBjKGNvcnAxOSkNCg0KI0FwbGljYW1vcyBhbmFsaXNpcyBkZSBzZW50aW1pZW50b3MNCnNlbnRpbWllbnRvcyA8LSBnZXRfc2VudGltZW50KHRleHRvLCBtZXRob2QgPSAic3l1emhldCIpDQpzZW50aW1pZW50b3MyIDwtIGdldF9zZW50aW1lbnQodGV4dG8yLCBtZXRob2QgPSAic3l1emhldCIpDQoNCiNWZW1vcyBsb3MgcmVzdWx0YWRvcw0KcHJpbnQoc2VudGltaWVudG9zKQ0KcHJpbnQoc2VudGltaWVudG9zMikNCg0KIyBHcmFmaWNhciBsb3MgcHVudGFqZXMgZGUgc2VudGltaWVudG8NCnBsb3Qoc2VudGltaWVudG9zLCB0eXBlID0gImwiLCB4bGFiID0gIlBvc2ljacOzbiBlbiBlbCB0ZXh0byIsIHlsYWIgPSAiUHVudGFqZSBkZSBzZW50aW1pZW50byIsIG1haW4gPSAiQW7DoWxpc2lzIGRlIFNlbnRpbWllbnRvcyBjb24gU3l1emhldCIpDQoNCnBsb3Qoc2VudGltaWVudG9zMiwgdHlwZSA9ICJsIiwgeGxhYiA9ICJQb3NpY2nDs24gZW4gZWwgdGV4dG8iLCB5bGFiID0gIlB1bnRhamUgZGUgc2VudGltaWVudG8iLCBtYWluID0gIkFuw6FsaXNpcyBkZSBTZW50aW1pZW50b3MgY29uIFN5dXpoZXQiKQ0KYGBgDQoNCkVzdGUgY8OzZGlnbyBnZW5lcmFyw6EgdW4gZ3LDoWZpY28gcXVlIG11ZXN0cmEgbG9zIHB1bnRhamVzIGRlIHNlbnRpbWllbnRvIGEgbG8gbGFyZ28gZGVsIHRleHRvIGVuIGVsIGVqZSB4IChwb3NpY2nDs24gZW4gZWwgdGV4dG8pIHkgbG9zIHB1bnRhamVzIGRlIHNlbnRpbWllbnRvIGVuIGVsIGVqZSB5LiANCg0KIyMjIFByZWd1bnRhcw0KDQrCv1NlIHRvbWFyw6EgeSBhbmFsaXphcsOhIFRvZG8gbG8gcXVlIGFwYXJlY2UgZW4gbGEgcMOhZ2luYT8gwr9RdWUgc2kgeSBxdWUgbm8/IMK/UG9yIHF1w6k/ICANCk5vLCBoYXkgc2VjY2lvbmVzIHF1ZSBkZWJlbW9zIGxpbXBpYXIgZGVsIHRleHRvLCB0b2RvIGFxdWVsbG8gY29tbyBzaWdub3MgZGUgcHVudHVhY2lvbiwgY29taWxsYXMsIGNvbWlsbGFzIGVzcGVjaWFsZXMsIGVzcGFjaW9zIGV4dHJhLCBleGlzdGVuIGluc3RydWNjaW9uZXMgZGVudHJvIGRlbCB0ZXh0byB0b2RvIGVzdG8gdGllbmUgcXVlIHNlciBlbGltaW5hZG8gcGFyYSB0ZW5lciB1biBhbmFsaXNpcyBtYXMgcHJlY2lzby4NCg0KQ29tcGFyYWNpb24gZGUgZnJlY3VlbmNpYSB5IGFuYWxpc2lzIGRlIGFzb2NpYXNpb24gIA0KRW4gZW4gYW5hbGlzaXMgZGUgYXNvY2lhY2lvbiBwb2RlbW9zIG9ic2VydmFyIHF1ZSBwYWxhYnJhcyBzb24gbGFzIHF1ZSBtYXMgc2UgYXNvY2lhbiBjb24gbGEgcGFsYWJyYSAiYWJ1IiBsYXMgY3VhbGVzIHNvbiBhcXVlbGxhcyBjb21vICJndWFyZCIsICJpYWdvIiwgImphZmFyIiBlbnRyZSBvdHJhcyB5IGVuIGN1YW50byBhIGxhIGNvbXBhcmFjaW9uIGRlIGZyZWN1ZW5jaWFzIGVuIGFtYmFzIHZlcnNpb25lcyBwb2RlbW9zIHZlciBhcXVlbGxhcyBwYWxhYnJhcyBxdWUgbWFzIHNlIHJlcGl0ZW4gZW4gYW1iYXMgdmVyc2lvbmVzIHRhbGVzIGNvbW8gImFsYWRkaW4iLCAiZ2VuaWUiLCJqYXNtaW5lIiwiamFmYXIiLCAiYWJ1IiwgZW50cmUgb3Ryb3MuIA0K