В этом примере показано, как создать облако слов из обычного текста путем считывания его в строковый массив, предварительной обработки и передачи в wordcloud функция. Если установлен Toolbox™ Text Analytics, то облака слов можно создавать непосредственно из массивов строк. Дополнительные сведения см. в разделе wordcloud(Панель инструментов аналитики текста) (Панель инструментов аналитики текста).
Читайте текст из «Сонетов Шекспира» с 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,'
Преобразование текста в строку с помощью string функция. Затем разделите его на символы новой строки с помощью splitlines функция.
sonnets = string(sonnets); sonnets = splitlines(sonnets); sonnets(10:14)
ans = 5x1 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,"
Замените некоторые знаки препинания пробелами.
p = ["." "?" "!" "," ";" ":"]; sonnets = replace(sonnets,p," "); sonnets(10:14)
ans = 5x1 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 "
Разделение sonnets в строковый массив, элементы которого содержат отдельные слова. Для этого необходимо объединить все строковые элементы в строку 1 на 1, а затем разделить символы пробела.
sonnets = join(sonnets); sonnets = split(sonnets); sonnets(7:12)
ans = 6x1 string
"From"
"fairest"
"creatures"
"we"
"desire"
"increase"
Удалите слова, содержащие менее пяти символов.
sonnets(strlength(sonnets)<5) = [];
Новообращенный sonnets в категориальный массив и затем постройте график с использованием wordcloud. Функция отображает уникальные элементы C с размерами, соответствующими их частотным подсчетам.
C = categorical(sonnets);
figure
wordcloud(C);
title("Sonnets Word Cloud")