tomotopy
Bahasa Inggris , 한국어.
Apa itu tomotopy?
Tomotopy adalah ekstensi python dari tomoto (Topic Modeling Tool) yang merupakan perpustakaan model topik berbasis Gibbs yang ditulis dalam C ++. Ini menggunakan vektorisasi CPU modern untuk memaksimalkan kecepatan. Versi Tomoto saat ini mendukung beberapa model topik utama termasuk
- Alokasi Dirichlet Laten (Tomotopy.ldamodel)
- Berlabel LDA (Tomotopy.lldamodel)
- LDA berlabel sebagian (tomotopy.pldamodel)
- LDA yang diawasi (tomotopy.sldamodel)
- Dirichlet Regresi Multinomial (Tomotopy.DMrModel)
- Regresi multinomial Dirichlet umum (Tomotopy.gdmrmodel)
- Proses Dirichlet Hierarkis (Tomotopy.HDPModel)
- LDA hierarkis (tomotopy.hldamodel)
- LDA multi butir (tomotopy.mgldamodel)
- Alokasi pachinko (tomotopy.pamodel)
- Hierarkis PA (tomotopy.hpamodel)
- Model topik berkorelasi (tomotopy.ctmodel)
- Model topik dinamis (tomotopy.dtmodel)
- Model topik berbasis pseudo-dokumen (tomotopy.ptmodel).
Silakan kunjungi https://bab2min.github.io/tomotopy untuk melihat informasi lebih lanjut.
Memulai
Anda dapat menginstal tomotopy dengan mudah menggunakan pip. (https://pypi.org/project/tomotopy/)
$ Pip Instal -Pip -Upgrade Pip
$ Pip menginstal tomotopy
Versi OS dan Python yang didukung adalah:
- Linux (x86-64) dengan python> = 3.6
- MacOS> = 10.13 dengan Python> = 3.6
- Windows 7 atau lebih baru (x86, x86-64) dengan python> = 3.6
- OS Lainnya dengan Python> = 3.6: Kompilasi dari Kode Sumber Diperlukan (dengan Kompiler Kompatibel C ++ 14)
Setelah menginstal, Anda dapat memulai tomotopy hanya dengan mengimpor.
impor tomotopy sebagai tp
Print (tp.isa) # cetak 'avx2', 'avx', 'sse2' atau 'none'
Saat ini, tomotopy dapat mengeksploitasi instruksi AVX2, AVX atau SSE2 SIMD untuk memaksimalkan kinerja. Ketika paket diimpor, ia akan memeriksa set instruksi yang tersedia dan memilih opsi terbaik. Jika TP.ISA tidak memberi tahu, iterasi pelatihan mungkin memakan waktu lama. Tetapi, karena sebagian besar intel modern atau AMD CPU memberikan set instruksi SIMD, akselerasi SIMD dapat menunjukkan peningkatan besar.
Berikut adalah kode sampel untuk pelatihan LDA sederhana teks dari file 'sampel.txt'.
impor tomotopy sebagai tp
mdl = tp.ldamodel (k = 20)
untuk baris di terbuka ('sampel.txt'):
mdl.add_doc (line.strip (). split ())
untuk saya dalam jangkauan (0, 100, 10):
mdl.train (10)
print ('iteration: {} tlog-likelihood: {}'. format (i, mdl.ll_per_word)))
untuk k dalam kisaran (mdl.k):
Print ('Top 10 Words of Topic #{}'. Format (k))
print (mdl.get_topic_words (k, top_n = 10))
mdl.summary ()
Kinerja tomotopy
Tomotopy menggunakan gibbs-sampling (CGS) yang runtuh untuk menyimpulkan distribusi topik dan distribusi kata. Umumnya CGS menyatu lebih lambat daripada variasional Bayes (VB) yang digunakan Ldamodel Gensim, tetapi iterasinya dapat dihitung lebih cepat. Selain itu, tomotopy dapat memanfaatkan CPU multicore dengan set instruksi SIMD, yang dapat menghasilkan iterasi yang lebih cepat.
Bagan berikut menunjukkan perbandingan waktu berjalan model LDA antara tomotopy dan gensim. Data input terdiri dari 1000 dokumen acak dari Wikipedia Inggris dengan 1.506.966 kata (sekitar 10,1 MB). Tomotopy Trains 200 iterasi dan kereta gensim 10 iterasi.
Kinerja di Intel I5-6600, x86-64 (4 core)
Kinerja di Intel Xeon E5-2620 V4, x86-64 (8 core, 16 utas)
Meskipun tomotopy berulang 20 kali lebih banyak, waktu berjalan secara keseluruhan adalah 5 ~ 10 kali lebih cepat dari gensim. Dan itu menghasilkan hasil yang stabil.
Sulit untuk membandingkan CGS dan VB secara langsung karena mereka adalah teknik yang berbeda secara total. Tetapi dari sudut pandang praktis, kita dapat membandingkan kecepatan dan hasil di antara mereka. Bagan berikut menunjukkan log-likelihood per kata dari hasil dua model.
Set instruksi SIMD memiliki efek yang bagus pada kinerja. Berikut ini adalah perbandingan antara set instruksi SIMD.
Untungnya, sebagian besar X86-64 CPU baru-baru ini memberikan set instruksi AVX2, sehingga kami dapat menikmati kinerja AVX2.
Model Simpan dan Memuat
Tomotopy menyediakan metode simpan dan memuat untuk setiap kelas model topik, sehingga Anda dapat menyimpan model ke dalam file kapan pun Anda mau, dan memuatnya kembali dari file.
impor tomotopy sebagai tp
mdl = tp.hdpmodel ()
untuk baris di terbuka ('sampel.txt'):
mdl.add_doc (line.strip (). split ())
untuk saya dalam jangkauan (0, 100, 10):
mdl.train (10)
print ('iteration: {} tlog-likelihood: {}'. format (i, mdl.ll_per_word)))
# Simpan ke File
mdl.save ('sample_hdp_model.bin')
# Muat dari file
mdl = tp.hdpmodel.load ('sample_hdp_model.bin')
untuk k dalam kisaran (mdl.k):
Jika tidak mdl.is_live_topic (k): lanjutkan
Print ('Top 10 Words of Topic #{}'. Format (k))
print (mdl.get_topic_words (k, top_n = 10))
# Model yang disimpan adalah model HDP,
# Jadi saat Anda memuatnya dengan model LDA, itu akan meningkatkan pengecualian
mdl = tp.ldamodel.load ('sample_hdp_model.bin')
Saat Anda memuat model dari file, jenis model dalam file harus cocok dengan kelas metode.
Lihat lebih lanjut di Metode Metode Tomotopy.ldamodel.Save dan Tomotopy.ldamodel.Load.
Penampil Model Interaktif
interaktif_model_viewer_demo.mp4
Anda dapat melihat hasil pemodelan menggunakan penampil interaktif sejak v0.13.0.
impor tomotopy sebagai tp
model = tp.ldamodel (...)
# ... beberapa kode pelatihan ...
tp.viewer.open_viewer (model, host = "localhost", port = 9999)
# Dan buka http: // localhost: 9999 di browser web Anda!
Jika Anda memiliki file model yang disimpan, Anda juga dapat menggunakan baris perintah berikut.
python -m tomotopy.viewer a_trained_model.bin --host localhost --port 9999
Lihat lebih banyak di Modul Tomotopy.Viewer.
Dokumen dalam model dan keluar dari model
Kita dapat menggunakan model topik untuk dua tujuan utama. Yang dasar adalah menemukan topik dari serangkaian dokumen sebagai hasil dari model terlatih, dan yang lebih maju adalah menyimpulkan distribusi topik untuk dokumen yang tidak terlihat dengan menggunakan model terlatih.
Kami menamai dokumen dalam tujuan sebelumnya (digunakan untuk pelatihan model) sebagai dokumen dalam model , dan dokumen dalam tujuan selanjutnya (dokumen yang tidak terlihat selama pelatihan) sebagai dokumen di luar model .
Dalam tomotopy, dua jenis dokumen yang berbeda ini dihasilkan secara berbeda. Dokumen dalam model dapat dibuat dengan metode tomotopy.ldamodel.add_doc. add_doc dapat dipanggil sebelum tomotopy.ldamodel.train dimulai. Dengan kata lain, setelah kereta dipanggil, add_doc tidak dapat menambahkan dokumen ke dalam model karena set dokumen yang digunakan untuk pelatihan telah diperbaiki.
Untuk memperoleh contoh dokumen yang dibuat, Anda harus menggunakan tomotopy.ldamodel.docs seperti:
mdl = tp.ldamodel (k = 20)
idx = mdl.add_doc (kata -kata)
Jika IDX <0: Naikkan RuntimeError ("Gagal menambahkan dokumen")
doc_inst = mdl.docs [idx]
# doc_inst adalah contoh dari dokumen yang ditambahkan
Dokumen di luar model dihasilkan oleh metode tomotopy.ldamodel.make_doc. make_doc hanya dapat dipanggil setelah kereta dimulai. Jika Anda menggunakan make_doc sebelum set dokumen yang digunakan untuk pelatihan telah diperbaiki, Anda mungkin mendapatkan hasil yang salah. Karena Make_Doc mengembalikan instance secara langsung, Anda dapat menggunakan nilai pengembaliannya untuk manipulasi lainnya.
mdl = tp.ldamodel (k = 20)
# add_doc ...
mdl.train (100)
doc_inst = mdl.make_doc (unseen_doc) # doc_inst adalah instance dari dokumen yang tidak terlihat
Kesimpulan untuk dokumen yang tidak terlihat
Jika dokumen baru dibuat oleh tomotopy.ldamodel.make_doc, distribusi topiknya dapat disimpulkan oleh model. Inferensi untuk dokumen yang tidak terlihat harus dilakukan dengan menggunakan metode 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)
print ("Distribusi topik untuk dokumen yang tidak terlihat:", topic_dist)
print ("log-likelihood of inference:", ll)
Metode INFER hanya dapat menyimpulkan satu contoh tomotopy.document atau daftar contoh tomotopy.document. Lihat lebih banyak di tomotopy.ldamodel.infer.
Corpus dan transformasi
Setiap model topik dalam tomotopy memiliki jenis dokumen internal sendiri. Sebuah dokumen dapat dibuat dan ditambahkan ke dalam cocok untuk setiap model melalui metode add_doc masing -masing model. Namun, mencoba menambahkan daftar dokumen yang sama ke model yang berbeda menjadi sangat tidak nyaman, karena add_doc harus dipanggil untuk daftar dokumen yang sama untuk setiap model yang berbeda. Dengan demikian, tomotopy menyediakan tomotopy.utils.corpus kelas yang memegang daftar dokumen. tomotopy.utils.corpus dapat dimasukkan ke dalam model apa pun dengan meneruskan sebagai argumen corpus ke __init__ atau metode add_corpus dari masing -masing model. Jadi, memasukkan tomotopy.utils.corpus hanya memiliki efek yang sama untuk memasukkan dokumen yang dipegang korpus.
Beberapa model topik membutuhkan data yang berbeda untuk dokumennya. Misalnya, tomotopy.dmrmodel membutuhkan argumen metadata dalam tipe STR, tetapi tomotopy.plDamodel membutuhkan label argumen dalam tipe daftar [str]. Karena tomotopy.utils.corpus memegang serangkaian dokumen independen daripada terikat pada model topik tertentu, tipe data yang diperlukan oleh model topik mungkin tidak konsisten ketika sebuah korpus ditambahkan ke dalam model topik tersebut. Dalam hal ini, data lain -lain dapat diubah untuk dipasang model topik target menggunakan transformasi argumen. Lihat detail lebih lanjut dalam kode berikut:
dari tomotopy impor dmrmodel
dari tomotopy.utils impor corpus
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)
# Anda kehilangan bidang `a_data` di` corpus`,
# dan `metadata` yang dibutuhkan` dmrmodel` diisi dengan nilai default, STS kosong.
Assert Model.docs [0] .metadata == ''
Assert Model.docs [1] .metadata == ''
Assert Model.docs [2] .metadata == ''
def transform_a_data_to_metadata (misc: dist):
return {'metadata': str (misc ['a_data'])}
# Fungsi ini mengubah `a_data` menjadi` metadata`
model = DMRModel (k = 10)
model.add_corpus (corpus, transform = transform_a_data_to_metadata)
# Sekarang dokumen di `model` memiliki` metadata` non-default, yang dihasilkan dari bidang `a_data`.
Assert Model.docs [0] .metadata == '1'
Assert Model.docs [1] .metadata == '2'
Assert Model.docs [2] .metadata == '3'
Algoritma pengambilan sampel paralel
Karena versi 0.5.0, tomotopy memungkinkan Anda untuk memilih algoritma paralelisme. Algoritma yang disediakan dalam versi sebelum 0.4.2 adalah copy_merge, yang disediakan untuk semua model topik. Partisi algoritma baru, tersedia sejak 0.5.0, membuat pelatihan umumnya lebih cepat dan lebih efisien memori, tetapi tersedia di tidak semua model topik.
Bagan berikut menunjukkan perbedaan kecepatan antara kedua algoritma berdasarkan jumlah topik dan jumlah pekerja.
Kinerja berdasarkan versi
Perubahan kinerja berdasarkan versi ditampilkan dalam grafik berikut. Waktu yang dibutuhkan untuk menjalankan kereta model LDA dengan 1000 iterasi diukur. (Docs: 11314, Vocab: 60382, Words: 2364724, Intel Xeon Gold 5120 @2.2GHz)
Menyewakan topik menggunakan kata prior
Sejak versi 0.6.0, metode baru tomotopy.ldamodel.set_word_prior telah ditambahkan. Ini memungkinkan Anda untuk mengontrol kata sebelumnya untuk setiap topik. Sebagai contoh, kita dapat mengatur bobot kata 'gereja' menjadi 1.0 di topik 0, dan bobot ke 0,1 di sisa topik dengan mengikuti kode. Ini berarti bahwa probabilitas bahwa kata 'gereja' ditugaskan ke topik 0 adalah 10 kali lebih tinggi dari probabilitas ditugaskan ke topik lain. Oleh karena itu, sebagian besar 'gereja' ditugaskan ke topik 0, jadi topik 0 berisi banyak kata yang terkait dengan 'gereja'. Ini memungkinkan untuk memanipulasi beberapa topik untuk ditempatkan pada nomor topik tertentu.
impor tomotopy sebagai tp
mdl = tp.ldamodel (k = 20)
# Tambahkan dokumen ke `mdl`
# mengatur kata sebelumnya
mdl.set_word_prior ('gereja', [1.0 jika k == 0 else 0.1 untuk k dalam kisaran (20)])
Lihat Word_Prior_example di example.py untuk detail lebih lanjut.
Contoh
Anda dapat menemukan contoh kode python tomotopy di https://github.com/bab2min/tomotopy/blob/main/examples/.
Anda juga bisa mendapatkan file data yang digunakan dalam kode contoh di https://drive.google.com/file/d/18opnijd4iwpyyz2o7pqopyetakexa71j/view.
Lisensi
Tomotopy dilisensikan berdasarkan ketentuan lisensi MIT, yang berarti Anda dapat menggunakannya untuk tujuan yang wajar dan tetap dalam kepemilikan lengkap dari semua dokumentasi yang Anda hasilkan.
Sejarah
- 0.13.0 (2024-08-05)
- Fitur baru
- Fitur utama dari Topic Model Viewer tomotopy.viewer.open_viewer () sudah siap sekarang.
- tomotopy.ldamodel.get_hash () ditambahkan. Anda bisa mendapatkan nilai 128bit hash dari model.
- Tambahkan argumen ngram_list ke tomotopy.utils.simpletokenizer.
- Perbaikan bug
- Memperbaiki bug rentang yang tidak konsisten setelah corpus.concat_ngrams dipanggil.
- Mengoptimalkan hambatan tomotopy.ldamodel.load () dan tomotopy.ldamodel.save () dan meningkatkan kecepatannya lebih dari 10 kali.
- 0.12.7 (2023-12-19)
- Fitur baru
- Menambahkan Topik Model Viewer Tomotopy.viewer.open_viewer ()
- Mengoptimalkan kinerja tomotopy.utils.corpus.process ()
- Perbaikan bug
- Document.span sekarang mengembalikan rentang unit karakter, bukan di unit byte.
- 0.12.6 (2023-12-11)
- Fitur baru
- Menambahkan beberapa fitur kenyamanan ke tomotopy.ldamodel.train dan tomotopy.ldamodel.set_word_prior.
- LDAMODEL.Train sekarang memiliki argumen baru callback, callback_interval dan show_progres untuk memantau kemajuan pelatihan.
- Ldamodel.set_word_prior sekarang dapat menerima tipe dikt [int, float] sebagai argumennya sebelumnya.
- 0.12.5 (2023-08-03)
- Fitur baru
- Dukungan tambahan untuk arsitektur Linux ARM64.
- 0.12.4 (2023-01-22)
- Fitur baru
- Menambahkan dukungan untuk arsitektur MacOS ARM64.
- Perbaikan bug
- Memperbaiki masalah di mana tomotopy.document.get_sub_topic_dist () mengangkat pengecualian argumen yang buruk.
- Memperbaiki masalah di mana peningkatan pengecualian terkadang menyebabkan kecelakaan.
- 0.12.3 (2022-07-19)
- Fitur baru
- Sekarang, memasukkan dokumen kosong menggunakan tomotopy.ldamodel.add_doc () mengabaikannya alih -alih menaikkan pengecualian. Jika argumen yang baru ditambahkan, abaikan_empty_words diatur ke false, pengecualian dinaikkan seperti sebelumnya.
- Metode tomotopy.hdpmodel.purge_dead_topics () ditambahkan untuk menghapus topik non-hidup dari model.
- Perbaikan bug
- Memperbaiki masalah yang mencegah pengaturan nilai yang ditentukan pengguna untuk NUSQ di tomotopy.sldamodel (oleh @jucendrero).
- Memperbaiki masalah di mana tomotopy.utils.coherence tidak berfungsi untuk tomotopy.dtmodel.
- Memperbaiki masalah yang sering macet saat memanggil make_dic () sebelum memanggil kereta ().
- Menyelesaikan masalah bahwa hasil tomotopy.dmrmodel dan tomotopy.gdmrmodel berbeda bahkan ketika biji diperbaiki.
- Proses optimasi parameter tomotopy.dmrmodel dan tomotopy.gdmrmodel telah ditingkatkan.
- Memperbaiki masalah yang terkadang macet saat memanggil tomotopy.ptmodel.copy ().
- 0.12.2 (2021-09-06)
- Masalah di mana panggilan convert_to_lda dari tomotopy.hdpmodel dengan min_cf> 0, min_df> 0 atau rm_top> 0 menyebabkan kecelakaan telah diperbaiki.
- Argumen baru dari_pseudo_doc ditambahkan ke tomotopy.document.get_topics dan tomotopy.document.get_topic_dist. Argumen ini hanya berlaku untuk dokumen PTModel, ini memungkinkan untuk mengontrol sumber distribusi topik komputasi.
- Nilai default untuk argumen p tomotopy.ptModel telah diubah. Nilai default baru adalah K * 10.
- Menggunakan dokumen yang dihasilkan oleh Make_Doc tanpa memanggil Infer tidak menyebabkan kerusakan lagi, tetapi cukup mencetak pesan peringatan.
- Masalah di mana kode C ++ internal tidak dikompilasi di lingkungan Clang C ++ 17 telah diperbaiki.
- 0.12.1 (2021-06-20)
- Masalah di mana tomotopy.ldamodel.set_word_prior () menyebabkan kerusakan telah diperbaiki.
- Sekarang tomotopy.ldamodel.perplexity dan tomotopy.ldamodel.ll_per_word mengembalikan nilai yang akurat saat kelas istilah bukan satu.
- tomotopy.ldamodel.used_vocab_weighted_freq ditambahkan, yang mengembalikan frekuensi kata-kata yang berawak.
- Sekarang tomotopy.ldamodel.summary () menunjukkan tidak hanya entropi kata-kata, tetapi juga entropi kata-kata tertimbang.
- 0.12.0 (2021-04-26)
- Sekarang tomotopy.dmrmodel dan tomotopy.gdmrmodel mendukung beberapa nilai metadata (lihat https://github.com/bab2min/tomotopy/blob/main/examples/dmr_multi_label.py)
- Kinerja tomotopy.gdmrmodel ditingkatkan.
- Metode copy () telah ditambahkan untuk semua model topik untuk melakukan salinan yang dalam.
- Suatu masalah diperbaiki di mana kata -kata yang dikecualikan dari pelatihan (oleh min_cf, min_df) memiliki ID topik yang salah. Sekarang semua kata yang dikecualikan memiliki -1 sebagai Topic ID.
- Sekarang semua pengecualian dan peringatan yang dihasilkan oleh tomotopy mengikuti tipe python standar.
- Persyaratan kompiler telah dinaikkan menjadi C ++ 14.
- 0.11.1 (2021-03-28)
- Bug kritis alfa asimetris telah diperbaiki. Karena bug ini, versi 0.11.0 telah dihapus dari rilis.
- 0.11.0 (2021-03-26) (dihapus)
- Model topik baru tomotopy.ptModel untuk teks pendek ditambahkan ke dalam paket.
- Suatu masalah diperbaiki di mana tomotopy.hdpmodel.infer terkadang menyebabkan kesalahan segmentasi.
- Ketidakcocokan versi API Numpy telah diperbaiki.
- Sekarang prior dokumen-topik asimetris didukung.
- Model topik serialisasi untuk byte dalam memori didukung.
- Argumen normalisasi ditambahkan ke get_topic_dist (), get_topic_word_dist () dan get_sub_topic_dist () untuk mengendalikan normalisasi hasil.
- Sekarang tomotopy.dmrmodel.lambdas dan tomotopy.dmrmodel.alpha memberikan nilai yang benar.
- Dukungan metadata kategoris untuk tomotopy.gdmrmodel ditambahkan (lihat https://github.com/bab2min/tomotopy/blob/main/examples/gdmr_both_categorical_and_numerical.py).
- Dukungan Python3.5 dijatuhkan.
- 0.10.2 (2021-02-16)
- Suatu masalah diperbaiki di mana tomotopy.ctmodel.train gagal dengan K. besar.
- Suatu masalah diperbaiki di mana tomotopy.utils.corpus kehilangan nilai UID mereka.
- 0.10.1 (2021-02-14)
- Suatu masalah diperbaiki di mana tomotopy.utils.corpus.extract_ngrams craches dengan input kosong.
- Suatu masalah diperbaiki di mana tomotopy.ldamodel.infer meningkatkan pengecualian dengan input yang valid.
- Suatu masalah diperbaiki di mana tomotopy.hldamodel.infer menghasilkan tomotopy.document.path yang salah.
- Karena parameter baru freeze_topics untuk tomotopy.hldamodel.train ditambahkan, Anda dapat mengontrol apakah akan membuat topik baru atau tidak saat pelatihan.
- 0.10.0 (2020-12-19)
- Antarmuka tomotopy.utils.corpus dan tomotopy.ldamodel.docs disatukan. Sekarang Anda dapat mengakses dokumen dalam corpus dengan cara yang sama.
- __getitem__ dari tomotopy.utils.corpus ditingkatkan. Tidak hanya pengindeksan oleh INT, tetapi juga oleh Iterable [int], pengiris didukung. Pengindeksan oleh UID juga didukung.
- Metode baru tomotopy.utils.corpus.extract_ngrams dan tomotopy.utils.corpus.concat_ngrams ditambahkan. Mereka mengekstraksi kolokasi n-gram menggunakan PMI dan menggabungkannya menjadi satu kata.
- Metode baru tomotopy.ldamodel.add_corpus ditambahkan, dan tomotopy.ldamodel.infer dapat menerima corpus sebagai input.
- Modul baru tomotopy. Koherensi ditambahkan. Ini menyediakan cara untuk menghitung koherensi model.
- Paramter window_size ditambahkan ke tomotopy.label.forelevance.
- Suatu masalah diperbaiki di mana Nan sering terjadi ketika melatih tomotopy.hdpmodel.
- Sekarang Python3.9 didukung.
- Ketergantungan pada py-cpuinfo telah dihapus dan inisialisasi modul ditingkatkan.
- 0.9.1 (2020-08-08)
- Kebocoran memori versi 0.9.0 telah diperbaiki.
- tomotopy.ctmodel.summary () diperbaiki.
- 0.9.0 (2020-08-04)
- Metode tomotopy.ldamodel.summary (), yang mencetak ringkasan model yang dapat dibaca manusia, telah ditambahkan.
- Generator nomor paket acak telah diganti dengan eigenrand. Ini mempercepat pembuatan angka acak dan memecahkan perbedaan hasil antara platform.
- Karena di atas, bahkan jika biji sama, hasil pelatihan model mungkin berbeda dari versi sebelum 0.9.0.
- Memperbaiki kesalahan pelatihan di tomotopy.hdpmodel.
- tomotopy.dmrmodel.alpha sekarang menunjukkan Dirichlet sebelum distribusi topik per-dokumen oleh metadata.
- tomotopy.dtmodel.get_count_by_topics () telah dimodifikasi untuk mengembalikan ndarray 2-dimensi.
- tomotopy.dtmodel.alpha telah dimodifikasi untuk mengembalikan nilai yang sama dengan tomotopy.dtmodel.get_alpha ().
- Memperbaiki masalah di mana nilai metadata tidak dapat diperoleh untuk dokumen tomotopy.gdmrmodel.
- tomotopy.hldamodel.alpha sekarang menunjukkan Dirichlet sebelum distribusi kedalaman per-dokumen.
- tomotopy.ldamodel.global_step telah ditambahkan.
- tomotopy.mgldamodel.get_count_by_topics () sekarang mengembalikan jumlah kata untuk topik global dan lokal.
- tomotopy.pamodel.alpha, tomotopy.pamodel.subalpha, dan tomotopy.pamodel.get_count_by_super_topic () telah ditambahkan.
- 0.8.2 (2020-07-14)
- Properti baru tomotopy.dtmodel.num_timepoints dan tomotopy.dtmodel.num_docs_by_timepoint telah ditambahkan.
- Bug yang menyebabkan hasil yang berbeda dengan platform yang berbeda bahkan jika biji sama diperbaiki sebagian. Sebagai hasil dari perbaikan ini, sekarang tomotopy dalam 32 bit menghasilkan hasil pelatihan yang berbeda dari versi sebelumnya.
- 0.8.1 (2020-06-08)
- Bug di mana tomotopy.ldamodel.used_vocabs mengembalikan nilai yang salah telah diperbaiki.
- Sekarang tomotopy.ctmodel.prior_cov mengembalikan matriks kovarians dengan bentuk [k, k].
- Sekarang tomotopy.ctmodel.get_correlations dengan argumen kosong mengembalikan matriks korelasi dengan bentuk [k, k].
- 0.8.0 (2020-06-06)
- Karena Numpy diperkenalkan dalam tomotopy, banyak metode dan sifat tomotopy Return tidak hanya daftar, tetapi numpy.ndarray sekarang.
- Tomotopy memiliki ketergantungan baru numpy> = 1.10.0.
- Estimasi tomotopy.hdpmodel.infer yang salah telah diperbaiki.
- Metode baru tentang mengonversi HDPModel ke lDamodel ditambahkan.
- Properti baru termasuk tomotopy.ldamodel.used_vocabs, tomotopy.ldamodel.used_vocab_freq dan tomotopy.ldamodel.used_vocab_df ditambahkan ke dalam model topik.
- Model topik G-DMR baru (tomotopy.gdmrmodel) ditambahkan.
- Kesalahan pada menginisialisasi tomotopy.label.forelevance dalam macOS diperbaiki.
- Kesalahan yang terjadi saat menggunakan tomotopy.utils.corpus dibuat tanpa parameter mentah diperbaiki.
- 0.7.1 (2020-05-08)
- tomotopy.document.path ditambahkan untuk tomotopy.hldamodel.
- Bug korupsi memori di tomotopy.label.pmiExtractor sudah diperbaiki.
- Kesalahan kompilasi di GCC 7 telah diperbaiki.
- 0.7.0 (2020-04-18)
- tomotopy.dtmodel ditambahkan ke dalam paket.
- Bug di tomotopy.utils.corpus.save sudah diperbaiki.
- Metode baru tomotopy.document.get_count_vector ditambahkan ke kelas dokumen.
- Sekarang distribusi Linux menggunakan Manylinux2010 dan optimasi tambahan diterapkan.
- 0.6.2 (2020-03-28)
- Bug kritis yang terkait dengan simpan dan beban telah diperbaiki. Versi 0.6.0 dan 0.6.1 telah dihapus dari rilis.
- 0.6.1 (2020-03-22) (dihapus)
- Bug yang terkait dengan pemuatan modul telah diperbaiki.
- 0.6.0 (2020-03-22) (dihapus)
- tomotopy.utils.corpus kelas yang mengelola banyak dokumen dengan mudah ditambahkan.
- Metode tomotopy.ldamodel.set_word_prior yang mengontrol prior-topik-topik dari model topik ditambahkan.
- Argumen baru min_df yang menyaring kata -kata berdasarkan frekuensi dokumen ditambahkan ke dalam setiap model topik __init__.
- tomotopy.label, submodule tentang pelabelan topik ditambahkan. Saat ini, hanya tomotopy.label.forelevance yang disediakan.
- 0.5.2 (2020-03-01)
- Masalah kesalahan segmentasi ditetapkan dalam tomotopy.lldamodel.add_doc.
- Bug ditetapkan bahwa infer tomotopy.hdpmodel terkadang merusak program.
- Masalah kecelakaan ditetapkan dari tomotopy.ldamodel.infer dengan ps = tomotopy.parallelscheme.partition, bersama = true.
- 0.5.1 (2020-01-11)
- Sebuah bug ditetapkan bahwa tomotopy.sldamodel.make_doc tidak mendukung nilai yang hilang untuk y.
- Sekarang tomotopy.sldamodel sepenuhnya mendukung nilai yang hilang untuk variabel respons y. Dokumen dengan nilai yang hilang (NAN) termasuk dalam topik pemodelan, tetapi dikecualikan dari regresi variabel respons.
- 0.5.0 (2019-12-30)
- Sekarang tomotopy.pamodel.infer mengembalikan kedua distribusi topik dan distribusi sub-topik.
- Metode baru get_sub_topics dan get_sub_topic_dist ditambahkan ke tomotopy.document. (untuk Pamodel)
- Paralel parameter baru ditambahkan untuk metode tomotopy.ldamodel.train dan tomotopy.ldamodel.infer. Anda dapat memilih algoritma paralelisme dengan mengubah parameter ini.
- tomotopy.parallelscheme.partition, algoritma baru, ditambahkan. Ini bekerja secara efisien ketika jumlah pekerja besar, jumlah topik atau ukuran kosakata besar.
- Bug di mana RM_TOP tidak bekerja di Min_CF <2 telah diperbaiki.
- 0.4.2 (2019-11-30)
- Penugasan topik yang salah dari tomotopy.lldamodel dan tomotopy.plDamodel diperbaiki.
- __Repr__ dapat dibaca dari tomotopy.document dan tomotopy.dictionary diimplementasikan.
- 0.4.1 (2019-11-27)
- Bug pada fungsi init tomotopy.plDamodel diperbaiki.
- 0.4.0 (2019-11-18)
- Model baru termasuk tomotopy.pldamodel dan tomotopy.hldamodel ditambahkan ke dalam paket.
- 0.3.1 (2019-11-05)
- Masalah di mana get_topic_dist () mengembalikan nilai yang salah ketika min_cf atau rm_top diatur telah diperbaiki.
- Nilai pengembalian get_topic_dist () dari dokumen tomotopy.mgldamodel ditetapkan untuk memasukkan topik lokal.
- Kecepatan estimasi dengan TW = satu ditingkatkan.
- 0.3.0 (2019-10-06)
- Model baru, tomotopy.lldamodel ditambahkan ke dalam paket.
- Masalah hdpmodel yang mogok telah diperbaiki.
- Karena estimasi hiperparameter untuk HDPModel diimplementasikan, hasil HDPModel mungkin berbeda dari versi sebelumnya.
- Jika Anda ingin mematikan estimasi hyperparameter HDPModel, atur Optim_interval ke nol.
- 0.2.0 (2019-08-18)
- Model baru termasuk tomotopy.ctmodel dan tomotopy.sldamodel ditambahkan ke dalam paket.
- Opsi parameter baru RM_TOP ditambahkan untuk semua model topik.
- Masalah dalam metode simpan dan muat untuk Pamodel dan hpamodel diperbaiki.
- Kecelakaan sesekali dalam memuat HDPModel telah diperbaiki.
- Masalah bahwa ll_per_word dihitung secara tidak benar ketika min_cf> 0 diperbaiki.
- 0.1.6 (2019-08-09)
- Kompilasi kesalahan pada dentang dengan lingkungan macOS telah diperbaiki.
- 0.1.4 (2019-08-05)
- Masalah saat Add_Doc menerima daftar kosong karena input telah diperbaiki.
- Masalah bahwa tomotopy.pamodel.get_topic_words tidak mengekstraksi distribusi kata subtopik telah diperbaiki.
- 0.1.3 (2019-05-19)
- Parameter MIN_CF dan fungsi penghapusan stopword ditambahkan untuk semua model topik.
- 0.1.0 (2019-05-12)
Binding untuk bahasa lain
- Ruby: https://github.com/ankane/tomoto
Perpustakaan yang dibundel dan lisensi mereka
- Eigen: Aplikasi ini menggunakan fitur Mpl2-Licensed dari Eigen, perpustakaan template C ++ untuk aljabar linier. Salinan lisensi MPL2 tersedia di https://www.mozilla.org/en-us/mpl/2.0/. Kode sumber perpustakaan eigen dapat diperoleh di http://eigen.tuxfamily.org/.
- Eigenrand: Lisensi MIT
- Varian Mapbox: Lisensi BSD
Kutipan
@software {minchul_lee_2022_6868418,
penulis = {Minchul Lee},
title = {bab2min/tomotopy: 0.12.3},
Bulan = Jul,
tahun = 2022,
publisher = {zenodo},
versi = {v0.12.3},
doi = {10.5281/zenodo.6868418},
url = {https://doi.org/10.5281/zenodo.6868418}
}