wordcloud

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

Описание

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

пример

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

пример

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

пример

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

пример

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

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

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

пример

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

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

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

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

Примеры

свернуть все

Извлеките текст из 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 и wordCloudCounts функции используют английский, японский язык, немецкий язык, и корейскую токенизацию, останавливают удаление слова и нормализацию слова.

Пример: ["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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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'

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

свернуть все

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

Больше о

свернуть все

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

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

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

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

Введенный в R2017b