exponenta event banner

fitlsa

Подгонка модели LSA

Описание

Модель латентного семантического анализа (LSA) обнаруживает связи между документами и содержащимися в них словами. Модель LSA - это инструмент уменьшения размерности, полезный для запуска низкоразмерных статистических моделей при высокоразмерном подсчете слов. Если модель была подогнана с использованием модели мешка n-грамм, то программное обеспечение рассматривает n-грамм как отдельные слова.

пример

mdl = fitlsa(bag,numComponents) подходит для модели LSA с numComponents компоненты для модели мешка слов или мешка n граммов bag.

пример

mdl = fitlsa(counts,numComponents) соответствует модели LSA документам, представленным матрицей подсчета слов counts.

пример

mdl = fitlsa(___,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

Поместите модель LSA с 20 компонентами.

numComponents = 20;
mdl = fitlsa(bag,numComponents)
mdl = 
  lsaModel with properties:

              NumComponents: 20
           ComponentWeights: [1x20 double]
             DocumentScores: [154x20 double]
                 WordScores: [3092x20 double]
                 Vocabulary: [1x3092 string]
    FeatureStrengthExponent: 2

Преобразование новых документов в пространство нижних размеров с помощью модели LSA.

newDocuments = tokenizedDocument([
    "what's in a name? a rose by any other name would smell as sweet."
    "if music be the food of love, play on."]);
dscores = transform(mdl,newDocuments)
dscores = 2×20

    0.1338    0.1623    0.1680   -0.0541   -0.2464    0.0134    0.2604   -0.0205   -0.1127    0.0627    0.3311   -0.2327    0.1689   -0.2695    0.0228    0.1241    0.1198    0.2535   -0.0607    0.0305
    0.2547    0.5576   -0.0095    0.5660   -0.0643    0.1236   -0.0082    0.0522    0.0690   -0.0330    0.0385    0.0803   -0.0373    0.0384   -0.0005    0.1943    0.0207    0.0278    0.0001   -0.0469

Загрузите данные примера. sonnetsCounts.mat содержит матрицу подсчета слов, соответствующую предварительно обработанным версиям сонетов Шекспира.

load sonnetsCounts.mat
size(counts)
ans = 1×2

         154        3092

Подгонка модели LSA с 20 компонентами. Установите показатель прочности элемента равным 4.

numComponents = 20;
exponent = 4;
mdl = fitlsa(counts,numComponents, ...
    'FeatureStrengthExponent',exponent)
mdl = 
  lsaModel with properties:

              NumComponents: 20
           ComponentWeights: [1x20 double]
             DocumentScores: [154x20 double]
                 WordScores: [3092x20 double]
                 Vocabulary: [1x3092 string]
    FeatureStrengthExponent: 4

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

свернуть все

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

Число компонентов, указанное как положительное целое число. Это значение должно быть меньше числа входных документов и словарного размера входных документов.

Пример: 200

Число частот слов, указанное как матрица неотрицательных целых чисел. При указании 'DocumentsIn' быть 'rows', то значение counts(i,j) соответствует числу раз, когда j-е слово словаря появляется в i-ом документе. В противном случае значение counts(i,j) соответствует числу раз, когда i-е слово словаря появляется в j-ом документе.

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

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

Пример: 'FeatureStrengthExponent',4 устанавливает показатель прочности элемента равным 4.

Ориентация документов в матрице подсчета слов, определяемая как разделенная запятыми пара, состоящая из 'DocumentsIn' и одно из следующих:

  • 'rows' - Ввод представляет собой матрицу подсчета слов со строками, соответствующими документам.

  • 'columns' - Ввод представляет собой транспонированную матрицу подсчета слов со столбцами, соответствующими документам.

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

Примечание

Если сориентировать матрицу подсчета слов так, чтобы документы соответствовали столбцам, и указать 'DocumentsIn','columns', то вы можете испытать значительное сокращение времени оптимизации-выполнения.

Показатель начальной силы элемента, заданный как неотрицательный скаляр. Это значение масштабирует силы компонентов элемента для documentScores, wordScores, и transform функции.

Пример: 'FeatureStrengthExponent',4

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

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

свернуть все

Выходная модель LSA, возвращенная как lsaModel объект.

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