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 Properties.

Примечание

Text Analytics Toolbox расширяет функциональность wordcloud (MATLAB®) функция. Это добавляет поддержку создания облаков слова непосредственно от строковых массивов и создания облаков слова из моделей сумки слов, мешка n моделей грамма и тем LDA. Для wordcloud (Text Analytics Toolbox) страница с описанием, смотрите wordcloud (Text Analytics 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.

Если вам установили Text Analytics Toolbox™, то можно создать облака слова непосредственно из строковых массивов. Для получения дополнительной информации смотрите wordcloud (Text Analytics Toolbox) (Text Analytics Toolbox). Если у вас нет Text Analytics 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.

Если вам установили Text Analytics Toolbox, то можно создать облака слова непосредственно из строковых массивов. Если у вас нет Text Analytics Toolbox, то необходимо предварительно обработать текстовые данные вручную. Для примера, показывающего, как создать облако слова без Text Analytics Toolbox, смотрите, Готовят текстовые Данные к Word Clouds.

Извлеките текст из 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

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

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

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

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

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

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

WordCloudChart свойства, перечисленные здесь, являются только подмножеством. Для полного списка смотрите WordCloudChart Properties.

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

Цвет Word в виде триплета RGB, вектор символов, содержащий название цвета или N- 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'

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

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

свернуть все

WordCloudChart объект. Можно изменить свойства WordCloudChart после того, как это создается. Для получения дополнительной информации смотрите WordCloudChart Properties.

Советы

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

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

Введенный в R2017b