1 Lo básico
1.1 Minería de texto
Los métodos de minería de texto nos permiten resaltar las palabras clave más utilizadas en un párrafo de textos. Se puede crear una nube de palabras, también conocida como nube de texto o nube de etiquetas, que es una representación visual de datos de texto.
El procedimiento de creación de nubes de palabras es muy sencillo en R si conoce los diferentes pasos a ejecutar. El paquete de minería de texto (tm) y el paquete generador de nube de palabras (wordcloud) están disponibles en R para ayudarnos a analizar textos y visualizar rápidamente las palabras clave como una nube de palabras.
3 razones por las que debería usar nubes de palabras para presentar sus datos de texto
Las nubes de palabras añaden sencillez y claridad. Las palabras clave más utilizadas se destacan mejor en una nube de palabras
Las nubes de palabras son una potente herramienta de comunicación. Son fáciles de entender, para compartir y tienen un gran impacto.
Las nubes de palabras son visualmente atractivas que los datos de una tabla
¿Quién usa nubes de palabras?
Investigadores: para informar datos cualitativos
Comercializadores: para resaltar las necesidades y los puntos débiles de los clientes.
Educadores: para apoyar temas esenciales
Políticos y periodistas
sitios de redes sociales: para recopilar, analizar y compartir los sentimientos de los usuarios
1.2 Leemos y cargamos el texto
Transformamos el texto
Transformation is performed using tm_map() function to replace, for example, special characters from the text.
Replacing “/”, “@” and “|” with space:
<- content_transformer(function (x , pattern ) gsub(pattern, " ", x))
toSpace <- tm_map(docs, toSpace, "/")
docs <- tm_map(docs, toSpace, "@")
docs <- tm_map(docs, toSpace, "\\|") docs
Limpiamos el texto
# Convert the text to lower case
<- tm_map(docs, content_transformer(tolower))
docs # Remove numbers
<- tm_map(docs, removeNumbers)
docs # Remove english common stopwords
<- tm_map(docs, removeWords, stopwords("english"))
docs # Remove your own stop word
# specify your stopwords as a character vector
<- tm_map(docs, removeWords, c("blabla1", "blabla2"))
docs # Remove punctuations
<- tm_map(docs, removePunctuation)
docs # Eliminate extra white spaces
<- tm_map(docs, stripWhitespace)
docs # Text stemming
# docs <- tm_map(docs, stemDocument)
1.3 Matriz de documentos de términos
La matriz de documentos es una tabla que contiene la frecuencia de las palabras. Los nombres de las columnas son palabras y los nombres de las filas son documentos. La función TermDocumentMatrix () del paquete de minería de texto se puede utilizar de la siguiente manera:
<- TermDocumentMatrix(docs)
dtm <- as.matrix(dtm)
m <- sort(rowSums(m),decreasing=TRUE)
v <- data.frame(word = names(v),freq=v)
d head(d, 10)
## word freq
## todo todo 11
## como como 10
## los los 9
## fue fue 8
## hora hora 7
## que que 7
## del del 6
## mes mes 6
## naufragio naufragio 6
## fan fan 5
Step 5 : Generate the Word cloud
The importance of words can be illustrated as a word cloud as follow :
set.seed(1234)
wordcloud(words = d$word, freq = d$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"))
Parametros de la funcion:
words : the words to be plotted
freq : their frequencies
min.freq : words with frequency below min.freq will not be plotted
max.words : maximum number of words to be plotted
random.order : plot words in random order. If false, they will be plotted in decreasing frequency
rot.per : proportion words with 90 degree rotation (vertical text)
colors : color words from least to most frequent. Use, for example, colors =“black” for single color.
La nube de palabras anterior muestra claramente que “que”, “jonstone”, son las cinco palabras más importantes en el discurso “El cartero” de Bukowski King.
Argumentos de la función del generador de nube de palabras:
2 Lo avanzado
Explore los términos frecuentes y sus asociaciones
Puede echar un vistazo a los términos frecuentes en la matriz de documentos de términos de la siguiente manera. En el siguiente ejemplo, queremos encontrar palabras que ocurran al menos cuatro veces:
findFreqTerms(dtm, lowfreq = 3)
## [1] "abandonado" "como" "del" "deseo" "era"
## [6] "escombros" "fan" "fred" "fue" "hora"
## [11] "las" "los" "mar" "mes" "mujer"
## [16] "naufragio" "partir" "pejaros" "que" "sentina"
## [21] "todo" "tus"
Puede analizar la asociación entre términos frecuentes (es decir, términos que se correlacionan) utilizando la función findAssocs(). El código R a continuación identifica qué palabras están asociadas con “mujer” en tengo un discurso de ensueño:
findAssocs(dtm, terms = "naufragio", corlimit = 0.2)
## $naufragio
## numeric(0)
La tabla de frecuencia de las palabras
head(d, 10)
## word freq
## todo todo 11
## como como 10
## los los 9
## fue fue 8
## hora hora 7
## que que 7
## del del 6
## mes mes 6
## naufragio naufragio 6
## fan fan 5
Trazar frecuencias de palabras
barplot(d[1:10,]$freq, las = 2, names.arg = d[1:10,]$word,
col ="violet", main ="Most frequent words",
ylab = "Word frequencies")
Minería de texto y fundamentos de nube de palabras en R: