Этот пример показывает, как создать облако слова из простого текста путем чтения его в массив строк, предварительной обработки его и передачи его функции wordcloud
. Если у вас есть текстовая Аналитика установленный Toolbox™, то можно создать облака слова непосредственно из массивов строк. Для получения дополнительной информации смотрите wordcloud
(Symbolic Math Toolbox).
Считайте текст из Сонетов Шекспира с функцией 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 array
" 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 array
" 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 array
"From"
"fairest"
"creatures"
"we"
"desire"
"increase"
Удалите слова меньше чем с пятью символами.
sonnets(strlength(sonnets)<5) = [];
Преобразуйте sonnets
в категориальный массив и затем постройте график использования wordcloud
. Функция строит график уникальных элементов C
с размерами, соответствующими их подсчету частот.
C = categorical(sonnets);
figure
wordcloud(C);
title("Sonnets Word Cloud")