Продолжите подбирать модель 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.00 | | 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.00 | 8.1261e-03 | 1.031e+03 | 1.000 | 0 | | 4 | 0.00 | 8.8626e-03 | 9.703e+02 | 1.000 | 0 | | 5 | 0.00 | 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.01 | 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.01 | 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.00 | 8.0569e-05 | 7.246e+02 | 0.785 | 3 | | 32 | 0.00 | 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
— Модель Input LDAldaModel
объектВведите модель LDA в виде ldaModel
объект. Чтобы продолжить подбирать модель, необходимо соответствовать ldaMdl
с решателем 'savb'
, 'avb'
, или 'cvb0'
.
bag
— Модель InputbagOfWords
возразите | bagOfNgrams
объектВведите сумку слов или мешок n модели граммов в виде bagOfWords
возразите или bagOfNgrams
объект. Если bag
bagOfNgrams
объект, затем функция обрабатывает каждую n-грамму как отдельное слово.
counts
— Подсчет частот словПодсчет частот слов в виде матрицы неотрицательных целых чисел. Если вы задаете 'DocumentsIn'
быть 'rows'
, затем значение counts(i,j)
соответствует числу раз, j th слово словаря появляется в i th документ. В противном случае, значение counts(i,j)
соответствует числу раз, i th слово словаря появляется в j th документ.
Аргументы 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
Типы данных: логический
'FitTopicProbabilities'
— Опция для подходящих вероятностей темыtrue
| false
Опция для подходящей концентрации темы в виде разделенной запятой пары, состоящей из 'FitTopicConcentration'
и любой true
или false
.
Значением по умолчанию является значение, используемое, чтобы соответствовать ldaMdl
.
Функция соответствует предшествующему Дирихле на смесях темы, где концентрация темы и корпусные вероятности темы, которые суммируют к 1.
Пример: 'FitTopicProbabilities',true
Типы данных: логический
'LogLikelihoodTolerance'
— Относительный допуск на логарифмической правдоподобности
(значение по умолчанию) | положительная скалярная величинаОтносительный допуск на логарифмической правдоподобности в виде разделенной запятой пары, состоящей из 'LogLikelihoodTolerance'
и положительная скалярная величина. Оптимизация завершает работу, когда этот допуск достигнут.
Пример: 'LogLikelihoodTolerance',0.001
'IterationLimit'
— Максимальное количество итераций
(значение по умолчанию) | положительное целое числоМаксимальное количество итераций в виде разделенной запятой пары, состоящей из '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
возразите | разреженная матрица подсчетов словДанные о валидации, чтобы контролировать сходимость оптимизации в виде разделенной запятой пары, состоящей из 'ValidationData'
и bagOfWords
объект, bagOfNgrams
объект или разреженная матрица подсчетов слов. Если данные о валидации являются матрицей, то данные должны иметь ту же ориентацию и то же количество слов как входные документы.
'ValidationFrequency'
— Частота проверки допустимости моделиЧастота проверки допустимости модели в количестве итераций в виде разделенной запятой пары, состоящей из 'ValidationFrequency'
и положительное целое число.
Значение по умолчанию зависит от решателя, используемого, чтобы подбирать модель. Для стохастического решателя значение по умолчанию равняется 10. Для других решателей значение по умолчанию равняется 1.
'Verbose'
— Уровень многословияУровень многословия в виде разделенной запятой пары, состоящей из 'Verbose'
и одно из следующего:
0 – Не отображайте многословный вывод.
1 – Отобразите информацию о прогрессе.
Пример: 'Verbose',0
updatedMdl
— Модель Updated LDAldaModel
объект (значение по умолчанию)Обновленная модель LDA, возвращенная как ldaModel
объект.
bagOfNgrams
| bagOfWords
| fitlda
| ldaModel
| logp
| predict
| transform
| wordcloud
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.