exponenta event banner

Создание облака Word из массивов строк

В этом примере показано, как создать облако слов из обычного текста путем считывания его в строковый массив, предварительной обработки и передачи в 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")

Figure contains an object of type wordcloud. The chart of type wordcloud has title Sonnets Word Cloud.

См. также

|