exponenta event banner

topkwords

Наиболее важные слова в сумке слов модели или темы LDA

Описание

пример

tbl = topkwords(bag) возвращает таблицу из пяти слов с наибольшим числом слов в модели мешка слов bag. Функция по умолчанию чувствительна к регистру.

пример

tbl = topkwords(bag,k) возвращает таблицу k слова с наибольшим числом слов. Функция по умолчанию чувствительна к регистру.

пример

tbl = topkwords(ldaMdl,k,topicIdx) возвращает таблицу k слова с наибольшими вероятностями в скрытой теме выделения Дирихле (LDA) topicIdx в модели LDA ldaMdl.

пример

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

Примеры

свернуть все

Создайте таблицу наиболее частых слов модели мешка слов.

Загрузите данные примера. Файл 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

Найдите пять лучших слов.

T = topkwords(bag);

Найдите 20 лучших слов в модели.

k = 20;
T = topkwords(bag,k)
T=20×2 table
      Word      Count
    ________    _____

    "thy"        281 
    "thou"       234 
    "love"       162 
    "thee"       161 
    "doth"        88 
    "mine"        63 
    "shall"       59 
    "eyes"        56 
    "sweet"       55 
    "time"        53 
    "beauty"      52 
    "nor"         52 
    "art"         51 
    "yet"         51 
    "o"           50 
    "heart"       50 
      ⋮

Создайте таблицу слов с наибольшей вероятностью темы LDA.

Для воспроизведения результатов установите 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);

Поместите модель LDA с 20 темами. Для подавления подробных выходных данных установите 'Verbose' в 0.

numTopics = 20;
mdl = fitlda(bag,numTopics,'Verbose',0);

Найдите 20 лучших слов первой темы.

k = 20;
topicIdx = 1;
tbl = topkwords(mdl,k,topicIdx)
tbl=20×2 table
      Word        Score  
    ________    _________

    "eyes"        0.11155
    "beauty"      0.05777
    "hath"       0.055778
    "still"      0.049801
    "true"       0.043825
    "mine"       0.033865
    "find"       0.031873
    "black"      0.025897
    "look"       0.023905
    "tis"        0.023905
    "kind"       0.021913
    "seen"       0.021913
    "found"      0.017929
    "sin"        0.015937
    "three"      0.013945
    "golden"    0.0099608
      ⋮

Найдите 20 лучших слов первой темы и используйте обратное среднее масштабирование на баллах.

tbl = topkwords(mdl,k,topicIdx,'Scaling','inversemean')
tbl=20×2 table
      Word       Score  
    ________    ________

    "eyes"        1.2718
    "beauty"     0.59022
    "hath"        0.5692
    "still"      0.50269
    "true"       0.43719
    "mine"       0.32764
    "find"       0.32544
    "black"      0.25931
    "tis"        0.23755
    "look"       0.22519
    "kind"       0.21594
    "seen"       0.21594
    "found"      0.17326
    "sin"        0.15223
    "three"      0.13143
    "golden"    0.090698
      ⋮

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

figure
wordcloud(tbl.Word,tbl.Score);

Figure contains an object of type wordcloud.

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

свернуть все

Входная модель сумки слов, заданная как bagOfWords объект.

Количество возвращаемых слов, указанное как положительное целое число.

Пример: 20

Входная модель LDA, заданная как ldaModel объект.

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

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

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

Пример: 'Scaling','inversemean' указывает использовать обратное среднее масштабирование вероятностей тематических слов.
Параметры модели мешка слов

свернуть все

Параметр для игнорирования регистра, заданного как разделенная запятыми пара, состоящая из 'IgnoreCase' и одно из следующих:

  • false - рассматривать слова, различающиеся только в зависимости от случая, как отдельные слова.

  • true - рассматривать слова, различающиеся только в зависимости от случая, как одно и то же слово и считать слияние.

Этот параметр поддерживает только ввод пакетов слов.

Индикатор принудительного возврата выходного сигнала в виде массива ячеек, заданного как пара, разделенная запятыми, состоящая из 'ForceCellOutput' и true или false.

Этот параметр поддерживает только ввод пакетов слов.

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

Опции модели LDA

свернуть все

Масштабирование для применения к вероятностям тематических слов, указанным как пара, разделенная запятыми, состоящая из 'Scaling' и одно из следующих:

  • 'none' - Вернуть апостериорные вероятности слов.

  • 'inversemean' - Нормализовать вероятности задних слов на тему по среднему геометрическому задних вероятностей для этого слова по всем темам. Функция использует формулу Phi.*(log(Phi)-mean(log(Phi),1)), где Phi соответствует ldaMdl.TopicWordProbabilities.

Эта опция поддерживает только входные данные модели LDA.

Пример: 'Scaling','inversemean'

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

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

свернуть все

Таблица верхних слов, отсортированная в порядке важности, или массив ячеек таблиц.

Если входные данные представляют собой модель пакета слов, таблица содержит следующие столбцы:

WordСлово, указанное как строка
CountЧисло появления слова в модели сумки слов

Если bag является нескалярным массивом или 'ForceCellOutput' является trueзатем функция возвращает выходные данные в виде массива ячеек таблиц. Каждый элемент в массиве ячеек представляет собой таблицу, содержащую верхние слова соответствующего элемента bag.

Если вводом является модель LDA, таблица имеет следующие столбцы:

WordСлово, указанное как строка
ScoreВероятность слова для данного раздела LDA

Совет

  • Чтобы найти наиболее часто встречающиеся n-граммы в модели мешка n-граммов, используйте topkngrams.

Представлен в R2017b