wordcloud

Создайте график облака слова из текста, модели сумки слов, мешка n модели граммов или модели LDA

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

Синтаксис

wc = wordcloud(str)
wc = wordcloud(documents)
wc = wordcloud(bag)
wc = wordcloud(tbl,wordVar,sizeVar)
wc = wordcloud(words,sizeData)
wc = wordcloud(C)
wc = wordcloud(ldaMdl,topicIdx)
wc = wordcloud(parent,___)
wc = wordcloud(___,Name,Value)

Описание

пример

wc = wordcloud(str) создает график облака слова путем маркирования и предварительной обработки текста в str, и затем отображения слов с размерами, соответствующими количествам частотности слова.

пример

wc = wordcloud(documents) создает график облака слова от слов, появляющихся в documents.

пример

wc = wordcloud(bag) создает график облака слова от сумки слов или мешка n модели bag граммов.

пример

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

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

wc = wordcloud(C) создает график облака слова от элементов категориального массива C с помощью подсчета частот.

пример

wc = wordcloud(ldaMdl,topicIdx) создает график облака слова от темы с индексом topicIdx модели LDA ldaMdl.

wc = wordcloud(parent,___) создает облако слова в фигуре, панели или вкладке, заданной parent.

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

Примеры

свернуть все

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

Загрузите данные в качестве примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлеките текст от sonnetsPreprocessed.txt, разделите текст в документы в символах новой строки, и затем маркируйте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Визуализируйте документы с помощью облака слова.

figure
wordcloud(documents);

Загрузите данные в качестве примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлеките текст от sonnetsPreprocessed.txt, разделите текст в документы в символах новой строки, и затем маркируйте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создайте модель сумки слов использование bagOfWords.

bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [154x3092 double]
      Vocabulary: [1x3092 string]
        NumWords: 3092
    NumDocuments: 154

Визуализируйте модель сумки слов использование облака слова.

figure
wordcloud(bag);

Загрузите данные в качестве примера 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")

Чтобы воспроизвести результаты в этом примере, установите rng на 'default'.

rng('default')

Загрузите данные в качестве примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлеките текст от sonnetsPreprocessed.txt, разделите текст в документы в символах новой строки, и затем маркируйте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создайте модель сумки слов использование bagOfWords.

bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [154x3092 double]
      Vocabulary: [1x3092 string]
        NumWords: 3092
    NumDocuments: 154

Соответствуйте модели LDA 20 темами. Чтобы подавить многословный вывод, установите 'Verbose' на 0.

mdl = fitlda(bag,20,'Verbose',0)
mdl = 
  ldaModel with properties:

                     NumTopics: 20
             WordConcentration: 1
            TopicConcentration: 5
      CorpusTopicProbabilities: [1x20 double]
    DocumentTopicProbabilities: [154x20 double]
        TopicWordProbabilities: [3092x20 double]
                    Vocabulary: [1x3092 string]
                    TopicOrder: 'initial-fit-probability'
                       FitInfo: [1x1 struct]

Визуализируйте первые четыре темы с помощью облаков слова.

figure
for topicIdx = 1:4
    subplot(2,2,topicIdx)
    wordcloud(mdl,topicIdx);
    title("Topic: " + topicIdx)
end

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

свернуть все

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

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

Пример: ["an example of a short document";"a second short document"]

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

Введите документы, заданные как массив tokenizedDocument.

Входная таблица, со столбцами, задающими слова и размеры слова. Задайте слова и соответствующие размеры слова в переменных, данных 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

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

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

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

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

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

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

Введите сумку слов или мешок n модели граммов, заданной как объект bagOfWords или объект bagOfNgrams. Если bag является объектом bagOfNgrams, то функция обрабатывает N-граммы как отдельные слова.

Введите модель LDA, заданную как объект ldaModel.

Индекс темы LDA, заданной как неотрицательное целое число.

Родительский элемент, заданный как фигура, панель или вкладка.

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

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

Пример: 'HighlightColor','blue' задает цвет подсветки, чтобы быть синим.

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

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

Цвет Word, заданный как триплет 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'

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

свернуть все

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

Больше о

свернуть все

Факторы языка

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

Для других языков вы можете должны быть вручную предварительно обработать свои текстовые данные и задать уникальные слова и соответствующие размеры в wordcloud.

Чтобы задать размеры слова в wordcloud, введите свои данные как таблицу или массивы, содержащие уникальные слова и соответствующие размеры.

Введенный в R2017b