โทโมปอปิ
ภาษาอังกฤษ 한국어.
tomotopy คืออะไร?
Tomotopy เป็นส่วนขยายของ Python ของ Tomoto (เครื่องมือการสร้างแบบจำลองหัวข้อ) ซึ่งเป็นไลบรารีโมเดลหัวข้อที่เขียนด้วย Gibbs-sampling ที่เขียนใน C ++ มันใช้เวกเตอร์ของซีพียูที่ทันสมัยเพื่อเพิ่มความเร็วสูงสุด Tomoto เวอร์ชันปัจจุบันรองรับหัวข้อสำคัญหลายฉบับรวมถึง
- การจัดสรร Dirichlet แฝง (tomotopy.ldamodel)
- LABLEED LDA (tomotopy.lldamodel)
- LDA ที่มีป้ายกำกับบางส่วน (tomotopy.pldamodel)
- ดูแล LDA (tomotopy.sldamodel)
- Dirichlet Multinomial Regression (tomotopy.dmrmodel)
- การถดถอยแบบพหุคูณ Dirichlet ทั่วไป (tomotopy.gdmrmodel)
- กระบวนการ dirichlet แบบลำดับชั้น (tomotopy.hdpmodel)
- ลำดับชั้น LDA (tomotopy.hldamodel)
- Multi Grain LDA (tomotopy.mgldamodel)
- การจัดสรร Pachinko (tomotopy.pamodel)
- ลำดับชั้น PA (tomotopy.hpamodel)
- โมเดลหัวข้อที่สัมพันธ์กัน (tomotopy.ctmodel)
- โมเดลหัวข้อไดนามิก (tomotopy.dtmodel)
- รูปแบบหัวข้อตามเอกสารหลอก (tomotopy.ptmodel)
กรุณาเยี่ยมชม https://bab2min.github.io/tomotopy เพื่อดูข้อมูลเพิ่มเติม
เริ่มต้น
คุณสามารถติดตั้ง tomotopy ได้อย่างง่ายดายโดยใช้ PIP (https://pypi.org/project/tomotopy/)
$ PIP Install -การอัพเกรด PIP
$ pip ติดตั้ง tomotopy
เวอร์ชัน OS และ Python ที่รองรับคือ:
- Linux (x86-64) ด้วย Python> = 3.6
- macOS> = 10.13 ด้วย python> = 3.6
- Windows 7 หรือใหม่กว่า (x86, x86-64) กับ Python> = 3.6
- ระบบปฏิบัติการอื่น ๆ ที่มี Python> = 3.6: การรวบรวมจากซอร์สโค้ดที่ต้องการ (พร้อมคอมไพเลอร์ที่ใช้งานร่วมกันได้ C ++ 14)
หลังจากติดตั้งคุณสามารถเริ่มต้น tomotopy ได้โดยเพียงแค่นำเข้า
นำเข้า tomotopy เป็น TP
พิมพ์ (tp.isa) # พิมพ์ 'avx2', 'avx', 'sse2' หรือ 'ไม่มี'
ปัจจุบัน Tomotopy สามารถใช้ประโยชน์จากชุดคำสั่ง AVX2, AVX หรือ SSE2 SIMD เพื่อเพิ่มประสิทธิภาพสูงสุด เมื่อนำเข้าแพ็คเกจจะตรวจสอบชุดคำสั่งที่มีอยู่และเลือกตัวเลือกที่ดีที่สุด หาก tp.isa บอกว่าการทำซ้ำการฝึกอบรมอาจใช้เวลานาน แต่เนื่องจาก Intel หรือ AMD CPU ที่ทันสมัยส่วนใหญ่มีชุดคำสั่ง SIMD การเร่งความเร็วของ SIMD สามารถแสดงการปรับปรุงครั้งใหญ่ได้
นี่คือรหัสตัวอย่างสำหรับการฝึกอบรม LDA อย่างง่ายของข้อความจากไฟล์ 'sample.txt'
นำเข้า tomotopy เป็น TP
mdl = tp.ldamodel (k = 20)
สำหรับบรรทัดในการเปิด ('sample.txt'):
mdl.add_doc (line.strip (). split ())
สำหรับ i ในช่วง (0, 100, 10):
mdl.train (10)
พิมพ์ ('การวนซ้ำ: {} tlog-likelihood: {}'. รูปแบบ (i, mdl.ll_per_word)))
สำหรับ k ในช่วง (mdl.k):
พิมพ์ ('10 อันดับแรกของหัวข้อ #{}' รูปแบบ (k))
พิมพ์ (mdl.get_topic_words (k, top_n = 10))
mdl.summary ()
ประสิทธิภาพของ tomotopy
Tomotopy ใช้ Gibbs-Sampling (CGS) เพื่ออนุมานการกระจายของหัวข้อและการกระจายของคำ โดยทั่วไป CGS มาบรรจบกันช้ากว่า Bayes Variational (VB) ที่ Ldamodel ของ Gensim ใช้ แต่การทำซ้ำของมันสามารถคำนวณได้เร็วขึ้นมาก นอกจากนี้ Tomotopy สามารถใช้ประโยชน์จากซีพียูหลายตัวด้วยชุดคำสั่ง SIMD ซึ่งอาจส่งผลให้เกิดการทำซ้ำเร็วขึ้น
แผนภูมิต่อไปนี้แสดงการเปรียบเทียบเวลาทำงานของรุ่น LDA ระหว่าง tomotopy และ gensim ข้อมูลอินพุตประกอบด้วยเอกสารสุ่ม 1,000 ฉบับจากวิกิพีเดียภาษาอังกฤษที่มี 1,506,966 คำ (ประมาณ 10.1 MB) Tomotopy รถไฟวนซ้ำ 200 ครั้งและรถไฟ Gensim 10 ซ้ำ
ประสิทธิภาพใน Intel i5-6600, x86-64 (4 คอร์)
ประสิทธิภาพใน Intel Xeon E5-2620 V4, X86-64 (8 คอร์, 16 เธรด)
แม้ว่า Tomotopy จะวนซ้ำมากขึ้น 20 เท่าเวลาทำงานโดยรวมนั้นเร็วกว่า Gensim 5 ~ 10 เท่า และมันให้ผลลัพธ์ที่มั่นคง
เป็นการยากที่จะเปรียบเทียบ CGS และ VB โดยตรงเพราะเป็นเทคนิคที่แตกต่างกันโดยรวม แต่จากมุมมองที่ใช้งานได้จริงเราสามารถเปรียบเทียบความเร็วและผลลัพธ์ระหว่างพวกเขา แผนภูมิต่อไปนี้แสดงความน่าจะเป็นบันทึกต่อผลลัพธ์ของสองรุ่น
ชุดคำสั่ง SIMD มีผลอย่างมากต่อประสิทธิภาพ ต่อไปนี้เป็นการเปรียบเทียบระหว่างชุดคำสั่ง SIMD
โชคดีที่ซีพียู X86-64 ล่าสุดให้ชุดคำแนะนำ AVX2 ดังนั้นเราจึงสามารถเพลิดเพลินกับการแสดงของ AVX2
โมเดลบันทึกและโหลด
Tomotopy ให้วิธีการบันทึกและโหลดสำหรับคลาสโมเดลแต่ละหัวข้อดังนั้นคุณสามารถบันทึกโมเดลลงในไฟล์ได้ทุกเมื่อที่คุณต้องการและโหลดใหม่จากไฟล์
นำเข้า tomotopy เป็น TP
mdl = tp.hdpmodel ()
สำหรับบรรทัดในการเปิด ('sample.txt'):
mdl.add_doc (line.strip (). split ())
สำหรับ i ในช่วง (0, 100, 10):
mdl.train (10)
พิมพ์ ('การวนซ้ำ: {} tlog-likelihood: {}'. รูปแบบ (i, mdl.ll_per_word)))
# บันทึกลงในไฟล์
mdl.save ('sample_hdp_model.bin')
# โหลดจากไฟล์
mdl = tp.hdpmodel.load ('sample_hdp_model.bin')
สำหรับ k ในช่วง (mdl.k):
ถ้าไม่ใช่ mdl.is_live_topic (k): ดำเนินการต่อ
พิมพ์ ('10 อันดับแรกของหัวข้อ #{}' รูปแบบ (k))
พิมพ์ (mdl.get_topic_words (k, top_n = 10))
# โมเดลที่บันทึกไว้คือรุ่น HDP
# ดังนั้นเมื่อคุณโหลดโดยรุ่น LDA มันจะยกข้อยกเว้น
mdl = tp.ldamodel.load ('sample_hdp_model.bin')
เมื่อคุณโหลดโมเดลจากไฟล์ประเภทรุ่นในไฟล์ควรตรงกับคลาสของวิธีการ
ดูเพิ่มเติมได้ที่ tomotopy.ldamodel.save และ tomotopy.ldamodel.load วิธีการ
ผู้ชมโมเดลแบบอินเทอร์แอคทีฟ
interactive_model_viewer_demo.mp4
คุณสามารถดูผลลัพธ์ของการสร้างแบบจำลองโดยใช้ตัวชมเชิงโต้ตอบตั้งแต่ v0.13.0
นำเข้า tomotopy เป็น TP
model = tp.ldamodel (... )
# ... รหัสฝึกอบรมบางอย่าง ...
tp.viewer.open_viewer (รุ่น, host = "localhost", พอร์ต = 9999)
# และเปิด http: // localhost: 9999 ในเว็บเบราว์เซอร์ของคุณ!
หากคุณมีไฟล์โมเดลที่บันทึกไว้คุณสามารถใช้บรรทัดคำสั่งต่อไปนี้
python -m tomotopy.viewer a_trained_model.bin -โฮสต์ localhost -พอร์ต 9999
ดูเพิ่มเติมได้ที่โมดูล tomotopy.viewer
เอกสารในโมเดลและออกจากโมเดล
เราสามารถใช้รูปแบบหัวข้อเพื่อวัตถุประสงค์หลักสองประการ สิ่งพื้นฐานคือการค้นพบหัวข้อจากชุดเอกสารอันเป็นผลมาจากรูปแบบที่ผ่านการฝึกอบรมและขั้นสูงมากขึ้นคือการอนุมานการแจกแจงหัวข้อสำหรับเอกสารที่มองไม่เห็นโดยใช้แบบจำลองที่ผ่านการฝึกอบรม
เราตั้งชื่อเอกสารในวัตถุประสงค์เดิม (ใช้สำหรับการฝึกอบรมแบบจำลอง) เป็น เอกสารในโมเดล และเอกสารในวัตถุประสงค์ในภายหลัง (เอกสารที่มองไม่เห็นในระหว่างการฝึกอบรม) เป็น เอกสารจากโมเดล
ใน tomotopy เอกสารทั้งสองชนิดนี้ถูกสร้างขึ้นแตกต่างกัน เอกสารในโมเดล สามารถสร้างได้โดยวิธี tomotopy.ldamodel.add_doc add_doc สามารถเรียกได้ก่อน tomotopy.ldamodel.train เริ่มต้น กล่าวอีกนัยหนึ่งหลังจากรถไฟเรียกว่า ADD_DOC ไม่สามารถเพิ่มเอกสารลงในโมเดลได้เนื่องจากชุดของเอกสารที่ใช้สำหรับการฝึกอบรมได้รับการแก้ไข
ในการรับอินสแตนซ์ของเอกสารที่สร้างขึ้นคุณควรใช้ tomotopy.ldamodel.docs เช่น:
mdl = tp.ldamodel (k = 20)
idx = mdl.add_doc (คำ)
ถ้า idx <0: เพิ่ม RuntimeRor ("ไม่สามารถเพิ่ม DOC")
doc_inst = mdl.docs [idx]
# doc_inst เป็นอินสแตนซ์ของเอกสารเพิ่มเติม
เอกสารจากโมเดล ถูกสร้างขึ้นโดยวิธี tomotopy.ldamodel.make_doc Make_Doc สามารถเรียกได้หลังจากเริ่มรถไฟเท่านั้น หากคุณใช้ make_doc ก่อนชุดเอกสารที่ใช้สำหรับการฝึกอบรมได้รับการแก้ไขคุณอาจได้รับผลลัพธ์ที่ผิด เนื่องจาก Make_DOC ส่งคืนอินสแตนซ์โดยตรงคุณสามารถใช้ค่าส่งคืนสำหรับการจัดการอื่น ๆ
mdl = tp.ldamodel (k = 20)
# add_doc ...
mdl.train (100)
doc_inst = mdl.make_doc (unseen_doc) # doc_inst เป็นอินสแตนซ์ของเอกสารที่มองไม่เห็น
การอนุมานสำหรับเอกสารที่มองไม่เห็น
หากเอกสารใหม่ถูกสร้างขึ้นโดย tomotopy.ldamodel.make_doc การกระจายหัวข้อของมันสามารถอนุมานได้โดยโมเดล การอนุมานสำหรับเอกสารที่มองไม่เห็นควรดำเนินการโดยใช้วิธี tomotopy.ldamodel.infer
mdl = tp.ldamodel (k = 20)
# add_doc ...
mdl.train (100)
doc_inst = mdl.make_doc (unseen_doc)
topic_dist, ll = mdl.infer (doc_inst)
พิมพ์ ("การกระจายหัวข้อสำหรับเอกสารที่มองไม่เห็น:", topic_dist)
พิมพ์ ("บันทึกการอนุมาน:", ll)
วิธีการอนุมานสามารถอนุมานได้เพียงหนึ่งอินสแตนซ์ของ tomotopy.document หรือรายการอินสแตนซ์ของ tomotopy.document ดูเพิ่มเติมที่ tomotopy.ldamodel.infer
คลังข้อมูลและการแปลง
ทุกรูปแบบหัวข้อใน Tomotopy มีประเภทเอกสารภายในของตัวเอง เอกสารสามารถสร้างและเพิ่มลงในแต่ละรุ่นผ่านวิธี ADD_DOC ของแต่ละรุ่น อย่างไรก็ตามการพยายามเพิ่มรายการเอกสารเดียวกันในโมเดลที่แตกต่างกันนั้นค่อนข้างไม่สะดวกเพราะควรเรียกใช้สำหรับรายการเอกสารเดียวกันกับแต่ละรุ่นที่แตกต่างกัน ดังนั้น tomotopy ให้คลาส tomotopy.utils.corpus ที่เก็บรายการเอกสาร tomotopy.utils.corpus สามารถแทรกลงในโมเดลใด ๆ โดยส่งเป็นอาร์กิวเมนต์คลังข้อมูลไปยัง __Init__ หรือ add_corpus ของแต่ละรุ่น ดังนั้นการแทรก tomotopy.utils.corpus มีผลเช่นเดียวกันกับการแทรกเอกสารที่คลังข้อมูลถือ
รูปแบบบางหัวข้อต้องการข้อมูลที่แตกต่างกันสำหรับเอกสาร ตัวอย่างเช่น tomotopy.dmrmodel ต้องใช้เมตาดาต้าอาร์กิวเมนต์ในประเภท str แต่ tomotopy.pldamodel ต้องการป้ายกำกับการโต้แย้งในรายการ [str] ประเภท เนื่องจาก tomotopy.utils.corpus ถือชุดเอกสารอิสระแทนที่จะเชื่อมโยงกับรูปแบบหัวข้อเฉพาะประเภทข้อมูลที่ต้องการโดยรูปแบบหัวข้ออาจไม่สอดคล้องกันเมื่อคลังข้อมูลถูกเพิ่มเข้าไปในโมเดลหัวข้อนั้น ในกรณีนี้ข้อมูลเบ็ดเตล็ดสามารถเปลี่ยนเป็นรูปแบบหัวข้อเป้าหมายที่ติดตั้งโดยใช้การแปลงอาร์กิวเมนต์ ดูรายละเอียดเพิ่มเติมในรหัสต่อไปนี้:
จากการนำเข้า tomotopy dmrmodel
จาก tomotopy.utils นำเข้าคลังข้อมูล
corpus = corpus ()
corpus.add_doc ("abcde" .split (), a_data = 1)
corpus.add_doc ("efghi" .split (), a_data = 2)
corpus.add_doc ("ijklm" .split (), a_data = 3)
model = dmrmodel (k = 10)
model.add_corpus (Corpus)
# คุณสูญเสียฟิลด์ `a_data` ใน` corpus '
# และ `metadata` ที่` dmrmodel` ต้องการเต็มไปด้วยค่าเริ่มต้น, str ว่างเปล่า
ยืนยัน model.docs [0] .metadata == ''
ยืนยัน model.docs [1] .metadata == ''
ยืนยัน model.docs [2] .metadata == ''
def transform_a_data_to_metadata (MISC: DICT):
return {'metadata': str (misc ['a_data'])}
# ฟังก์ชั่นนี้แปลง `a_data` เป็น` metadata '
model = dmrmodel (k = 10)
model.add_corpus (corpus, transform = transform_a_data_to_metadata)
# ตอนนี้เอกสารใน `model` มี metadata` metadata 'ซึ่งสร้างจากฟิลด์ `a_data`
ยืนยัน model.docs [0] .metadata == '1'
ยืนยัน model.docs [1] .metadata == '2'
ยืนยัน model.docs [2] .metadata == '3'
อัลกอริทึมการสุ่มตัวอย่างแบบขนาน
ตั้งแต่เวอร์ชัน 0.5.0 Tomotopy อนุญาตให้คุณเลือกอัลกอริทึมแบบขนาน อัลกอริทึมที่ให้ไว้ในเวอร์ชันก่อน 0.4.2 คือ Copy_merge ซึ่งมีให้สำหรับทุกรุ่นหัวข้อ พาร์ติชันอัลกอริทึมใหม่ที่มีตั้งแต่ 0.5.0 ทำให้การฝึกอบรมโดยทั่วไปเร็วขึ้นและประหยัดหน่วยความจำได้มากขึ้น แต่มีให้เลือกทุกรุ่น
แผนภูมิต่อไปนี้แสดงความแตกต่างของความเร็วระหว่างอัลกอริทึมทั้งสองตามจำนวนหัวข้อและจำนวนคนงาน
ประสิทธิภาพตามเวอร์ชัน
การเปลี่ยนแปลงประสิทธิภาพโดยเวอร์ชันจะแสดงในกราฟต่อไปนี้ เวลาที่ใช้ในการวิ่งรถไฟรุ่น LDA ด้วยการทำซ้ำ 1,000 ครั้ง (เอกสาร: 11314, คำศัพท์: 60382, คำ: 2364724, Intel Xeon Gold 5120 @2.2GHz)
หัวข้อ pining โดยใช้ Word Priors
ตั้งแต่เวอร์ชัน 0.6.0 มีการเพิ่มวิธีการ tomotopy.ldamodel.set_word_prior แล้ว ช่วยให้คุณสามารถควบคุมคำก่อนสำหรับแต่ละหัวข้อ ตัวอย่างเช่นเราสามารถกำหนดน้ำหนักของคำว่า 'คริสตจักร' เป็น 1.0 ในหัวข้อ 0 และน้ำหนักเป็น 0.1 ในส่วนที่เหลือของหัวข้อโดยทำตามรหัส ซึ่งหมายความว่าความน่าจะเป็นที่คำว่า 'คริสตจักร' ถูกกำหนดให้กับหัวข้อ 0 นั้นสูงกว่าความน่าจะเป็นที่จะได้รับมอบหมายให้หัวข้ออื่น 10 เท่า ดังนั้น 'คริสตจักร' ส่วนใหญ่จึงได้รับมอบหมายให้เป็นหัวข้อ 0 ดังนั้นหัวข้อ 0 จึงมีคำมากมายที่เกี่ยวข้องกับ 'คริสตจักร' สิ่งนี้ช่วยให้สามารถจัดการหัวข้อบางหัวข้อได้ที่หมายเลขหัวข้อเฉพาะ
นำเข้า tomotopy เป็น TP
mdl = tp.ldamodel (k = 20)
# เพิ่มเอกสารลงใน `mdl`
# การตั้งค่าคำก่อน
mdl.set_word_prior ('โบสถ์', [1.0 ถ้า k == 0 0.1 สำหรับ k ในช่วง (20)])
ดู word_prior_example ในตัวอย่าง py สำหรับรายละเอียดเพิ่มเติม
ตัวอย่าง
คุณสามารถค้นหาตัวอย่างรหัส Python ของ tomotopy ได้ที่ https://github.com/bab2min/tomotopy/blob/main/examples/
นอกจากนี้คุณยังสามารถรับไฟล์ข้อมูลที่ใช้ในรหัสตัวอย่างได้ที่ https://drive.google.com/file/d/18opnijd4iwpyyz2o7pqopopyetakexa71j/view
ใบอนุญาต
Tomotopy ได้รับใบอนุญาตภายใต้ข้อกำหนดของใบอนุญาต MIT ซึ่งหมายความว่าคุณสามารถใช้มันเพื่อวัตถุประสงค์ที่สมเหตุสมผลและยังคงเป็นเจ้าของเอกสารทั้งหมดที่คุณผลิต
ประวัติศาสตร์
- 0.13.0 (2024-08-05)
- คุณสมบัติใหม่
- คุณสมบัติที่สำคัญของ Topic Model Viewer tomotopy.viewer.open_viewer () พร้อมแล้ว
- เพิ่ม tomotopy.ldamodel.get_hash () คุณสามารถรับค่าแฮช 128 บิตของโมเดล
- เพิ่มอาร์กิวเมนต์ ngram_list ลงใน tomotopy.utils.simpletokenizer
- แก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดที่ไม่สอดคล้องกันหลังจาก corpus.cat_ngrams เรียกว่า
- เพิ่มประสิทธิภาพคอขวดของ tomotopy.ldamodel.load () และ tomotopy.ldamodel.save () และปรับปรุงความเร็วมากกว่า 10 ครั้ง
- 0.12.7 (2023-12-19)
- คุณสมบัติใหม่
- เพิ่มหัวข้อ Model Viewer Tomotopy.viewer.open_viewer ()
- ปรับประสิทธิภาพของ tomotopy.utils.corpus.process ()
- แก้ไขข้อบกพร่อง
- document.span ตอนนี้ส่งคืนช่วงในหน่วยอักขระไม่ใช่ในหน่วยไบต์
- 0.12.6 (2023-12-11)
- คุณสมบัติใหม่
- เพิ่มคุณสมบัติความสะดวกสบายให้กับ tomotopy.ldamodel.train และ tomotopy.ldamodel.set_word_prior
- ldamodel.train ตอนนี้มีอาร์กิวเมนต์ใหม่การโทรกลับ, callback_interval และ show_progres เพื่อตรวจสอบความคืบหน้าการฝึกอบรม
- ldamodel.set_word_prior สามารถยอมรับ dict [int, float] พิมพ์เป็นอาร์กิวเมนต์ก่อน
- 0.12.5 (2023-08-03)
- คุณสมบัติใหม่
- เพิ่มการสนับสนุนสำหรับสถาปัตยกรรม Linux Arm64
- 0.12.4 (2023-01-22)
- คุณสมบัติใหม่
- เพิ่มการสนับสนุนสำหรับสถาปัตยกรรม MacOS ARM64
- แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ tomotopy.document.get_sub_topic_dist () ยกข้อยกเว้นอาร์กิวเมนต์ที่ไม่ดี
- แก้ไขปัญหาที่การยกข้อยกเว้นบางครั้งทำให้เกิดการล่ม
- 0.12.3 (2022-07-19)
- คุณสมบัติใหม่
- ตอนนี้การแทรกเอกสารที่ว่างเปล่าโดยใช้ tomotopy.ldamodel.add_doc () เพียงเพิกเฉยแทนที่จะยกข้อยกเว้น หากอาร์กิวเมนต์ที่เพิ่มเข้ามาใหม่จะถูกตั้งค่า _empty_words ถูกตั้งค่าเป็นเท็จจะมีการยกข้อยกเว้นเหมือนก่อน
- tomotopy.hdpmodel.purge_dead_topics () มีการเพิ่มวิธีการลบหัวข้อที่ไม่มีชีวิตออกจากรุ่น
- แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ป้องกันการตั้งค่าค่าที่ผู้ใช้กำหนดสำหรับ NUSQ ใน tomotopy.sldamodel (โดย @jucendrero)
- แก้ไขปัญหาที่ tomotopy.utils.coherence ไม่ทำงานสำหรับ tomotopy.dtmodel
- แก้ไขปัญหาที่มักจะล้มเหลวเมื่อโทร Make_dic () ก่อนโทรรถไฟ ()
- แก้ไขปัญหาที่ผลลัพธ์ของ tomotopy.dmrmodel และ tomotopy.gdmrmodel นั้นแตกต่างกันแม้ว่าเมล็ดจะได้รับการแก้ไข
- กระบวนการเพิ่มประสิทธิภาพพารามิเตอร์ของ tomotopy.dmrmodel และ tomotopy.gdmrmodel ได้รับการปรับปรุงแล้ว
- แก้ไขปัญหาที่บางครั้งขัดข้องเมื่อโทร tomotopy.ptmodel.copy ()
- 0.12.2 (2021-09-06)
- ปัญหาที่การโทร convert_to_lda ของ tomotopy.hdpmodel ด้วย min_cf> 0, min_df> 0 หรือ rm_top> 0 ทำให้เกิดความผิดพลาดแล้ว
- อาร์กิวเมนต์ใหม่จาก _pseudo_doc ถูกเพิ่มลงใน tomotopy.document.get_topics และ tomotopy.document.get_topic_dist อาร์กิวเมนต์นี้ใช้ได้เฉพาะกับเอกสารของ PTModel เท่านั้นที่ช่วยให้สามารถควบคุมแหล่งที่มาสำหรับการแจกแจงหัวข้อการคำนวณ
- ค่าเริ่มต้นสำหรับอาร์กิวเมนต์ p ของ tomotopy.ptmodel มีการเปลี่ยนแปลง ค่าเริ่มต้นใหม่คือ K * 10
- การใช้เอกสารที่สร้างโดย Make_Doc โดยไม่ต้องโทรหาข้อสรุปไม่ได้ทำให้เกิดความผิดพลาดอีกต่อไป แต่เพียงพิมพ์ข้อความเตือน
- ปัญหาที่รหัส C ++ ภายในไม่ได้รวบรวมที่สภาพแวดล้อม Clang C ++ 17 ได้รับการแก้ไขแล้ว
- 0.12.1 (2021-06-20)
- ปัญหาที่ tomotopy.ldamodel.set_word_prior () ทำให้เกิดความผิดพลาดได้รับการแก้ไขแล้ว
- ตอนนี้ tomotopy.ldamodel.perplexity และ tomotopy.ldamodel.ll_per_word ส่งคืนค่าที่ถูกต้องเมื่อ termweight ไม่ใช่หนึ่ง
- tomotopy.ldamodel.used_vocab_weighted_freq ถูกเพิ่มเข้ามาซึ่งส่งคืนความถี่คำน้ำหนักคำศัพท์
- ตอนนี้ tomotopy.ldamodel.summary () ไม่เพียงแสดงเอนโทรปีของคำ แต่ยังรวมถึงเอนโทรปีของคำที่มีน้ำหนักต่อคำด้วย
- 0.12.0 (2021-04-26)
- ตอนนี้ tomotopy.dmrmodel และ tomotopy.gdmrmodel สนับสนุนค่าข้อมูลหลายค่าของข้อมูลเมตา (ดู https://github.com/bab2min/tomotopy/blob/main/examples/dmr_multi_label.py)
- ประสิทธิภาพของ tomotopy.gdmrmodel ได้รับการปรับปรุง
- มีการเพิ่มวิธีการคัดลอก () สำหรับโมเดลหัวข้อทั้งหมดเพื่อทำสำเนาลึก
- ปัญหาได้รับการแก้ไขโดยที่คำที่ถูกแยกออกจากการฝึกอบรม (โดย min_cf, min_df) มีรหัสหัวข้อที่ไม่ถูกต้อง ตอนนี้คำที่ไม่รวมทั้งหมดมี -1 เป็นรหัสหัวข้อ
- ตอนนี้ข้อยกเว้นและคำเตือนทั้งหมดที่สร้างโดย tomotopy ปฏิบัติตามประเภท Python มาตรฐาน
- ข้อกำหนดของคอมไพเลอร์ได้รับการเพิ่มเป็น C ++ 14
- 0.11.1 (2021-03-28)
- ข้อผิดพลาดที่สำคัญของอัลฟาแบบอสมมาตรได้รับการแก้ไข เนื่องจากข้อผิดพลาดนี้เวอร์ชัน 0.11.0 ถูกลบออกจากรุ่น
- 0.11.0 (2021-03-26) (ลบออก)
- Tomotopy โมเดลหัวข้อใหม่ PPTMODEL สำหรับข้อความสั้น ๆ ถูกเพิ่มลงในแพ็คเกจ
- ปัญหาได้รับการแก้ไขโดย tomotopy.hdpmodel.infer ทำให้เกิดข้อผิดพลาดในการแบ่งส่วนบางครั้ง
- ความไม่ตรงกันของ NumPy API ได้รับการแก้ไข
- ตอนนี้รองรับนักบวชหัวข้อที่ไม่สมมาตรได้รับการสนับสนุน
- รองรับโมเดลหัวข้อสำหรับไบต์ในหน่วยความจำได้รับการสนับสนุน
- มีการเพิ่มอาร์กิวเมนต์ปกติใน get_topic_dist (), get_topic_word_dist () และ get_sub_topic_dist () สำหรับการควบคุมการทำให้เป็นมาตรฐานของผลลัพธ์
- ตอนนี้ tomotopy.dmrmodel.lambdas และ tomotopy.dmrmodel.alpha ให้ค่าที่ถูกต้อง
- มีการเพิ่มข้อมูลเมตาหมวดหมู่สำหรับ tomotopy.gdmrmodel (ดู https://github.com/bab2min/tomotopy/blob/main/examples/gdmr_both_categorical_and_numerical.py)
- การสนับสนุน Python3.5 ลดลง
- 0.10.2 (2021-02-16)
- ปัญหาได้รับการแก้ไขโดย tomotopy.ctmodel.train ล้มเหลวด้วย K ขนาดใหญ่ K
- ปัญหาได้รับการแก้ไขโดย tomotopy.utils.corpus สูญเสียค่า UID ของพวกเขา
- 0.10.1 (2021-02-14)
- ปัญหาได้รับการแก้ไขโดย tomotopy.utils.corpus.extract_ngrams Craches ที่มีอินพุตว่าง
- ปัญหาได้รับการแก้ไขโดย tomotopy.ldamodel.infer ยกข้อยกเว้นด้วยอินพุตที่ถูกต้อง
- ปัญหาได้รับการแก้ไขโดย tomotopy.hldamodel.infer สร้าง tomotopy.document.path ผิด
- เนื่องจากมีการเพิ่มพารามิเตอร์ใหม่ freeze_topics สำหรับ tomotopy.hldamodel.Train คุณสามารถควบคุมได้ว่าจะสร้างหัวข้อใหม่หรือไม่เมื่อฝึกอบรม
- 0.10.0 (2020-12-19)
- อินเทอร์เฟซของ tomotopy.utils.corpus และ tomotopy.ldamodel.docs ได้รับการรวมเป็นหนึ่งเดียว ตอนนี้คุณสามารถเข้าถึงเอกสารในคลังข้อมูลในลักษณะเดียวกัน
- __getItem__ ของ tomotopy.utils.corpus ได้รับการปรับปรุง ไม่เพียง แต่การจัดทำดัชนีโดย Int แต่ยังรองรับ [INT] ที่ซ้ำได้ รองรับการจัดทำดัชนีโดย UID
- วิธีการใหม่ tomotopy.utils.corpus.extract_ngrams และ tomotopy.utils.corpus.cat_ngrams ถูกเพิ่มเข้ามา พวกเขาสกัด collocations n-gram โดยใช้ PMI และเชื่อมต่อพวกเขาเป็นคำเดียว
- มีการเพิ่มวิธีการใหม่ tomotopy.ldamodel.add_corpus และ tomotopy.ldamodel.infer สามารถรับคลังข้อมูลเป็นอินพุต
- เพิ่มโมดูล tomotopy.coherence มันเป็นวิธีในการคำนวณการเชื่อมโยงกันของแบบจำลอง
- มีการเพิ่ม paramter window_size ใน tomotopy.label.forelevance
- ปัญหาได้รับการแก้ไขโดยที่ NAN มักเกิดขึ้นเมื่อฝึกอบรม tomotopy.hdpmodel
- ตอนนี้รองรับ Python3.9
- การพึ่งพา py-cpuinfo ถูกลบออกและการเริ่มต้นของโมดูลได้รับการปรับปรุง
- 0.9.1 (2020-08-08)
- การรั่วไหลของหน่วยความจำของเวอร์ชัน 0.9.0 ได้รับการแก้ไข
- tomotopy.ctmodel.summary () ได้รับการแก้ไข
- 0.9.0 (2020-08-04)
- วิธี tomotopy.ldamodel.summary () ซึ่งพิมพ์บทสรุปที่มนุษย์อ่านได้ของแบบจำลองได้ถูกเพิ่มเข้ามา
- เครื่องกำเนิดหมายเลขสุ่มของแพ็คเกจถูกแทนที่ด้วย eigenrand มันเพิ่มความเร็วในการสร้างตัวเลขแบบสุ่มและแก้ไขความแตกต่างของผลลัพธ์ระหว่างแพลตฟอร์ม
- เนื่องจากข้างต้นแม้ว่าเมล็ดจะเหมือนกันผลการฝึกอบรมแบบจำลองอาจแตกต่างจากรุ่นก่อน 0.9.0
- แก้ไขข้อผิดพลาดในการฝึกอบรมใน tomotopy.hdpmodel
- Tomotopy.dmrmodel.alpha ตอนนี้แสดง dirichlet ก่อนการกระจายหัวข้อต่อเอกสารโดยข้อมูลเมตา
- tomotopy.dtmodel.get_count_by_topics () ได้รับการแก้ไขเพื่อส่งคืน ndarray 2 มิติ
- tomotopy.dtmodel.alpha ได้รับการแก้ไขเพื่อส่งคืนค่าเท่ากับ tomotopy.dtmodel.get_alpha ()
- แก้ไขปัญหาที่ไม่สามารถรับค่าข้อมูลเมตาสำหรับเอกสารของ tomotopy.gdmrmodel
- tomotopy.hldamodel.alpha ตอนนี้แสดง dirichlet ก่อนการกระจายความลึกต่อเอกสาร
- เพิ่ม tomotopy.ldamodel.global_step แล้ว
- tomotopy.mgldamodel.get_count_by_topics () ตอนนี้ส่งคืนจำนวนคำสำหรับทั้งหัวข้อทั่วโลกและท้องถิ่น
- tomotopy.pamodel.alpha, tomotopy.pamodel.subalpha และ tomotopy.pamodel.get_count_by_super_topic () ได้รับการเพิ่ม
- 0.8.2 (2020-07-14)
- คุณสมบัติใหม่ tomotopy.dtmodel.num_timepoints และ tomotopy.dtmodel.num_docs_by_timepoint ได้รับการเพิ่มแล้ว
- ข้อผิดพลาดที่ทำให้เกิดผลลัพธ์ที่แตกต่างกันกับแพลตฟอร์มที่แตกต่างกันแม้ว่าเมล็ดจะเหมือนกันบางส่วนได้รับการแก้ไขบางส่วน อันเป็นผลมาจากการแก้ไขนี้ตอนนี้ tomotopy ใน 32 บิตให้ผลการฝึกอบรมที่แตกต่างจากเวอร์ชันก่อนหน้า
- 0.8.1 (2020-06-08)
- ข้อผิดพลาดที่ tomotopy.ldamodel.used_vocabs ส่งคืนค่าที่ไม่ถูกต้องได้รับการแก้ไข
- ตอนนี้ tomotopy.ctmodel.prior_cov ส่งคืนเมทริกซ์ความแปรปรวนร่วมกับรูปร่าง [k, k]
- ตอนนี้ tomotopy.ctmodel.get_correlations พร้อมอาร์กิวเมนต์ที่ว่างเปล่าส่งคืนเมทริกซ์สหสัมพันธ์ที่มีรูปร่าง [k, k]
- 0.8.0 (2020-06-06)
- เนื่องจาก Numpy ได้รับการแนะนำใน tomotopy วิธีการและคุณสมบัติหลายอย่างของการส่งคืน tomotopy ไม่เพียง แต่รายการ แต่ numpy.ndarray ตอนนี้
- Tomotopy มี numpy การพึ่งพาใหม่> = 1.10.0
- การประเมินที่ผิดของ tomotopy.hdpmodel.infer ได้รับการแก้ไข
- มีการเพิ่มวิธีการใหม่เกี่ยวกับการแปลง HDPMODEL เป็น LDAMODEL
- คุณสมบัติใหม่รวมถึง tomotopy.ldamodel.used_vocabs, tomotopy.ldamodel.used_vocab_freq และ tomotopy.ldamodel.used_vocab_df ถูกเพิ่มลงในโมเดลหัวข้อ
- เพิ่มโมเดลหัวข้อ G-DMR ใหม่ (Tomotopy.gdmrmodel)
- ข้อผิดพลาดในการเริ่มต้น tomotopy.label.forelevance ใน macOS ได้รับการแก้ไข
- ข้อผิดพลาดที่เกิดขึ้นเมื่อใช้ tomotopy.utils.corpus ที่สร้างขึ้นโดยไม่มีพารามิเตอร์ดิบได้รับการแก้ไข
- 0.7.1 (2020-05-08)
- tomotopy.document.path ถูกเพิ่มเข้ามาสำหรับ tomotopy.hldamodel
- ข้อผิดพลาดการทุจริตหน่วยความจำใน tomotopy.label.pmiextractor ได้รับการแก้ไข
- ข้อผิดพลาดในการรวบรวมใน GCC 7 ได้รับการแก้ไข
- 0.7.0 (2020-04-18)
- Tomotopy.dtmodel ถูกเพิ่มลงในแพ็คเกจ
- ข้อผิดพลาดใน tomotopy.utils.corpus.save ได้รับการแก้ไข
- วิธีการใหม่ tomotopy.document.get_count_vector ถูกเพิ่มลงในคลาสเอกสาร
- ตอนนี้การแจกแจง Linux ใช้ ManyLinux2010 และใช้การเพิ่มประสิทธิภาพเพิ่มเติม
- 0.6.2 (2020-03-28)
- ข้อผิดพลาดที่สำคัญที่เกี่ยวข้องกับการบันทึกและโหลดได้รับการแก้ไข เวอร์ชัน 0.6.0 และ 0.6.1 ถูกลบออกจากรุ่น
- 0.6.1 (2020-03-22) (ลบ)
- ข้อผิดพลาดที่เกี่ยวข้องกับการโหลดโมดูลได้รับการแก้ไข
- 0.6.0 (2020-03-22) (ลบออก)
- tomotopy.utils.corpus คลาสที่จัดการเอกสารหลายฉบับได้อย่างง่ายดาย
- tomotopy.ldamodel.set_word_prior วิธีการที่ควบคุมคำศัพท์ priors คำของโมเดลหัวข้อถูกเพิ่มเข้ามา
- อาร์กิวเมนต์ใหม่ min_df ที่กรองคำตามความถี่ของเอกสารถูกเพิ่มลงในทุกหัวข้อ __init__
- tomotopy.label, submodule เกี่ยวกับการติดฉลากหัวข้อถูกเพิ่ม ปัจจุบันมีเฉพาะ tomotopy.label.forelevance
- 0.5.2 (2020-03-01)
- ปัญหาข้อผิดพลาดการแบ่งส่วนได้รับการแก้ไขใน tomotopy.lldamodel.add_doc
- ข้อผิดพลาดได้รับการแก้ไขว่าการอนุมานของ tomotopy.hdpmodel บางครั้งล่มโปรแกรม
- ปัญหาการชนได้รับการแก้ไขจาก tomotopy.ldamodel.infer ด้วย ps = tomotopy.parallelscheme.partition, ร่วมกัน = จริง
- 0.5.1 (2020-01-11)
- ข้อผิดพลาดได้รับการแก้ไขว่า tomotopy.sldamodel.make_doc ไม่รองรับค่าที่ขาดหายไปสำหรับ y
- ตอนนี้ tomotopy.sldamodel รองรับค่าที่ขาดหายไปอย่างเต็มที่สำหรับตัวแปรการตอบสนอง y เอกสารที่มีค่าที่หายไป (NAN) รวมอยู่ในหัวข้อการสร้างแบบจำลอง แต่ไม่รวมออกจากการถดถอยของตัวแปรการตอบสนอง
- 0.5.0 (2019-12-30)
- ตอนนี้ tomotopy.pamodel.infer ส่งคืนทั้งสองหัวข้อการแจกจ่ายและการกระจายหัวข้อย่อย
- วิธีการใหม่ get_sub_topics และ get_sub_topic_dist ถูกเพิ่มลงใน tomotopy.document (สำหรับ Pamodel)
- เพิ่มพารามิเตอร์ใหม่ขนานสำหรับ tomotopy.ldamodel.train และ tomotopy.ldamodel.infer คุณสามารถเลือกอัลกอริทึม Parallelism โดยการเปลี่ยนพารามิเตอร์นี้
- Tomotopy.parallelscheme.partition อัลกอริทึมใหม่ถูกเพิ่มเข้ามา มันทำงานได้อย่างมีประสิทธิภาพเมื่อจำนวนคนงานมีขนาดใหญ่จำนวนหัวข้อหรือขนาดของคำศัพท์มีขนาดใหญ่
- ข้อผิดพลาดที่ RM_TOP ไม่ทำงานที่ min_cf <2 ได้รับการแก้ไข
- 0.4.2 (2019-11-30)
- การมอบหมายหัวข้อที่ไม่ถูกต้องของ tomotopy.lldamodel และ tomotopy.pldamodel ได้รับการแก้ไข
- อ่านได้ __REPR__ ของ tomotopy.document และ tomotopy.dictionary ถูกนำมาใช้
- 0.4.1 (2019-11-27)
- บั๊กที่ฟังก์ชั่น init ของ tomotopy.pldamodel ได้รับการแก้ไข
- 0.4.0 (2019-11-18)
- รุ่นใหม่รวมถึง tomotopy.pldamodel และ tomotopy.hldamodel ถูกเพิ่มลงในแพ็คเกจ
- 0.3.1 (2019-11-05)
- ปัญหาที่ get_topic_dist () ส่งคืนค่าที่ไม่ถูกต้องเมื่อตั้งค่า min_cf หรือ rm_top ได้รับการแก้ไขแล้ว
- ค่าส่งคืนของ get_topic_dist () ของ tomotopy.mgldamodel เอกสารได้รับการแก้ไขเพื่อรวมหัวข้อท้องถิ่น
- ความเร็วในการประมาณค่าที่มี tw = หนึ่งได้รับการปรับปรุง
- 0.3.0 (2019-10-06)
- โมเดลใหม่ Tomotopy.lldamodel ถูกเพิ่มลงในแพ็คเกจ
- ปัญหาการกระแทกของ HDPModel ได้รับการแก้ไข
- เนื่องจากการประเมิน Hyperparameter สำหรับ HDPMODEL ถูกนำมาใช้ผลของ HDPMODEL อาจแตกต่างจากรุ่นก่อนหน้า
- หากคุณต้องการปิดการประมาณค่า hyperparameter ของ HDPMODEL ให้ตั้งค่า Optim_interval เป็นศูนย์
- 0.2.0 (2019-08-18)
- รุ่นใหม่รวมถึง tomotopy.ctmodel และ tomotopy.sldamodel ถูกเพิ่มลงในแพ็คเกจ
- ตัวเลือกพารามิเตอร์ใหม่ RM_TOP ถูกเพิ่มสำหรับทุกหัวข้อ
- ปัญหาในวิธีการบันทึกและโหลดสำหรับ pamodel และ hpamodel ได้รับการแก้ไข
- ความผิดพลาดในการโหลด HDPMODEL ได้รับการแก้ไข
- ปัญหาที่ ll_per_word คำนวณอย่างไม่ถูกต้องเมื่อ min_cf> 0 ได้รับการแก้ไข
- 0.1.6 (2019-08-09)
- การรวบรวมข้อผิดพลาดที่ Clang ที่มีสภาพแวดล้อม macOS ได้รับการแก้ไข
- 0.1.4 (2019-08-05)
- ปัญหาเมื่อ add_doc ได้รับรายการว่างเป็นอินพุตได้รับการแก้ไข
- ปัญหาที่ tomotopy.pamodel.get_topic_words ไม่ได้แยกการกระจายคำของ subtopic ได้รับการแก้ไข
- 0.1.3 (2019-05-19)
- พารามิเตอร์ MIN_CF และฟังก์ชั่นการแยกคำว่าหยุดสำหรับทุกหัวข้อ
- 0.1.0 (2019-05-12)
การผูกสำหรับภาษาอื่น ๆ
- Ruby: https://github.com/ankane/tomoto
ห้องสมุดที่รวมและใบอนุญาตของพวกเขา
- Eigen: แอปพลิเคชันนี้ใช้คุณสมบัติที่ได้รับอนุญาตจาก MPL2 ของ Eigen ซึ่งเป็นไลบรารีเทมเพลต C ++ สำหรับพีชคณิตเชิงเส้น สำเนาใบอนุญาต MPL2 มีอยู่ที่ https://www.mozilla.org/en-us/mpl/2.0/ ซอร์สโค้ดของไลบรารี eigen สามารถรับได้ที่ http://eigen.tuxfamily.org/
- Eigenrand: ใบอนุญาต MIT
- ตัวแปร mapbox: ใบอนุญาต BSD
การอ้างอิง
@software {minchul_lee_2022_6868418
ผู้แต่ง = {Minchul Lee}
title = {bab2min/tomotopy: 0.12.3}
เดือน = ก.ค.
ปี = 2022
Publisher = {Zenodo}
เวอร์ชัน = {v0.12.3}
doi = {10.5281/zenodo.6868418},
url = {https://doi.org/10.5281/zenodo.6868418}
-