แพ็กเกจ R สำหรับการสร้างแบบจำลองหัวข้อ / LDA: เพียง `topicmodels` และ` lda` [ปิด]


29

สำหรับฉันดูเหมือนว่ามีเพียงสองแพ็คเกจ R เท่านั้นที่สามารถดำเนินการจัดสรร Latent Dirichlet :

หนึ่งคือldaประพันธ์โดย Jonathan Chang; และอื่น ๆ ที่topicmodelsเขียนโดย Bettina Grünและ Kurt Hornik

อะไรคือความแตกต่างระหว่างสองแพ็คเกจนี้ในแง่ของประสิทธิภาพรายละเอียดการติดตั้งและการใช้งานที่เพิ่มขึ้น?

คำตอบ:


26

การนำไปใช้งาน: แพคเกจ topicmodels จัดเตรียมอินเทอร์เฟซให้กับรหัส GSL C และ C ++ สำหรับรุ่นหัวข้อโดย Blei et al และ Phan et al. สำหรับก่อนหน้านี้ใช้ Variational EM สำหรับการสุ่มตัวอย่างแบบกิ๊บส์หลัง ดูhttp://www.jstatsoft.org/v40/i13/paper แพคเกจใช้งานได้ดีกับยูทิลิตี้จากแพ็คเกจ tm

แพ็คเกจ lda ใช้ Gibbs Sampler ที่ยุบแล้วสำหรับโมเดลจำนวนหนึ่งที่คล้ายกับที่มาจากไลบรารี GSL อย่างไรก็ตามมันถูกนำไปใช้โดยผู้เขียนแพ็คเกจเองไม่ใช่โดย Blei และคณะ การดำเนินการนี้จึงแตกต่างกันโดยทั่วไปจากเทคนิคการประมาณค่าที่เสนอในเอกสารต้นฉบับแนะนำตัวแปรรุ่นซึ่งมักใช้อัลกอริทึม VEM ในทางตรงกันข้ามแพคเกจมีฟังก์ชันการใช้งานมากขึ้นจากนั้นแพ็คเกจอื่น ๆ แพ็คเกจนี้ยังมีฟังก์ชั่นการขุดข้อความด้วย

ความสามารถในการขยาย: เกี่ยวกับความสามารถในการขยายเพิ่ม, หัวข้อรหัสรุ่นตามธรรมชาติสามารถขยายไปยังส่วนต่อประสานโค้ดโมเดลหัวข้ออื่น ๆ ที่เขียนใน C และ C ++ แพคเกจ lda ดูเหมือนว่าจะขึ้นอยู่กับการใช้งานที่เฉพาะเจาะจงของผู้เขียน แต่มีตัวอย่างกิ๊บส์อาจอนุญาตให้ระบุรูปแบบหัวข้อของคุณเอง สำหรับปัญหาเรื่องการขยายตัวอดีตนั้นได้รับใบอนุญาตภายใต้ GPL-2 และ LGPL รุ่นหลังดังนั้นมันอาจขึ้นอยู่กับสิ่งที่คุณต้องใช้ในการขยาย (GPL-2 นั้นเข้มงวดกับแง่มุมของโอเพ่นซอร์สนั่นคือคุณไม่สามารถใช้งานได้ ในซอฟต์แวร์ที่เป็นกรรมสิทธิ์)

การแสดง: ฉันไม่สามารถช่วยคุณได้ที่นี่ฉันใช้แค่หัวข้อหัวข้อเท่านั้น

สรุป: โดย
ส่วนตัวแล้วฉันใช้topicmodelsเพราะเป็นเอกสารที่ดี (ดูกระดาษ JSS ด้านบน) และฉันเชื่อใจผู้แต่ง (Grünใช้ flexmix และ Hornik เป็นสมาชิกแกน R)


7
ครั้งแรกฉันแน่ใจว่ารุ่นหัวข้อเป็นแพ็คเกจที่ยอดเยี่ยมและฉันเห็นด้วยว่ามีการบันทึกไว้เป็นอย่างดี เกี่ยวกับ "ความไว้วางใจ" ผู้เขียนแพ็คเกจ LDA โจนาธานชางเป็นนักศึกษาปริญญาเอกของฉันและฉันก็เชื่อมั่นในรหัสของเขาอย่างสมบูรณ์ เขาเป็นทั้งวิศวกรซอฟต์แวร์และนักวิชาการที่ยอดเยี่ยม แพคเกจของเขาเป็นเรื่องง่ายปรับขนาดได้ดีกับคอลเลกชันขนาดใหญ่และมันเป็นเรื่องที่ดีในการสำรวจผลลัพธ์ในอาร์ (ฉันชอบและฉันคุ้นเคยกับการแสดงเอกสารแบบกระจัดกระจายเมทริกซ์) จากบันทึกย่อ LDA ใช้โมเดลอื่น ๆ โมเดลหัวข้อ, LDA ภายใต้การดูแล (พร้อม GLM) และ blockmodel stochastic แบบผสมสมาชิก

