Konu modellemesi yapmak için R paketleri / LDA: sadece `topicmodels 've` lda` [kapalı]


29

Bana öyle geliyor ki Latent Dirichlet Allocation'ı yalnızca iki R paketi yapabiliyor :

Birincisi, ldaJonathan Chang tarafından yazılmış; Diğeri topicmodelsBettina Grün ve Kurt Hornik tarafından yazılmıştır.

Bu iki paket arasındaki performans, uygulama detayları ve genişletilebilirlik açısından farklar nelerdir?

Yanıtlar:


26

Uygulama: topicmodels paketi, Blei ve arkadaşlarının konu modelleri için GSL C ve C ++ koduna bir arayüz sağlar. ve Phan ve diğ. Daha önceleri Gibbs Sampling için, ikincil olarak Variational EM kullanır. Http://www.jstatsoft.org/v40/i13/paper adresine bakın . Paket, tm paketindeki yardımcı programlarla iyi çalışır.

İda paketi, GSL kütüphanesindekilere benzer birkaç model için daraltılmış bir Gibbs Sampler kullanır. Bununla birlikte, Blei ve diğ. Bu nedenle bu uygulama genel olarak, VEM algoritmasının genellikle uygulandığı bu model varyantlarını tanıtan orijinal makalelerde önerilen tahmin tekniğinden farklıdır. Öte yandan, paket diğer paketten daha fazla işlevsellik sunar. Paket, metin incelemesi işlevini de sağlar.

Genişletilebilirlik: Genişletilebilirlik ile ilgili olarak, konu modelinin kodu, doğası gereği, C ve C ++ ile yazılmış diğer konu modeli kodunun arayüzüne genişletilebilir. İda paketi, yazarlar tarafından sağlanan özel uygulamaya daha çok güveniyor gibi görünmektedir, ancak Gibbs örnekleyici kendi konu modelinizi belirlemenize izin verebilir. Bence genişletilebilirlik sorunları için, eski GPL-2 ve LGPL lisansı altında lisanslıdır, bu nedenle ne için genişletmeniz gerektiğine bağlı olabilir (GPL-2 açık kaynak boyutunda daha katıdır, yani kullanamazsınız. tescilli yazılımlarda).

Performans: Size burada yardımcı olamam, sadece şu ana kadar konu modellerini kullandım.

Sonuç:
Kişisel topicmodelsolarak iyi belgelendiği için kullanıyorum (yukarıdaki JSS belgesine bakınız) ve yazarlara güveniyorum (Grün ayrıca flexmix uyguladı ve Hornik R çekirdek üyesidir).


7
Öncelikle, konu modellerinin mükemmel bir paket olduğuna eminim ve çok iyi belgelendiğine katılıyorum. LDA paketinin yazarlarına "güvenme" konusunda Jonathan Chang, doktora öğrencimdi ve koduna tamamen güveniyorum. Hem mükemmel bir yazılım mühendisi hem de bilgindir. Paketi kolaydır, oldukça büyük koleksiyonlara iyi ölçeklenir ve sonuçları R'de araştırmak iyidir. (Seviyorum ve ben belgelerin seyrek matris temsiline alışkınım.) Konu modelleri, denetimli LDA (GLM ile) ve karma üyelikli stokastik blok model.

Tarttığınız için teşekkür ederiz. ldaPaketin harika olduğundan eminim, ldabunun bir şekilde daha düşük kodlu olduğunu ima etmek istemedim . Kişisel izlenimimi söyledim (belgeler biraz özensiz görünüyordu). Bu,> 2 yıl önce olduğundan, cevabı biraz düzenlemiştim (CRAN sayfasındaki yazım hataları hala orada, düzeltilmelerinin iyi olacağını düşünüyorum ama bu e-postanın kaybolmuş gibi göründüğünü).
Momo

Her iki pakette de çok fazla deneyiminiz olduğunu ve genel konu hakkında en çok şey bildiğinizi düşünüyorum, peki her iki paketin de artılarını ve eksilerini listeleyen bir cevap sunmaya ne dersiniz? Ben kullanmadım ldaben bunu ampirik değerlendirmesini veremedim bu yüzden. Bunun sağlanması, OP'ye ve diğer herkese kesinlikle yardımcı olacak ve olası herhangi bir adaletsizliği (amaçlanmayan) düzeltir. Teşekkürler!
Momo

1
Her ikisini de denedim ve ldadaha fazla seçenek içerecek paketi buldum . Ancak, verilerinizi modele sığması için nasıl biçimlendireceğinizi anlamak zor. topicmodelsPaket ile iyi çalışır tmiken, paketin ldapaket nasıl oluşturulacağı belli değil listesini ister.
Omri374

12

Konu modelleri için +1 . @ Momo'nun cevabı çok kapsamlı. Ben sadece bu topicmodelsgirdiyi, tmpaketle veya python kullanarak kolayca yapılan belge terim matrisleri olarak alır . ldaPaketi (Blei en LDA-C dayanarak) girdinin daha ezoterik formu kullanır ve kullanıyorum hiç şans yaşadım yerleşik içine dönüştürme DTM fonksiyonları ldapaket biçimi (lda belgeleri Momo notlar gibi, çok kötü).

Ben çiğ metinle başlar, bazı kod var bunu önceden işler tmve içinden koyar onu topicmodels(önceden konuların optimum sayıda bulma ve çıkışı ile çalışan dahil) burada . topicmodelsİlk kez gelen biri için faydalı olabilir .


3
Zaten tm kullanmayan ve lda ile oynamak isteyenler için , JFreq ayrıca düz metinleri LDA-C'nin tercih edilen biçimine yerleştirir.
conjugateprior

JFreq hakkında bilmek güzel, daha önce görmedim. Bahşiş için teşekkürler!
Ben

1
Az önce aynı şeyi read_dtm_Blei_et_alyapan tmpaketteki işlevi gördüm .
Ben

3

Molly Roberts, Yapısal Konu Model (STM) paketi, Brandon Stewart ve Dustin Tingley de harika bir seçim. Tm paketi üzerine inşa edilmiş olup, belge düzeyinde değişken bilgiler içeren konu modellemesi için genel bir çerçevedir.

http://structuraltopicmodel.com/

STM paketi, konu sayısını belirlemek için bir dizi yöntem (ızgara arama) ve önlemleri (anlamsal tutarlılık, artıklar ve münhasırlık) içerir. Konu sayısının 0 olarak ayarlanması, modelin optimum sayıda konu belirlemesini sağlayacaktır.

StmBrowser paketi, harici değişkenlerin konular üzerindeki etkisini görselleştirmek için mükemmel bir veri görselleştirme tamamlayıcısıdır. 2016 başkanlık tartışmaları ile ilgili bu örneğe bakın: http://alexperrier.github.io/stm-visualization/index.html .


0

I used all three libraries, among all 3 viz., topicmodels, lda, stm; not everyone works with n grams. The topicmodels library is good with its estimation and it also work with n grams. But if anyone is working with uni grams then the practitioner may preferred stm as it gives structured output.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.