R пакети для моделювання теми / LDA: просто `topicmodels` та` lda` [закрито]


29

Мені здається, що лише два пакети R здатні виконувати приховане розподілення Діріхле :

Один є ldaавтором Джонатана Чанга; а другий topicmodelsавтор - Беттіна Грюн та Курт Горник.

Які відмінності між цими двома пакетами щодо продуктивності, деталей реалізації та розширюваності?

Відповіді:


26

Реалізація: Пакет теми моделей надає інтерфейс до кодів GSL C та C ++ для моделей тем Blei et al. та Phan та ін. Для більш раннього він використовує Variational EM, для останнього Gibbs Sampling. Див. Http://www.jstatsoft.org/v40/i13/paper . Пакет добре працює з утилітами з пакету tm.

У пакеті lda використовується згорнутий пробовідбірник Gibbs для ряду моделей, подібних до моделей з бібліотеки GSL. Однак він був реалізований самими авторами пакунків, а не Blei et al. Таким чином, ця реалізація в цілому відрізняється від методики оцінки, запропонованої в оригінальних роботах, що представляють ці варіанти моделей, де зазвичай застосовується алгоритм VEM. З іншого боку, пакет пропонує більше функціоналу, ніж інший пакет. Пакет також забезпечує функцію пошуку тексту.

Розширюваність: Що стосується розширюваності, код модельної теми за своєю суттю може бути розширений для інтерфейсу іншого коду моделі теми, написаного на C та C ++. Пакет lda, здається, більше покладається на конкретну реалізацію, яку надають автори, але там, де пробовідбірник Гіббса може дозволити вказати власну тематичну модель. Що стосується питань розширення без користі, перший ліцензується під GPL-2, а останній LGPL, тому це може залежати від того, для чого вам потрібно його продовжити (GPL-2 суворіше щодо аспекту відкритого коду, тобто ви не можете його використовувати у власному програмному забезпеченні).

Продуктивність: Я не можу вам тут допомогти, до цього часу я використовував лише тематичні моделі.

Висновок:
Особисто я використовую topicmodels, як це добре задокументовано (див. Статтю JSS вище), і я довіряю авторам (Grün також реалізував flexmix, а Hornik є основним членом R).


7
По-перше, я впевнений, що тематичні моделі - це чудовий пакет, і я погоджуюся, що це дуже добре задокументовано. Щодо "довіри" авторам пакету LDA, Джонатан Чанг був моїм докторантом, і я повністю довіряю його коду. Він і відмінний програмний інженер, і науковий співробітник. Його пакет легко, масштабує досить великі колекції, і приємно досліджувати результати в Р. (мені подобається, і я звик до розрідженого представлення матриць документів.) Зверніть увагу, LDA реалізує інші моделі, включаючи реляційні тематичні моделі, контрольовані LDA (з GLM) та стохастична блок-модель зі змішаним членством.

Дякую за зважування. Я впевнений, що ldaпакет чудовий, я не мав на увазі, що ldaвін дещо неповноцінний код. Я висловив своє особисте враження (документація видалася трохи неохайною). Оскільки це було> 2 роки тому, я трохи відредагував відповідь (помилки друку на сторінці CRAN все ще є, я думаю, було б добре їх виправити, але цей електронний лист, схоже, загубився).
Момо

Я думаю, у вас є великий досвід роботи з обома пакунками і ви знаєте більшість із загальної теми, як щодо надання відповіді, в якій перераховані деякі плюси та мінуси обох пакетів? Я не користувався lda, тому не міг дати емпіричної оцінки цього. За умови, що це, безумовно, допоможе ОП та всім іншим, а також виправить усі можливі несправедливості (які не були призначені). Спасибі!
Момо

1
Я також спробував і те, і інше, і знайшов ldaпакет, який містить більше варіантів. Однак важко зрозуміти, як відформатувати свої дані, щоб вони вписалися в модель. topicmodelsПакет добре працює з tmпакетом, в той час як ldaпакет запитує список, не ясно , як створити.
Omri374

12

+1 для тематичних моделей . @ Відповідь Момо дуже вичерпна. Я просто додам, що topicmodelsприймає дані як матриці термінів документа, які легко складаються з tmпакетом або з використанням python. У ldaпакеті використовується більш езотерична форма введення (заснована на LDA-C Blei), і мені не пощастило використовувати вбудовані функції для перетворення dtm у ldaформат пакету (документація lda дуже погана, як зазначає Momo).

У мене є певний код , який починається з необробленим текстом, попередньо обробляє його tmі поміщає його через topicmodels( в тому числі знайти оптимальну кількість питань заздалегідь і працювати з виходом) тут . Може бути корисним для когось, хто приходить topicmodelsвперше.


3
Для тих, хто вже не використовує tm і хоче грати з lda , JFreq також розміщує звичайні тексти у бажаному форматі LDA-C.
кон'югатприор

Приємно знати про JFreq, я його раніше не бачив. Дякую за пораду!
Бен

1
Я щойно помітив read_dtm_Blei_et_alфункцію в tmпакеті, який робить те саме.
Бен

3

Пакет «Структурна тема» (STM) від Молі Робертс, Брендона Стюарта та Дастіна Тінглі - також чудовий вибір. Побудований поверх пакету tm - це загальна основа для моделювання тем із коваріативною інформацією на рівні документа.

http://structuraltopicmodel.com/

Пакет STM включає низку методів (пошук в сітці) та заходів (семантична узгодженість, залишки та ексклюзивність) для визначення кількості тем. Встановлення кількості тем у 0 також дозволить моделі визначити оптимальну кількість тем.

Пакет stmBrowser є чудовим доповненням до візуалізації даних для візуалізації впливу зовнішніх змінних на теми. Дивіться цей приклад, пов'язаний з президентськими дебатами 2016 року: http://alexperrier.github.io/stm-visualization/index.html .


0

Я використав усі три бібліотеки, серед усіх 3-х, тим. Моделей, lda, stm; не кожен працює з n грамами. Бібліотека тематичних моделей хороша своєю оцінкою, і вона також працює з n грамами. Але якщо хтось працює з універсальними грамами, тоді практикуючий спеціаліст може віддавати перевагу stm, оскільки він дає структурований вихід.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.