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.

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

Типы данных: логический

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

свернуть все

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

  • 'none' – Возвратите следующие вероятности слова.

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

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

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

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

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

свернуть все

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

Когда вход является моделью сумки слов, таблица имеет следующие столбцы:

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

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

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

WordWord, заданный как строка
ScoreВероятность Word для данной темы LDA

Советы

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

Введенный в R2017b