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).
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")