Paket R untuk melakukan pemodelan topik / LDA: cukup `topicmodels` dan` lda` [ditutup]


29

Sepertinya saya bahwa hanya dua paket R yang dapat melakukan Alokasi Dirichlet Latent :

Salah satunya lda, ditulis oleh Jonathan Chang; dan yang lainnya topicmodelsditulis oleh Bettina Grün dan Kurt Hornik.

Apa perbedaan antara kedua paket ini, dalam hal kinerja, detail implementasi, dan ekstensibilitas?

Jawaban:


26

Implementasi: Paket topicmodels menyediakan antarmuka ke kode GSL C dan C ++ untuk model topik oleh Blei et al. dan Phan et al. Untuk yang sebelumnya menggunakan Variational EM, untuk Gibbs Sampling yang terakhir. Lihat http://www.jstatsoft.org/v40/i13/paper . Paket ini berfungsi dengan baik dengan utilitas dari paket tm.

Paket lda menggunakan Gibbs Sampler yang diciutkan untuk sejumlah model yang mirip dengan yang dari perpustakaan GSL. Namun, ini telah diimplementasikan oleh penulis paket itu sendiri, bukan oleh Blei et al. Oleh karena itu implementasi ini berbeda secara umum dari teknik estimasi yang diusulkan dalam makalah asli yang memperkenalkan varian model ini, di mana algoritma VEM biasanya diterapkan. Di sisi lain, paket menawarkan lebih banyak fungsi daripada paket lainnya. Paket ini juga menyediakan fungsionalitas penambangan teks.

Extensibility: Mengenai ekstensibilitas, kode model topik pada dasarnya dapat diperluas untuk antarmuka kode model topik lainnya yang ditulis dalam C dan C ++. Paket lda tampaknya lebih mengandalkan implementasi spesifik yang disediakan oleh penulis, tetapi ada Gibbs sampler yang memungkinkan menentukan model topik Anda sendiri. Untuk masalah ekstensibilitas bukan yang pertama, yang pertama dilisensikan di bawah GPL-2 dan LGPL yang terakhir, jadi itu mungkin tergantung pada apa yang Anda perlu memperpanjang untuk (GPL-2 lebih ketat mengenai aspek open source, yaitu Anda tidak dapat menggunakannya dalam perangkat lunak berpemilik).

Kinerja: Saya tidak dapat membantu Anda di sini, saya hanya menggunakan model topik sejauh ini.

Kesimpulan:
Secara pribadi saya menggunakan topicmodels, karena didokumentasikan dengan baik (lihat makalah JSS di atas) dan saya percaya penulis (Grün juga menerapkan flexmix dan Hornik adalah anggota inti R).


7
Pertama, saya yakin bahwa topicmodels adalah paket yang sangat baik, dan saya setuju bahwa itu didokumentasikan dengan sangat baik. Mengenai "memercayai" para penulis paket LDA, Jonathan Chang adalah mahasiswa PhD saya, dan saya sepenuhnya mempercayai kodenya. Dia adalah seorang insinyur perangkat lunak dan sarjana yang sangat baik. Paketnya mudah, skala untuk koleksi cukup besar, dan itu bagus untuk mengeksplorasi hasil dalam R. (Saya suka dan saya sudah terbiasa dengan representasi matriks dokumen yang jarang.) Dari catatan, LDA mengimplementasikan model lain, termasuk relasional model topik, LDA yang diawasi (dengan GLM), dan model blok stokastik keanggotaan campuran.

Terima kasih telah mempertimbangkan. Saya yakin ldapaketnya bagus, saya tidak bermaksud menyiratkan ldakode yang lebih rendah. Saya menyatakan kesan pribadi saya (dokumentasi tampak agak ceroboh). Karena itu> 2 tahun yang lalu saya mengedit jawabannya sedikit (kesalahan ketik pada halaman CRAN masih ada, saya pikir itu akan baik bagi mereka untuk diperbaiki tetapi email itu sepertinya telah hilang).
Momo

Saya kira Anda memiliki banyak pengalaman dengan kedua paket dan paling tahu tentang topik umum, bagaimana dengan memberikan jawaban daftar beberapa pro dan kontra dari kedua paket? Saya tidak menggunakan lda, jadi saya tidak bisa memberikan penilaian empiris tentang itu. Memberikan hal itu tentunya akan membantu OP dan semua orang serta memperbaiki ketidakadilan yang mungkin terjadi (yang tidak dimaksudkan). Terima kasih!
Momo

1
Saya juga mencoba keduanya, dan menemukan ldapaket berisi lebih banyak opsi. Namun, sulit untuk memahami cara memformat data Anda agar sesuai dengan model. The topicmodelspaket bekerja dengan baik dengan tmpaket, sedangkan ldapaket permintaan daftar yang tidak jelas bagaimana menciptakan.
Omri374

12

+1 untuk model topik . @ Jawaban Momo sangat komprehensif. Saya baru saja menambahkan yang topicmodelsmengambil input sebagai matriks istilah dokumen, yang mudah dibuat dengan tmpaket atau menggunakan python. The ldapaket menggunakan bentuk yang lebih esoteris input (berdasarkan Blei ini LDA-C) dan aku sudah tidak beruntung menggunakan built-in fungsi untuk mengkonversi dtm ke dalam ldaformat paket (dokumentasi lda sangat miskin, sebagai catatan Momo).

Saya memiliki beberapa kode yang dimulai dengan teks mentah, pra-proses dalam tmdan memasukkannya topicmodels(termasuk menemukan jumlah optimal topik di muka dan bekerja dengan output) di sini . Bisa bermanfaat bagi seseorang yang datang topicmodelspertama kali.


3
Bagi mereka yang belum menggunakan tm , dan ingin bermain dengan lda , JFreq juga menempatkan teks biasa dalam format yang disukai LDA-C.
conjugateprior

Senang mengetahui tentang JFreq, saya belum pernah melihatnya. Terima kasih atas tipnya!
Ben

1
Saya baru saja melihat read_dtm_Blei_et_alfungsi dalam tmpaket yang melakukan hal yang sama.
Ben

3

Paket R Structural Topic Model (STM) oleh Molly Roberts, Brandon Stewart dan Dustin Tingley juga merupakan pilihan bagus. Dibangun di atas paket tm, ini merupakan kerangka kerja umum untuk pemodelan topik dengan informasi kovariat tingkat dokumen.

http://strukturaltopicmodel.com/

Paket STM mencakup serangkaian metode (pencarian grid) dan langkah-langkah (koherensi semantik, residual, dan eksklusivitas) untuk menentukan jumlah topik. Mengatur jumlah topik ke 0 juga akan membiarkan model menentukan jumlah topik yang optimal.

Paket stmBrowser adalah pelengkap visualisasi data yang hebat untuk memvisualisasikan pengaruh variabel eksternal pada topik. Lihat contoh ini terkait dengan debat presiden 2016: http://alexperrier.github.io/stm-visualization/index.html .


0

Saya menggunakan ketiga perpustakaan, di antara semua 3 yaitu, topicmodels, lda, stm; tidak semua orang bekerja dengan n gram. Perpustakaan topicmodels bagus dengan estimasi dan juga bekerja dengan n gram. Tetapi jika ada yang bekerja dengan uni gram maka praktisi mungkin lebih suka stm karena memberikan output terstruktur.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.