ขอบคุณสำหรับการชั่งน้ำหนักฉันแน่ใจว่าldaบรรจุภัณฑ์นั้นยอดเยี่ยมฉันไม่ได้ตั้งใจจะบอกว่าldaมีรหัสที่ด้อยกว่าอย่างใด ฉันระบุความประทับใจส่วนตัวของฉัน (เอกสารปรากฏว่าเลอะเทอะ) ตั้งแต่นั้นมา> 2 ปีที่แล้วฉันแก้ไขคำตอบเล็กน้อย (พิมพ์ผิดที่หน้า CRAN ยังคงอยู่ที่นั่นฉันคิดว่ามันคงดีสำหรับพวกเขาที่จะได้รับการแก้ไข แต่อีเมลนั้นดูเหมือนว่าจะหายไป)
Momo

ฉันเดาว่าคุณมีประสบการณ์มากมายกับทั้งแพ็คเกจและรู้มากที่สุดเกี่ยวกับหัวข้อทั่วไปแล้วจะให้คำตอบเกี่ยวกับข้อดีข้อเสียของแพ็คเกจทั้งสองอย่างไร ฉันไม่ได้ใช้ldaดังนั้นฉันจึงไม่สามารถให้การประเมินเชิงประจักษ์ได้ หากว่านั่นจะช่วย OP และคนอื่น ๆ ตลอดจนแก้ไขความอยุติธรรมที่อาจเกิดขึ้นได้ (ซึ่งไม่ได้ตั้งใจ) ขอบคุณ!
Momo

1
ฉันลองทั้งสองอย่างและพบldaแพ็คเกจที่มีตัวเลือกเพิ่มเติม อย่างไรก็ตามมันเป็นเรื่องยากที่จะเข้าใจวิธีการจัดรูปแบบข้อมูลของคุณเพื่อให้พอดีกับรูปแบบ topicmodelsแพคเกจทำงานได้ดีกับtmแพคเกจในขณะที่ldaแพคเกจการร้องขอรายการซึ่งไม่ชัดเจนถึงวิธีการสร้าง
Omri374

12

+1 สำหรับรุ่นของหัวข้อ @ คำตอบของ Momo นั้นครอบคลุมมาก ฉันแค่เพิ่มที่topicmodelsจะป้อนข้อมูลเป็นเมทริกซ์คำศัพท์เอกสารซึ่งทำง่ายกับtmแพคเกจหรือใช้หลาม ldaแพคเกจใช้รูปแบบที่ลึกลับมากขึ้นของการป้อนข้อมูล (ขึ้นอยู่กับ Blei ของ LDA-C) และฉันได้มีโชคไม่ใช้ฟังก์ชั่นการแปลง DTM ลงไปในldaรูปแบบแพคเกจ (เอกสาร Lda เป็นที่น่าสงสารมากเป็นบันทึก Momo)

ฉันมีรหัสบางอย่างที่เริ่มต้นด้วยข้อความดิบก่อนประมวลผลในtmและทำให้มันผ่านtopicmodels(รวมถึงการหาจำนวนที่เหมาะสมของหัวข้อล่วงหน้าและการทำงานกับการส่งออก) ที่นี่ อาจเป็นประโยชน์กับคนที่มาtopicmodelsเป็นครั้งแรก


3
สำหรับผู้ที่ไม่ได้ใช้TM , และต้องการที่จะเล่นกับLda , JFreqยังทำให้ข้อความธรรมดาในรูปแบบที่ต้องการ LDA-C
conjugateprior

เป็นการดีที่จะรู้เกี่ยวกับ JFreq ฉันไม่เคยเห็นมาก่อน ขอบคุณสำหรับทิป!
Ben

1
ฉันเพิ่งเห็นread_dtm_Blei_et_alฟังก์ชันในtmแพ็คเกจซึ่งทำสิ่งเดียวกัน
Ben

3

แพ็คเกจ R Structural Topic Model (STM) โดย Molly Roberts, Brandon Stewart และ Dustin Tingley ก็เป็นตัวเลือกที่ยอดเยี่ยมเช่นกัน สร้างขึ้นบนแพ็คเกจ tm เป็นกรอบทั่วไปสำหรับการสร้างแบบจำลองหัวข้อด้วยข้อมูลระดับเอกสาร

http://structuraltopicmodel.com/

แพคเกจ STM ประกอบด้วยชุดวิธีการ (การค้นหากริด) และการวัด (การเชื่อมโยงความหมายความหมายส่วนที่เหลือและการผูกขาด) เพื่อกำหนดจำนวนหัวข้อ การตั้งค่าจำนวนหัวข้อเป็น 0 จะช่วยให้โมเดลกำหนดจำนวนหัวข้อที่เหมาะสมที่สุด

แพคเกจ stmBrowser เป็นข้อมูลประกอบการสร้างภาพข้อมูลที่ดีในการมองเห็นอิทธิพลของตัวแปรภายนอกในหัวข้อ ดูตัวอย่างนี้ที่เกี่ยวข้องกับ 2016 อภิปรายประธานาธิบดี: http://alexperrier.github.io/stm-visualization/index.html


0

ฉันใช้ทั้งสามไลบรารีในทั้ง 3 ได้แก่ ได้แก่ topicmodels, lda, stm; ไม่ใช่ทุกคนที่ทำงานกับ n กรัม ไลบรารี topicmodels นั้นดีกับการประมาณค่าและยังทำงานกับ ng ด้วย แต่ถ้าใครทำงานกับ uni กรัมแล้วผู้ฝึกหัดอาจชอบ stm เพราะมันให้ผลลัพธ์ที่มีโครงสร้าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.