wordcloud

Создайте облако слов графика из текстовых данных

Описание

пример

wordcloud(tbl,wordVar,sizeVar) создает график облака слов из таблицы tbl. Переменные wordVar и sizeVar в таблице задайте соответственно размеры слов и слов.

пример

wordcloud(words,sizeData) создает облако слов, графика из элементов words с размером слов, заданными SizeData.

пример

wordcloud(C) создает график облака слов из уникальных элементов категориального массива C с размерами, соответствующими их отсчетам частот. Если у вас есть Text Analytics Toolbox™, то C может быть строковыми массивами, вектором символов или массивом ячеек векторов символов.

пример

wordcloud(___,Name,Value) задает дополнительные WordCloudChart свойства с использованием одного или нескольких аргументов пары "имя-значение".

wordcloud(parent,___) создает облако слов на рисунке, панели или вкладке, заданных как parent.

wc = wordcloud(___) возвращает WordCloudChart объект. Использование wc для изменения свойств облака слов после его создания. Список свойств см. в разделе Свойства WordCloudChart.

Примечание

Symbolic Math Toolbox расширяет функциональность wordcloud (MATLAB®) функцию. Он добавляет поддержку для создания облаков слов непосредственно из строковых массивов и создания облаков слов из моделей мешка слов, моделей мешка n-грамма и тем LDA. Для wordcloud (Symbolic Math Toolbox) страница с описанием, см. wordcloud (Symbolic Math Toolbox).

Примеры

свернуть все

Загрузите пример данных sonnetsTable. Таблица tbl содержит список слов в переменной Word, и соответствующая частота отсчитывается в переменной Count.

