Crear nubes de palabras a partir de arreglos de cadenas
Este ejemplo muestra cómo crear una nube de palabras a partir de texto sin formato leyéndolo en un arreglo de cadenas, procesándolo previamente, y pasándolo a la función wordcloud
. Si tiene instalado Text Analytics Toolbox™, podrá crear directamente nubes de palabras a partir de arreglos de cadenas. Para obtener más información, consulte wordcloud
(Text Analytics Toolbox) (Text Analytics Toolbox).
Lea el texto de los sonetos de Shakespeare con la función fileread
.
sonnets = fileread('sonnets.txt');
sonnets(1:135)
ans = 'THE SONNETS by William Shakespeare I From fairest creatures we desire increase, That thereby beauty's rose might never die,'
Convierta el texto en una cadena mediante la función string
. A continuación, divídalo en caracteres de nueva línea mediante la función splitlines
.
sonnets = string(sonnets); sonnets = splitlines(sonnets); sonnets(10:14)
ans = 5×1 string
" From fairest creatures we desire increase,"
" That thereby beauty's rose might never die,"
" But as the riper should by time decease,"
" His tender heir might bear his memory:"
" But thou, contracted to thine own bright eyes,"
Sustituya algunos caracteres de puntuación con espacios.
p = ["." "?" "!" "," ";" ":"]; sonnets = replace(sonnets,p," "); sonnets(10:14)
ans = 5×1 string
" From fairest creatures we desire increase "
" That thereby beauty's rose might never die "
" But as the riper should by time decease "
" His tender heir might bear his memory "
" But thou contracted to thine own bright eyes "
Divida sonnets
en un arreglo de cadenas cuyos elementos contengan palabras individuales. Para hacerlo, una todos los elementos de la cadena en una cadena de 1 por 1 y, luego, divida en los caracteres de espacios.
sonnets = join(sonnets); sonnets = split(sonnets); sonnets(7:12)
ans = 6×1 string
"From"
"fairest"
"creatures"
"we"
"desire"
"increase"
Elimine las palabras con menos de cinco caracteres.
sonnets(strlength(sonnets)<5) = [];
Convierta sonnets
en un arreglo categórico y, después, en una gráfica mediante wordcloud
. La función representa los elementos exclusivos de C
con un tamaño que corresponde con sus recuentos de frecuencia.
C = categorical(sonnets);
figure
wordcloud(C);
title("Sonnets Word Cloud")