Продолжите соответствовать модели LDA
updatedMdl = resume(ldaMdl,bag)
updatedMdl = resume(ldaMdl,counts)
updatedMdl = resume(___,Name,Value)
возвращает обновленную модель 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.57 | | 3.292e+03 | 1.000 | 0 | | 1 | 0.12 | 1.4970e-01 | 1.147e+03 | 1.000 | 0 | | 2 | 0.49 | 7.1229e-03 | 1.091e+03 | 1.000 | 0 | | 3 | 0.05 | 8.1261e-03 | 1.031e+03 | 1.000 | 0 | | 4 | 0.04 | 8.8626e-03 | 9.703e+02 | 1.000 | 0 | | 5 | 0.46 | 8.5486e-03 | 9.154e+02 | 1.000 | 0 | | 6 | 0.05 | 7.4632e-03 | 8.703e+02 | 1.000 | 0 | | 7 | 0.03 | 6.0480e-03 | 8.356e+02 | 1.000 | 0 | | 8 | 0.15 | 4.5955e-03 | 8.102e+02 | 1.000 | 0 | | 9 | 1.18 | 3.4068e-03 | 7.920e+02 | 1.000 | 0 | | 10 | 0.64 | 2.5353e-03 | 7.788e+02 | 1.000 | 0 | | 11 | 0.07 | 1.9089e-03 | 7.690e+02 | 1.222 | 10 | | 12 | 0.17 | 1.2486e-03 | 7.626e+02 | 1.176 | 7 | | 13 | 0.41 | 1.1243e-03 | 7.570e+02 | 1.125 | 7 | | 14 | 0.13 | 9.1253e-04 | 7.524e+02 | 1.079 | 7 | | 15 | 0.71 | 7.5878e-04 | 7.486e+02 | 1.039 | 6 | | 16 | 0.33 | 6.6181e-04 | 7.454e+02 | 1.004 | 6 | | 17 | 0.87 | 6.0400e-04 | 7.424e+02 | 0.974 | 6 | | 18 | 0.03 | 5.6244e-04 | 7.396e+02 | 0.948 | 6 | | 19 | 0.04 | 5.0548e-04 | 7.372e+02 | 0.926 | 5 | | 20 | 0.03 | 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.52 | 3.4941e-04 | 7.334e+02 | 0.887 | 5 | | 22 | 0.20 | 2.9495e-04 | 7.320e+02 | 0.871 | 5 | | 23 | 0.57 | 2.6300e-04 | 7.307e+02 | 0.857 | 5 | | 24 | 0.12 | 2.5200e-04 | 7.295e+02 | 0.844 | 4 | | 25 | 0.05 | 2.4150e-04 | 7.283e+02 | 0.833 | 4 | | 26 | 0.05 | 2.0549e-04 | 7.273e+02 | 0.823 | 4 | | 27 | 0.26 | 1.6441e-04 | 7.266e+02 | 0.813 | 4 | | 28 | 0.04 | 1.3256e-04 | 7.259e+02 | 0.805 | 4 | | 29 | 0.06 | 1.1094e-04 | 7.254e+02 | 0.798 | 4 | | 30 | 0.05 | 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.02 | | 7.249e+02 | 0.791 | 0 | | 31 | 0.10 | 8.0569e-05 | 7.246e+02 | 0.785 | 3 | | 32 | 0.03 | 7.4692e-05 | 7.242e+02 | 0.779 | 3 | | 33 | 0.01 | 6.9802e-05 | 7.239e+02 | 0.774 | 3 | | 34 | 0.02 | 6.1154e-05 | 7.236e+02 | 0.770 | 3 | | 35 | 0.04 | 5.3163e-05 | 7.233e+02 | 0.766 | 3 | | 36 | 0.06 | 4.7807e-05 | 7.231e+02 | 0.762 | 3 | | 37 | 0.03 | 4.1820e-05 | 7.229e+02 | 0.759 | 3 | | 38 | 0.03 | 3.6237e-05 | 7.227e+02 | 0.756 | 3 | | 39 | 0.02 | 3.1819e-05 | 7.226e+02 | 0.754 | 2 | | 40 | 0.02 | 2.7772e-05 | 7.224e+02 | 0.751 | 2 | | 41 | 0.04 | 2.5238e-05 | 7.223e+02 | 0.749 | 2 | | 42 | 0.07 | 2.2052e-05 | 7.222e+02 | 0.747 | 2 | | 43 | 0.06 | 1.8471e-05 | 7.221e+02 | 0.745 | 2 | | 44 | 0.04 | 1.5638e-05 | 7.221e+02 | 0.744 | 2 | | 45 | 0.06 | 1.3735e-05 | 7.220e+02 | 0.742 | 2 | | 46 | 0.03 | 1.2298e-05 | 7.219e+02 | 0.741 | 2 | | 47 | 0.02 | 1.0905e-05 | 7.219e+02 | 0.739 | 2 | | 48 | 0.04 | 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
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'LogLikelihoodTolerance',0.001
задает допуск логарифмической вероятности 0,001.'DocumentsIn'
— Ориентация документов'rows'
(значение по умолчанию) | 'columns'
Ориентация документов в матрице для подсчета количества слов, заданной как пара, разделенная запятой, состоящая из 'DocumentsIn'
и одно из следующего:
'Строки'
Вход является матрицей подсчетов слов со строками, соответствующими документам.
'columns'
– Вход является транспонированной матрицей подсчетов слов со столбцами, соответствующими документам.
Эта опция только применяется, если вы задаете входные документы как матрицу подсчетов слов.
Если вы ориентируете свою матрицу для подсчета количества слов так, чтобы документы соответствовали столбцам и задали 'DocumentsIn','columns'
, то вы можете испытать значительное сокращение во время выполнения оптимизации.
'FitTopicConcentration'
— Опция для подходящего параметра концентрации темыtrue
| false
Опция для подходящей концентрации темы, заданной как пара, разделенная запятой, состоящая из 'FitTopicConcentration'
и или true
или false
.
Значение по умолчанию является значением, используемым, чтобы соответствовать ldaMdl
.
Пример: 'FitTopicConcentration',true
Типы данных: логический
'FitTopicProbabilities'
— Опция для подходящих вероятностей темыtrue
| false
Опция для подходящей концентрации темы, заданной как пара, разделенная запятой, состоящая из 'FitTopicConcentration'
и или true
или false
.
Значение по умолчанию является значением, используемым, чтобы соответствовать ldaMdl
.
Функция соответствует предшествующему Дирихле на смесях темы, где концентрация темы и корпусные вероятности темы, которые суммируют к 1.
Пример: 'FitTopicProbabilities',true
Типы данных: логический
'LogLikelihoodTolerance'
— Относительный допуск на логарифмической вероятности0.0001
(значение по умолчанию) | положительная скалярная величинаОтносительный допуск на логарифмической вероятности, заданной как пара, разделенная запятой, состоящая из '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
| разреженная матрица подсчетов словДанные о валидации, чтобы контролировать сходимость оптимизации, заданную как пара, разделенная запятой, состоящая из 'ValidationData'
и объекта bagOfWords
, объекта bagOfNgrams
или разреженной матрицы подсчетов слов. Если данные о валидации являются матрицей, то данные должны иметь ту же ориентацию и то же количество слов как входные документы.
'Verbose'
— Уровень многословияУровень многословия, заданный как пара, разделенная запятой, состоящая из 'Verbose'
и одно из следующего:
0 – Не отображайте многословный вывод.
1 – Отобразите информацию о прогрессе.
Пример: 'Verbose',0
updatedMdl
— Updated LDAldaModel
(значение по умолчанию)Обновленная модель LDA, возвращенная как объект ldaModel
.
bagOfNgrams
| bagOfWords
| fitlda
| ldaModel
| logp
| predict
| transform
| wordcloud
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.