load sonnetsTable
head(tbl)
ans=8×2 table
       Word        Count
    ___________    _____

    {'''tis'  }      1  
    {''Amen'' }      1  
    {''Fair'  }      2  
    {''Gainst'}      1  
    {''Since' }      1  
    {''This'  }      2  
    {''Thou'  }      1  
    {''Thus'  }      1  

Постройте график данных таблицы с помощью wordcloud. Задайте слова и соответствующие размеры слов, которые будут Word и Count переменные соответственно.

figure
wordcloud(tbl,'Word','Count');
title("Sonnets Word Cloud")

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

Если у вас Toolbox™ установлена Text Analytics, то можно создать облака слов непосредственно из строковых массивов. Для получения дополнительной информации смотрите wordcloud (Symbolic Math Toolbox) (Symbolic Math Toolbox). Если у вас нет Symbolic Math Toolbox, то необходимо предварительно обработать текстовые данные вручную.

Этот пример показов, как создать облако слов из простого текста путем чтения его в строковые массивы, предварительной обработки и передачи в wordcloud функция.

Прочитайте текст из Сонетов Шекспира с fileread и преобразуйте его в строку.

sonnets = string(fileread('sonnets.txt'));
extractBefore(sonnets,"II")
ans = 
    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       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,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

Разделение sonnets в строковые массивы, элементы которого содержат отдельные слова. Для этого удалите символы пунктуации и соедините все строковые элементы в строку 1 на 1, а затем разделите пробелы. Затем удалите слова менее чем с пятью символами и преобразуйте слова в строчные.

punctuationCharacters = ["." "?" "!" "," ";" ":"];
sonnets = replace(sonnets,punctuationCharacters," ");
words = split(join(sonnets));
words(strlength(words)<5) = [];
words = lower(words);
words(1:10)
ans = 10x1 string
    "sonnets"
    "william"
    "shakespeare"
    "fairest"
    "creatures"
    "desire"
    "increase"
    "thereby"
    "beauty's"
    "might"

Преобразование sonnets в категориальный массив и затем постройте график с помощью wordcloud. А графики функций уникальные элементы C с размерами, соответствующими их отсчетам частот.

C = categorical(words);
figure
wordcloud(C);
title("Sonnets Word Cloud")

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

Создайте облако слов из простого текста путем чтения его в строковые массивы, предварительной обработки и передачи в wordcloud функция.

Прочитайте текст из Сонетов Шекспира с fileread и преобразуйте его в строку.

sonnets = string(fileread('sonnets.txt'));
extractBefore(sonnets,"II")
ans = 
    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       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,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

Разделение sonnets в строковые массивы, элементы которого содержат отдельные слова. Для этого удалите символы пунктуации и соедините все строковые элементы в строку 1 на 1, а затем разделите пробелы. Затем удалите слова менее чем с пятью символами и преобразуйте слова в строчные.

punctuationCharacters = ["." "?" "!" "," ";" ":"];
sonnets = replace(sonnets,punctuationCharacters," ");
words = split(join(sonnets));
words(strlength(words)<5) = [];
words = lower(words);
words(1:10)
ans = 10x1 string
    "sonnets"
    "william"
    "shakespeare"
    "fairest"
    "creatures"
    "desire"
    "increase"
    "thereby"
    "beauty's"
    "might"

Найти уникальные слова в sonnets и подсчитайте их частоту. Создайте облако слов, используя счетчики частот как данные о размере.

[numOccurrences,uniqueWords] = histcounts(categorical(words));
figure
wordcloud(uniqueWords,numOccurrences);
title("Sonnets Word Cloud")

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

Загрузите пример данных sonnetsTable. Таблица tbl содержит список слов в Word переменная и соответствующие счетчики частот в Count переменная.

load sonnetsTable
head(tbl)
ans=8×2 table
       Word        Count
    ___________    _____

    {'''tis'  }      1  
    {''Amen'' }      1  
    {''Fair'  }      2  
    {''Gainst'}      1  
    {''Since' }      1  
    {''This'  }      2  
    {''Thou'  }      1  
    {''Thus'  }      1  

Постройте график данных таблицы с помощью wordcloud. Задайте слова и соответствующие размеры слов, которые будут Word и Count переменные соответственно. Чтобы задать цвета слов случайными значениями, установите 'Color' в случайную матрицу или триплеты RGB с одной строкой для каждого слова.

numWords = size(tbl,1);
colors = rand(numWords,3);
figure
wordcloud(tbl,'Word','Count','Color',colors);
title("Sonnets Word Cloud")

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

Если у вас установлен Symbolic Math Toolbox, то можно создавать облака слов непосредственно из строковых массивов. Если у вас нет Symbolic Math Toolbox, то необходимо предварительно обработать текстовые данные вручную. Пример создания облака слов без Symbolic Math Toolbox см. в разделе Подготовка текстовых данных для облаков Word.

Извлеките текст из sonnets.txt использование extractFileText.

str = extractFileText("sonnets.txt");
extractBefore(str,"II")
ans = 

    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       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,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

Отобразите слова из сонетов в облаке слов.

figure
wordcloud(str);

Входные параметры

свернуть все

Входная таблица со столбцами, определяющими размеры слов и слов. Укажите слова и соответствующие размеры слов в переменных, заданных wordVar и sizeVar входные параметры соответственно.

Типы данных: table

Табличная переменная для данных слова, заданная как строковый скаляр, вектор символов, числовой индекс или логический вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Табличная переменная для данных размера, заданная как строковый скаляр, вектор символов, числовой индекс или логический вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Входные категориальные данные, заданные как категориальный массив. О графики функций каждый уникальный элемент C с размером, соответствующим histcounts(C).

Типы данных: categorical

Входные слова, заданные как строковый вектор или массив ячеек из векторов символов.

Типы данных: string | cell

Данные о размере слова, заданные как числовой вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Родительский контейнер, заданный как Figure, Panel, Tab, TiledChartLayout, или GridLayout объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'HighlightColor','red' устанавливает красный цвет подсветки.

The WordCloudChart перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства WordCloudChart.

Максимальное количество слов для отображения, заданное как неотрицательное целое число. Программное обеспечение отображает MaxDisplayWords самые большие слова.

Цвет слова, заданный как триплет RGB, вектор символов, содержащий название цвета или N-by-3 матрица, где N - длина WordData. Если Color является матрицей, тогда каждая строка соответствует триплету RGB для соответствующего слова в WordData.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: 'blue'

Пример: [0 0 1]

Цвет подсветки Word, заданный как триплет RGB или вектора символов, содержащий название цвета. Программа подсвечивает самые большие слова с этим цветом.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: 'blue'

Пример: [0 0 1]

Форма облачного графика слов, заданная как 'oval' или 'rectangle'.

Пример: 'rectangle'

Макет размещения слов, заданный как неотрицательное целое число. Если вы неоднократно звоните wordcloud с теми же входами макеты размещения слов будут совпадать каждый раз. Чтобы получить различные макеты размещения слов, используйте различные значения LayoutNum.

Выходные аргументы

свернуть все

WordCloudChart объект. Можно изменять свойства WordCloudChart после создания. Дополнительные сведения см. в разделе Свойства WordCloudChart.

Совет

Symbolic Math Toolbox расширяет функциональность wordcloud (MATLAB) функция. Он добавляет поддержку для создания облаков слов непосредственно из строковых массивов и создания облаков слов из моделей мешка слов, моделей мешка n-грамма и тем LDA. Для wordcloud (Symbolic Math Toolbox) страница с описанием, см. wordcloud (Symbolic Math Toolbox).

Расширенные возможности

Введенный в R2017b
Для просмотра документации необходимо авторизоваться на сайте