Latent Dirichlet Allocation (LDA) помогает выявлять скрытые структуры в текстовых данных путём определения, какие темы присутствуют в наборе текстов и какие слова характеризуют каждую тему. habr.com
В основе LDA лежит идея о том, что каждый документ можно представить как смесь различных тем, а каждая тема, в свою очередь, — как распределение по словам. textarget.ru
Алгоритм работает следующим образом: textarget.ru
- Определение количества тем. textarget.ru Сначала нужно указать LDA, сколько тем хочется найти. textarget.ru Это гиперпараметр, который нужно подбирать в зависимости от данных. textarget.ru
- Случайное распределение слов по темам. textarget.ru LDA начинает с случайного назначения каждого слова в каждом документе одной из тем. textarget.ru
- Итеративное уточнение. textarget.ru Алгоритм проходит по всем словам во всех документах и для каждого слова задаётся вопросом: к каким темам относятся другие слова в этом документе и к каким темам это слово относится в других документах? textarget.ru На основе этих вопросов LDA перераспределяет слова по темам, чтобы максимизировать вероятность получить наблюдаемый набор документов. textarget.ru
- Сходимость. textarget.ru Этот процесс повторяется многократно, пока распределение слов по темам не стабилизируется. textarget.ru
В результате LDA предоставляет: textarget.ru
- Список тем. textarget.ru Каждая тема представлена набором слов, которые наиболее вероятно встретятся в документах, относящихся к этой теме. textarget.ru Например, тема «спорт» может быть представлена словами «футбол», «баскетбол», «чемпионат» и т.д.. textarget.ru
- Распределение тем по документам. textarget.ru Для каждого документа LDA выдаёт вероятность принадлежности к каждой из тем. textarget.ru Например, новостная статья о футбольном матче может иметь высокую вероятность принадлежности к теме «спорт» и низкую вероятность принадлежности к другим темам. textarget.ru