Возобновить установку модели LDA
возвращает обновленную модель LDA путем обучения более итерациям на модели мешка слов или мешка n-граммов updatedMdl = resume(ldaMdl,bag)bag. Вход bag должна быть той же самой моделью, которая используется для подгонки ldaMdl.
возвращает обновленную модель LDA путем обучения более итерациям в документах, представленных матрицей подсчета слов updatedMdl = resume(ldaMdl,counts)counts. Вход counts должна быть той же самой матрицей, которая используется для подгонки ldaMdl.
указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение.updatedMdl = resume(___,Name,Value)
Чтобы воспроизвести результаты в этом примере, установите 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 с четырьмя темами. resume функция не поддерживает решатель по умолчанию для fitlda. Установите решатель LDA в свернутый вариационный Байес, нулевой порядок.
numTopics = 4; mdl = fitlda(bag,numTopics,'Solver','cvb0')
===================================================================================== | Iteration | Time per | Relative | Training | Topic | Topic | | | iteration | change in | perplexity | concentration | concentration | | | (seconds) | log(L) | | | iterations | ===================================================================================== | 0 | 0.35 | | 3.292e+03 | 1.000 | 0 | | 1 | 0.01 | 1.4970e-01 | 1.147e+03 | 1.000 | 0 | | 2 | 0.00 | 7.1229e-03 | 1.091e+03 | 1.000 | 0 | | 3 | 0.01 | 8.1261e-03 | 1.031e+03 | 1.000 | 0 | | 4 | 0.00 | 8.8626e-03 | 9.703e+02 | 1.000 | 0 | | 5 | 0.01 | 8.5486e-03 | 9.154e+02 | 1.000 | 0 | | 6 | 0.00 | 7.4632e-03 | 8.703e+02 | 1.000 | 0 | | 7 | 0.00 | 6.0480e-03 | 8.356e+02 | 1.000 | 0 | | 8 | 0.00 | 4.5955e-03 | 8.102e+02 | 1.000 | 0 | | 9 | 0.00 | 3.4068e-03 | 7.920e+02 | 1.000 | 0 | | 10 | 0.00 | 2.5353e-03 | 7.788e+02 | 1.000 | 0 | | 11 | 0.02 | 1.9089e-03 | 7.690e+02 | 1.222 | 10 | | 12 | 0.00 | 1.2486e-03 | 7.626e+02 | 1.176 | 7 | | 13 | 0.00 | 1.1243e-03 | 7.570e+02 | 1.125 | 7 | | 14 | 0.00 | 9.1253e-04 | 7.524e+02 | 1.079 | 7 | | 15 | 0.00 | 7.5878e-04 | 7.486e+02 | 1.039 | 6 | | 16 | 0.00 | 6.6181e-04 | 7.454e+02 | 1.004 | 6 | | 17 | 0.00 | 6.0400e-04 | 7.424e+02 | 0.974 | 6 | | 18 | 0.00 | 5.6244e-04 | 7.396e+02 | 0.948 | 6 | | 19 | 0.00 | 5.0548e-04 | 7.372e+02 | 0.926 | 5 | | 20 | 0.00 | 4.2796e-04 | 7.351e+02 | 0.905 | 5 | ===================================================================================== | Iteration | Time per | Relative | Training | Topic | Topic | | | iteration | change in | perplexity | concentration | concentration | | | (seconds) | log(L) | | | iterations | ===================================================================================== | 21 | 0.00 | 3.4941e-04 | 7.334e+02 | 0.887 | 5 | | 22 | 0.00 | 2.9495e-04 | 7.320e+02 | 0.871 | 5 | | 23 | 0.00 | 2.6300e-04 | 7.307e+02 | 0.857 | 5 | | 24 | 0.00 | 2.5200e-04 | 7.295e+02 | 0.844 | 4 | | 25 | 0.00 | 2.4150e-04 | 7.283e+02 | 0.833 | 4 | | 26 | 0.00 | 2.0549e-04 | 7.273e+02 | 0.823 | 4 | | 27 | 0.00 | 1.6441e-04 | 7.266e+02 | 0.813 | 4 | | 28 | 0.00 | 1.3256e-04 | 7.259e+02 | 0.805 | 4 | | 29 | 0.00 | 1.1094e-04 | 7.254e+02 | 0.798 | 4 | | 30 | 0.00 | 9.2849e-05 | 7.249e+02 | 0.791 | 4 | =====================================================================================
mdl =
ldaModel with properties:
NumTopics: 4
WordConcentration: 1
TopicConcentration: 0.7908
CorpusTopicProbabilities: [0.2654 0.2531 0.2480 0.2336]
DocumentTopicProbabilities: [154x4 double]
TopicWordProbabilities: [3092x4 double]
Vocabulary: [1x3092 string]
TopicOrder: 'initial-fit-probability'
FitInfo: [1x1 struct]
Просмотр информации о посадке.
mdl.FitInfo
ans = struct with fields:
TerminationCode: 1
TerminationStatus: "Relative tolerance on log-likelihood satisfied."
NumIterations: 30
NegativeLogLikelihood: 6.3042e+04
Perplexity: 724.9445
Solver: "cvb0"
History: [1x1 struct]
Возобновите установку модели LDA с более низким допуском логарифмического правдоподобия.
tolerance = 1e-5; updatedMdl = resume(mdl,bag, ... 'LogLikelihoodTolerance',tolerance)
===================================================================================== | Iteration | Time per | Relative | Training | Topic | Topic | | | iteration | change in | perplexity | concentration | concentration | | | (seconds) | log(L) | | | iterations | ===================================================================================== | 30 | 0.00 | | 7.249e+02 | 0.791 | 0 | | 31 | 0.01 | 8.0569e-05 | 7.246e+02 | 0.785 | 3 | | 32 | 0.02 | 7.4692e-05 | 7.242e+02 | 0.779 | 3 | | 33 | 0.00 | 6.9802e-05 | 7.239e+02 | 0.774 | 3 | | 34 | 0.00 | 6.1154e-05 | 7.236e+02 | 0.770 | 3 | | 35 | 0.00 | 5.3163e-05 | 7.233e+02 | 0.766 | 3 | | 36 | 0.00 | 4.7807e-05 | 7.231e+02 | 0.762 | 3 | | 37 | 0.00 | 4.1820e-05 | 7.229e+02 | 0.759 | 3 | | 38 | 0.00 | 3.6237e-05 | 7.227e+02 | 0.756 | 3 | | 39 | 0.00 | 3.1819e-05 | 7.226e+02 | 0.754 | 2 | | 40 | 0.00 | 2.7772e-05 | 7.224e+02 | 0.751 | 2 | | 41 | 0.00 | 2.5238e-05 | 7.223e+02 | 0.749 | 2 | | 42 | 0.00 | 2.2052e-05 | 7.222e+02 | 0.747 | 2 | | 43 | 0.00 | 1.8471e-05 | 7.221e+02 | 0.745 | 2 | | 44 | 0.00 | 1.5638e-05 | 7.221e+02 | 0.744 | 2 | | 45 | 0.00 | 1.3735e-05 | 7.220e+02 | 0.742 | 2 | | 46 | 0.00 | 1.2298e-05 | 7.219e+02 | 0.741 | 2 | | 47 | 0.00 | 1.0905e-05 | 7.219e+02 | 0.739 | 2 | | 48 | 0.00 | 9.5581e-06 | 7.218e+02 | 0.738 | 2 | =====================================================================================
updatedMdl =
ldaModel with properties:
NumTopics: 4
WordConcentration: 1
TopicConcentration: 0.7383
CorpusTopicProbabilities: [0.2679 0.2517 0.2495 0.2309]
DocumentTopicProbabilities: [154x4 double]
TopicWordProbabilities: [3092x4 double]
Vocabulary: [1x3092 string]
TopicOrder: 'initial-fit-probability'
FitInfo: [1x1 struct]
Просмотр информации о посадке.
updatedMdl.FitInfo
ans = struct with fields:
TerminationCode: 1
TerminationStatus: "Relative tolerance on log-likelihood satisfied."
NumIterations: 48
NegativeLogLikelihood: 6.3001e+04
Perplexity: 721.8357
Solver: "cvb0"
History: [1x1 struct]
ldaMdl - Входная модель LDAldaModel объектВходная модель LDA, заданная как ldaModel объект. Для возобновления подгонки модели необходимо выполнить подгонку ldaMdl с решателем 'savb', 'avb', или 'cvb0'.
bag - Входная модельbagOfWords объект | bagOfNgrams объектВходная модель сумки слов или сумки n граммов, указанная как bagOfWords объект или bagOfNgrams объект. Если bag является bagOfNgrams объект, то функция рассматривает каждый n-грамм как одно слово.
counts - Число частот словЧисло частот слов, указанное как матрица неотрицательных целых чисел. При указании 'DocumentsIn' быть 'rows', то значение counts(i,j) соответствует числу раз, когда j-е слово словаря появляется в i-ом документе. В противном случае значение counts(i,j) соответствует числу раз, когда i-е слово словаря появляется в j-ом документе.
Примечание
Аргументы bag и counts должно быть то же, что используется для подгонки ldaMdl.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'LogLikelihoodTolerance',0.001 задает допуск логарифмического правдоподобия 0,001.'DocumentsIn' - Ориентация документов'rows' (по умолчанию) | 'columns'Ориентация документов в матрице подсчета слов, определяемая как разделенная запятыми пара, состоящая из 'DocumentsIn' и одно из следующих:
'rows' - Ввод представляет собой матрицу подсчета слов со строками, соответствующими документам.
'columns' - Ввод представляет собой транспонированную матрицу подсчета слов со столбцами, соответствующими документам.
Этот параметр применяется только в том случае, если входные документы указаны в виде матрицы счетчиков слов.
Примечание
Если сориентировать матрицу подсчета слов так, чтобы документы соответствовали столбцам, и указать 'DocumentsIn','columns', то вы можете испытать значительное сокращение времени оптимизации-выполнения.
'FitTopicConcentration' - Опция для настройки параметра концентрации тематикиtrue | falseОпция для настройки концентрации темы, указанная как разделенная запятыми пара, состоящая из 'FitTopicConcentration' и либо true или false.
Значением по умолчанию является значение, используемое для подгонки ldaMdl.
Пример: 'FitTopicConcentration',true
Типы данных: logical
'FitTopicProbabilities' - Возможность подбора вероятностей темыtrue | falseОпция для настройки концентрации темы, указанная как разделенная запятыми пара, состоящая из 'FitTopicConcentration' и либо true или false.
Значением по умолчанию является значение, используемое для подгонки ldaMdl.
Функция соответствует предшествующему Дирихле p1p2⋯pK) на смесях темы, α0 - концентрация темы, p1,...,pK - вероятности темы корпуса, которые суммируются до 1.
Пример: 'FitTopicProbabilities',true
Типы данных: logical
'LogLikelihoodTolerance' - Относительный допуск по логарифмическому правдоподобию0.0001 (по умолчанию) | положительный скалярОтносительный допуск на log-правдоподобие, указанный как разделенная запятыми пара, состоящая из 'LogLikelihoodTolerance' и положительный скаляр. Оптимизация завершается при достижении этого допуска.
Пример: 'LogLikelihoodTolerance',0.001
'IterationLimit' - Максимальное число итераций100 (по умолчанию) | положительное целое числоМаксимальное количество итераций, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число.
Эта опция поддерживает модели, оснащенные только пакетными решателями ('cgs', 'avb', и 'cvb0').
Пример: 'IterationLimit',200
'DataPassLimit' - Максимальное количество проходов через данныеМаксимальное количество проходов через данные, указанное как разделенная запятыми пара, состоящая из 'DataPassLimit' и положительное целое число.
При указании 'DataPassLimit' но не 'MiniBatchLimit', то значение по умолчанию 'MiniBatchLimit' игнорируется. При указании обоих 'DataPassLimit' и 'MiniBatchLimit', то resume использует аргумент, который приводит к обработке наименьшего количества наблюдений.
Эта опция поддерживает модели, оснащенные только стохастическими решателями ('savb').
Пример: 'DataPassLimit',2
'MiniBatchLimit' - Максимальное количество проходов мини-партииМаксимальное количество проходов мини-пакета, указанное как пара, разделенная запятыми, состоящая из 'MiniBatchLimit' и положительное целое число.
При указании 'MiniBatchLimit' но не 'DataPassLimit', то resume игнорирует значение по умолчанию 'DataPassLimit'. При указании обоих 'MiniBatchLimit' и 'DataPassLimit', то resume использует аргумент, который приводит к обработке наименьшего количества наблюдений. Значение по умолчанию: ceil(numDocuments/MiniBatchSize), где numDocuments - количество входных документов.
Эта опция поддерживает модели, оснащенные только стохастическими решателями ('savb').
Пример: 'MiniBatchLimit',200
'MiniBatchSize' - Размер мини-партииРазмер мини-партии, указанный как разделенная запятыми пара, состоящая из 'MiniBatchLimit' и положительное целое число. Функциональные процессы MiniBatchSize документов в каждой итерации.
Эта опция поддерживает модели, оснащенные только стохастическими решателями ('savb').
Пример: 'MiniBatchSize',512
'ValidationData' - Данные проверки[] (по умолчанию) | bagOfWords объект | bagOfNgrams object | разреженная матрица счетчиков словДанные проверки для мониторинга сходимости оптимизации, указанные как пара, разделенная запятыми, состоящая из 'ValidationData' и bagOfWords объект, a bagOfNgrams объект или разреженная матрица подсчета слов. Если данные проверки являются матрицей, то они должны иметь ту же ориентацию и то же количество слов, что и входные документы.
'ValidationFrequency' - Периодичность проверки моделиЧастота проверки модели в количестве итераций, указанная как пара, разделенная запятыми, состоящая из 'ValidationFrequency' и положительное целое число.
Значение по умолчанию зависит от решателя, используемого для подгонки модели. Для стохастического решателя значением по умолчанию является 10. Для других решателей значением по умолчанию является 1.
'Verbose' - Уровень детализацииУровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и одно из следующих:
0 - не отображать подробные выходные данные.
1 - Отображение информации о ходе выполнения.
Пример: 'Verbose',0
updatedMdl - Обновленная модель LDAldaModel объект (по умолчанию)Обновленная модель LDA, возвращенная как ldaModel объект.
bagOfNgrams | bagOfWords | fitlda | ldaModel | logp | predict | transform | wordcloud
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.