Maybaygiare.org

Blog Network

modele.ldamodel – latent Dirichlet Alocation

Exemple de Utilizare

antrenați un model LDA folosind un corpus Gensim

>>> from gensim.test.utils import common_texts>>> from gensim.corpora.dictionary import Dictionary>>>>>> # Create a corpus from a list of texts>>> common_dictionary = Dictionary(common_texts)>>> common_corpus = >>>>>> # Train the model on the corpus.>>> lda = LdaModel(common_corpus, num_topics=10)

salvați un model pe disc sau reîncărcați un model pre-instruit

>>> from gensim.test.utils import datapath>>>>>> # Save model to disk.>>> temp_file = datapath("model")>>> lda.save(temp_file)>>>>>> # Load a potentially pretrained model from disk.>>> lda = LdaModel.load(temp_file)

interogare, modelul folosind documente noi, nevăzute

>>> # Create a new corpus, made of previously unseen documents.>>> other_texts = ,... ,... ... ]>>> other_corpus = >>>>>> unseen_doc = other_corpus>>> vector = lda # get topic probability distribution for a document

actualizați modelul de formare treptat pe noul corpus

>>> lda.update(other_corpus)>>> vector = lda

o mulțime de parametri pot fi reglate pentru a optimiza de formare pentru cazul dumneavoastră specifice

>>> lda = LdaModel(common_corpus, num_topics=50, alpha='auto', eval_every=5) # learn asymmetric alpha from data

class gensim.models.ldamodel.LdaModel(corpus=None, num_topics=100, id2word=None, distributed=False, chunksize=2000, passes=1, update_every=1, alpha=’symmetric’, eta=None, decay=0.5, offset=1.0, eval_every=10, iterations=50, gamma_threshold=0.001, minimum_probability=0.01, random_state=None, ns_conf=None, minimum_phi_value=0.01, per_word_topics=False, callbacks=None, dtype=<class ‘numpy.float32’>)¶

Bases: gensim.interfaces.TransformationABCgensim.models.basemodel.BaseTopicModel

antrenează și folosește modele de alocare Dirichlet latentă online (OLDA) așa cum sunt prezentate inHoffman și colab. : „Învățare Online pentru alocarea latentă Dirichlet”.

Exemple

inițializați un model folosind un corpus Gensim

>>> from gensim.test.utils import common_corpus>>>>>> lda = LdaModel(common_corpus, num_topics=10)

puteți deduce apoi distribuții de subiecte pe documente noi, nevăzute.

>>> doc_bow = >>> doc_lda = lda

modelul poate fi actualizat (instruit) cu documente noi.

>>> # In practice (corpus =/= initial training corpus), but we use the same here for simplicity.>>> other_corpus = common_corpus>>>>>> lda.update(other_corpus)

persistența modelului se realizează prinload() șisave() metode.

parametri

  • corpus (iterabil de listă de (int, float), opțional) – flux de vectori de documente sau matrice rară de formă (num_documents, num_terms).Dacă aveți o matrice CSC în memorie, o puteți converti în Corpus astreamed cu ajutorul gensim.matutils.Sparse2Corpus.Dacă nu este dat, modelul este lăsat neinstruit (probabil pentru că doriți să apelațiupdate() manual).

  • num_topics (int, opțional) – numărul de subiecte latente solicitate pentru a fi extrase din corpusul de formare.

  • id2word ({dict de (int, str), gensim.corpora.dictionary.Dictionary}) – maparea de la ID-uri de cuvinte la cuvinte. Este folosit pentru a determina dimensiunea vocabularului, precum și pentrudebugging și imprimare subiect.

  • distribuit (bool, opțional) – dacă calculul distribuit ar trebui utilizat pentru a accelera antrenamentul.

  • chunksize (int, opțional) – numărul de documente care trebuie utilizate în fiecare bucată de formare.

  • trece (int, opțional) – numărul de treceri prin corpus în timpul antrenamentului.

  • update_every (int, opțional) – numărul de documente care trebuie iterate pentru fiecare actualizare.Setați la 0 pentru învățarea în lot, > 1 pentru învățarea iterativă online.

  • alfa ({numpy.ndarray, str}, opțional)-

    poate fi setat la o matrice 1D de lungime egală cu numărul de subiecte așteptate care exprimă credința noastră a-priori pentru probabilitatea fiecărui subiect.În mod alternativ, strategiile implicite de selectare prealabilă pot fi utilizate prin furnizarea unui șir:

    • ‘symmetric’: Default; folosește un prior simetric fix per subiect,

    • ‘asymmetric’: folosește un prior asimetric normalizat fix de 1.0 / (topic_index + sqrt(num_topics)),

    • ‘auto’: învață un prior asimetric din corpusul (nu este disponibil dacă este distribuit==adevărat).

  • eta ({float, np.array, str}, opțional – –

    credința A-priori asupra probabilității cuvântului, aceasta poate fi:

    • scalar pentru un prior simetric peste probabilitatea subiect/cuvânt,

    • vector de lungime num_words pentru a desemna o probabilitate asimetrică definită de utilizator pentru fiecare cuvânt,

    • matrice de formă (num_topics, num_words) pentru a atribui o probabilitate pentru fiecare combinație cuvânt-subiect,

    • șirul ‘auto’ pentru a afla priorul asimetric din date.

  • decădere (float, opțional) – un număr între (0.5, 1] pentru a cântări ce procent din valoarea lambda anterioară este uitatcând fiecare document nou este examinat. Corespunde lui Kappa de lamatthew D. Hoffman, David M. Blei, Francis Bach:”învățarea Online pentru alocarea latentă Dirichlet NIPS’10”.

  • offset (float, opțional) –

    hiper-parametru care controlează cât de mult vom încetini primii pași primele câteva iterații.Corespunde Tau_0 de la Matthew D. Hoffman, David M. Blei, Francis Bach:”învățarea Online pentru alocarea latentă Dirichlet NIPS’10”.

  • eval_every (int, opțional) – log perplexitate este estimat la fiecare că multe actualizări. Setarea acesteia la una încetinește antrenamentul cu ~2x.

  • iterații (int, opțional) – numărul maxim de iterații prin corpus atunci când se deduce distribuția subiectului unui corpus.

  • gamma_threshold (float, opțional) – modificarea minimă a valorii parametrilor gamma pentru a continua iterarea.

  • minimum_probability (float, opțional) – subiectele cu o probabilitate mai mică decât acest prag vor fi filtrate.

  • random_state ({np.aleator.RandomState, int}, opțional) – fie un obiect randomState, fie o sămânță pentru a genera unul. Util pentru reproductibilitate.

  • ns_conf (dict de (str, obiect), opțional) – parametrii cheie cuvânt propagat lagensim.utils.getNS() pentru a obține un Nameserved Pyro4.Utilizat numai dacă distribuit este setat la True.

  • minimum_phi_value (float, opțional) – dacă per_word_topics este adevărat, aceasta reprezintă o limită inferioară a termenului probabilități.

  • per_word_topics (bool) – dacă este adevărat, modelul calculează și o listă de subiecte, sortate în ordinea descrescătoare a celor mai probabile subiecte pentru fiecare cuvânt, împreună cu valorile phi înmulțite cu lungimea caracteristicii (adică numărul de cuvinte).

  • callback – uri (ListaCallback) – callback-uri metrice pentru a înregistra și vizualiza valorile de evaluare ale modelului în timpul antrenamentului.

  • dtype ({numpy.float16, numpy.float32, numpy.float64}, opțional)-tip de date de utilizat în timpul calculelor din interiorul modelului. Toate intrările sunt, de asemenea, convertite.

add_lifecycle_event(event_name, log_level=20, **event)

adăugați un eveniment în atributul lifecycle_events al acestui obiect și, de asemenea, înregistrați evenimentul la log_level.

evenimentele sunt momente importante din viața obiectului, cum ar fi „modelul creat”,”modelul salvat”, „modelul încărcat” etc.

atributul lifecycle_events este persistat în operațiilesave()șiload(). Nu are niciun impact asupra utilizării modelului,dar este util în timpul depanării și suportului.

Set de sine.lifecycle_events = nici unul pentru a dezactiva acest comportament. Apelurile către add_lifecycle_event () nu vor înregistra evenimente în sine.lifecycle_events atunci.

parametrii

  • event_name (str) – numele evenimentului. Poate fi orice etichetă, de exemplu „creat”, „stocat” etc.

  • eveniment (dict) –

    cartografiere cheie-valoare pentru a adăuga la sine.lifecycle_events. Ar trebui să fie JSON-serializabil, așa că păstrați-l simplu.Poate fi gol.

    această metodă va adăuga automat următoarele valori cheie la eveniment, deci nu trebuie să le specificați:

    • datetime: data curentă & timp

    • gensim: versiunea curentă Gensim

    • python: versiunea curentă Python

    • platformă: platforma curentă

    • eveniment: numele acestui eveniment

  • log_level (Int) – de asemenea, înregistrați dict-ul complet al evenimentului, la nivelul jurnal specificat. Setați la Fals pentru a nu vă conecta deloc.

bound(corpus, gamma=None, subsample_ratio=1.0)

estimați legătura variațională a documentelor din corpus ca E_q – E_q.

parametri

  • corpus (iterabil de listă de (int, float), opțional) – flux de vectori de documente sau matrice rară de formă (num_documente, num_terms) utilizate pentru a estima limitele variabile.

  • gamma (numpy.ndarray, opțional) – parametrii variaționali ai greutății subiectului pentru fiecare document. Dacă nu este furnizat, acesta va fi dedus din model.

  • subsample_ratio (float, opțional) – procent din întregul corpus reprezentat de argumentul corpus trecut (în cazul în care acesta a fost un eșantion).Setați la 1.0 dacă întregul corpus a fost trecut.Acesta este folosit ca factor multiplicativ pentru a scala Probabilitatea în mod corespunzător.

returnează

scorul legat variațional calculat pentru fiecare document.

tip retur

numpy.ndarray

clear ()

Sterge starea modelului pentru a elibera memorie. Utilizat în implementarea distribuită.

diff(altele, distance=’kullback_leibler’, num_words=100, n_ann_terms=10, diagonal=False, adnotare=True, normed=True)

calculați diferența în distribuțiile de subiecte între două modele: sine și altele.

parametri

  • altele (LdaModel) – modelul care va fi comparat cu obiectul curent.

  • distance ({‘kullback_leibler’,’ hellinger’,’ jaccard’,’ jensen_shannon’}) – metrica distanței pentru a calcula diferența cu.

  • num_words (int, opțional) – numărul celor mai relevante cuvinte folosite dacă distance == ‘jaccard’. De asemenea, utilizat pentru adnotarea subiectelor.

  • n_ann_terms (int, opțional) – număr maxim de cuvinte în intersecție/diferență simetrică între subiecte. Folosit pentru adnotare.

  • diagonal (bool, opțional) – dacă avem nevoie de diferența dintre subiecte identice (diagonala matricei de diferență).

  • adnotare (bool, opțional) – dacă intersecția sau diferența de cuvinte între două subiecte ar trebui returnate.

  • normed (bool, opțional) – dacă matricea trebuie normalizată sau nu.

returnează

  • numpy.ndarray – o matrice diferență. Fiecare element corespunde diferenței dintre cele două subiecte,forma (sine.num_topics, alte.num_topics)

  • numpy.ndarray, opțional-matrice de adnotare unde pentru fiecare pereche includem cuvântul din intersecția celor două subiecte și cuvântul din diferența simetrică a celor două subiecte. Inclus numai dacă adnotare = = adevărat.Forma (sine.num_topics, other_model.num_topics, 2).

Exemple

Obțineți diferențele dintre fiecare pereche de subiecte deduse de două modele

>>> from gensim.models.ldamulticore import LdaMulticore>>> from gensim.test.utils import datapath>>>>>> m1 = LdaMulticore.load(datapath("lda_3_0_1_model"))>>> m2 = LdaMulticore.load(datapath("ldamodel_python_3_5"))>>> mdiff, annotation = m1.diff(m2)>>> topic_diff = mdiff # get matrix with difference for each topic pair from `m1` and `m2`

do_estep(bucată, stat=nici unul) și acumulați Statisticile suficiente colectate. parametri

  • bucată (lista listei de (int, float)) – bucată de corp pe care va fi efectuată etapa de inferență.

  • stat (LdaState, opțional) – statul care urmează să fie actualizat cu statisticile suficiente nou acumulate. Dacă nici unul, modeleleel însuși.statul este actualizat.

returnează

parametrii Gamma care controlează greutățile subiectului, forma (len(bucată), auto.num_topics).

tip retur

numpy.ndarray

do_mstep(rho, altele, extra_pass=False)

etapa de maximizare: utilizați interpolarea liniară între subiectele existente șia colectat suficiente statistici în altele pentru a actualiza subiectele.

parametrii

  • rho (float) – rata de învățare.

  • altele (LdaModel) – modelul ale cărui statistici suficiente vor fi utilizate pentru actualizarea subiectelor.

  • extra_pass (bool, opțional) – dacă acest pas a necesitat o trecere suplimentară peste corpus.

get_document_topics(bow, minimum_probability=None, minimum_phi_value=None, per_word_topics=False)

Obțineți distribuția subiectului pentru documentul dat.

parametrii

  • bow (corpus: lista (int, float)) – documentul în format BOW.

  • minimum_probability (float) – subiectele cu o probabilitate atribuită mai mică decât acest prag vor fi eliminate.

  • minimum_phi_value (float) –

    dacă per_word_topics este adevărat, aceasta reprezintă o limită inferioară a termenului probabilități care sunt incluse.

    dacă este setat la None, o valoare de 1e-8 este utilizată pentru a preveni 0s.

  • per_word_topics (bool) – dacă este adevărat, această funcție va returna, De asemenea, două liste suplimentare, așa cum este explicat în secțiunea „returnări”.

returnează

  • lista (int, float) – distribuție subiect pentru întregul document. Fiecare element din listă este o pereche de ID-uri ale unui subiect șiprobabilitatea care i-a fost atribuită.

  • lista de (int, lista de (int, float), opțional – subiectele cele mai probabile pe cuvânt. Fiecare element din listă este o pereche de ID-ul unui cuvânt, și o listă desubiecte sortate după relevanța lor pentru acest cuvânt. Returnat numai dacă per_word_topics a fost setat la True.

  • lista de (int, lista de float), opțional – valori de relevanță Phi, înmulțită cu lungimea caracteristică, pentru fiecare combinație cuvânt-subiect.Fiecare element din listă este o pereche de ID-ul unui cuvânt și o listă a valorilor phi între acest cuvânt șifiecare subiect. Returnat numai dacă per_word_topics a fost setat la True.

get_term_topics(word_id, minimum_probability=None)

Obțineți cele mai relevante subiecte pentru cuvântul dat.

parametri

  • word_id (int) – cuvântul pentru care va fi calculată distribuția subiectului.

  • minimum_probability (float, opțional) – subiectele cu o probabilitate atribuită sub acest prag vor fi eliminate.

returnează

subiectele relevante reprezentate ca perechi ale ID-ului lor și probabilitatea lor atribuită, sortată în funcție de relevanța cuvântului dat.

tip retur

lista de (int, float)

get_topic_terms(topicid, topn=10)

obțineți reprezentarea pentru un singur subiect. Cuvinte ID-urile întregi, în constrast la show_topic() care reprezintă cuvintele după șirurile reale.

parametri

  • topicid (int) – ID – ul subiectului care trebuie returnat

  • topn (int, opțional) – numărul celor mai semnificative cuvinte asociate subiectului.

returnează

perechi de probabilitate Id – cuvânt pentru cele mai relevante cuvinte generate de subiect.

tip de retur

lista de (int, float)

get_topics ()

Obțineți matricea termen-subiect învățată în timpul inferenței.

returnează

probabilitatea pentru fiecare cuvânt din fiecare subiect, formă (num_topics, vocabulary_size).

tip retur

numpy.ndarray

inference(bucată, collect_sstats=False)

având în vedere o bucată de vectori de documente rare, estimați gamma (parametrii care controlează greutățile subiectului)pentru fiecare document din bucată.

această funcție nu modifică modelul întreaga bucată de intrare a documentului se presupune că se potrivește în memoria RAM;chunking-ul unui corpus mare trebuie făcut mai devreme în conductă. Evită calculul Phi variationalparameter direct folosind optimizarea prezentată înlee, Seung: algoritmi pentru factorizarea matricei non-negative”.

parametri

  • bucată (lista listei de (int, float)) – bucată de corp pe care va fi efectuată etapa de inferență.collect_sstats (bool, opțional) – dacă este setat la True, colectați (și returnați) suficiente statistici necesare pentru a actualiza subiectul modelului-worddistributions.

returnează

primul element este întotdeauna returnat și corespunde matricei gamma a stărilor. Al doilea element este returnat numai dacă collect_sstats == True și corespunde statisticilor suficiente pentru pasul M.

tip retur

(numpy.ndarray, {numpy.ndarray, None})

init_dir_prior(prior, name)

inițializează priors pentru distribuția Dirichlet.

parametrii

  • înainte ({str, lista de float, numpy.ndarray de float, float}) –

    credința A-priori asupra probabilității cuvântului. Dacă name = = ‘ eta ‘ atunci priorul poate fi:

    • scalar pentru un prior simetric peste probabilitatea subiect/cuvânt,

    • vector de lungime num_words pentru a desemna o probabilitate asimetrică definită de utilizator pentru fiecare cuvânt,

    • matrice de formă (num_topics, num_words) pentru a atribui o probabilitate pentru fiecare combinație cuvânt-subiect,

    • șirul ‘auto’ pentru a afla priorul asimetric din date.

    dacă name == ‘alpha’, atunci priorul poate fi:

    • o matrice 1D de lungime egală cu numărul de subiecte așteptate,

    • ‘symmetric’: folosește un prior simetric fix pentru fiecare subiect,

    • ‘asymmetric’: folosește un prior asimetric normalizat fix de 1.0/(topic_index + sqrt(num_topics)),

    • ‘auto’: învață un prior asimetric din Corpus.

  • nume ({‘alpha’, ‘eta’}) – dacă priorul este parametrizat de vectorul alfa (1 parametru pe subiect)sau de ETA (1 parametru pe termen unic în vocabular).

classmethodload(fname, *args, **kwargs)

încărcați ungensim.models.ldamodel.LdaModel salvat anterior din fișier.

Vezi și

save()

salvează modelul.

parametri

  • fname (str) – Calea către fișierul în care este stocat modelul.

  • *args – argumente poziționale propagate laload().

  • **kwargs – argumente cuvânt cheie propagate laload().

Exemple

matrice mari pot fi memmap’ed înapoi ca read-only (memorie partajată) prin setarea mmap=’r’:

>>> from gensim.test.utils import datapath>>>>>> fname = datapath("lda_3_0_1_model")>>> lda = LdaModel.load(fname, mmap='r')

log_perplexity(bucată, total_docs calculeaza si returneaza Probabilitatea pe cuvant legata, folosind o bucata de documente ca corpus de evaluare.

de asemenea, de ieșire Statisticile calculate, inclusiv perplexity=2^(-bound), pentru a vă conecta la nivel INFO.

parametri

  • bucată (lista listei de (int, float)) – bucată de corp pe care va fi efectuată etapa de inferență.

  • total_docs (int, opțional) – numărul de documente utilizate pentru evaluarea nedumeririi.

returnează

scorul legat variațional calculat pentru fiecare cuvânt.

tip retur

numpy.ndarray

print_topic(topicno, topn=10)

obțineți un singur subiect ca șir formatat.

parametrii

  • topicno (int) – Id subiect.

  • topn (int) – Numărul de cuvinte din subiect care vor fi utilizate.

returnează

reprezentarea șir de subiect, cum ar fi ‘-0.340 * „Categorie” + 0.298 * „$m$” + 0.183 * „algebra” + … ‘.

tip retur

str

print_topics(num_topics=20, num_words=10)

obțineți cele mai semnificative subiecte (alias pentru metoda show_topics ()).

parametri

  • num_topics (int, opțional) – numărul de subiecte care trebuie selectate, dacă -1 – toate subiectele vor fi în rezultat (ordonate după semnificație).

  • num_words (int, opțional) – numărul de cuvinte care trebuie incluse pe subiecte (ordonate după semnificație).

returnează

secvență cu (topic_id, ).

tip retur

lista (int, lista (str, float))

save(fname, ignore=(‘state’, ‘dispecer’), separat=None, *args, **kwargs)

salvați modelul într-un fișier.

matrice interne mari pot fi stocate în fișiere separate, cu fname ca prefix.

Note

Dacă intenționați să utilizați modele peste Python 2/3 versiuni există câteva lucruri tokeep în minte:

  1. dicționarele Python murate nu vor funcționa în versiunile Python

  2. metoda de salvare nu salvează automat toate matricele numpy separat, ci doar cele care depășesc sep_limit stabilite însave(). Mainconcern aici este matricea alpha dacă, de exemplu, folosind alpha = ‘auto’.

vă rugăm să consultați secțiunea rețete wiki pentru un exemplu despre cum să rezolvați aceste probleme.

Vezi și

load()

model de încărcare.

parametri

  • fname (str) – Calea către fișierul de sistem în care modelul va fi persistat.

  • ignore (tuplu de str, opțional) – atributele numite din tuplu vor fi lăsate în afara modelului murat. Motivul pentru care starea internă este ignorată în mod implicit este că folosește propria sa serializare mai degrabă decât cea oferită de această metodă.

  • separat ({list of str, None}, opțional) – dacă nu – detectează automat numpy / scipy mare.tablouri rare în obiectul stocat și stocațiele în fișiere separate. Acest lucru evită erorile de memorie marinate și permite MMAP ‘ ing arraysback mare pe sarcină eficient. Dacă lista de str-aceste atribute vor fi stocate în fișiere separate,verificarea automată nu se efectuează în acest caz.

  • *args – argumente poziționale propagate lasave().

  • **kwargs – argumente de cuvinte cheie propagate lasave().

show_topic(topicid, topn=10)

obțineți reprezentarea pentru un singur subiect. Cuvinte aici sunt siruri de caractere reale, în constrast laget_topic_terms() care reprezintă cuvinte de ID-ul lor de vocabular.

parametri

  • topicid (int) – ID – ul subiectului care trebuie returnat

  • topn (int, opțional) – numărul celor mai semnificative cuvinte asociate subiectului.

returnează

perechi cuvânt – probabilitate pentru cele mai relevante cuvinte generate de subiect.

tip retur

lista (str, float)

show_topics(num_topics=10, num_words=10, log=False, formatat=True)

obțineți o reprezentare pentru subiectele selectate.

parametri

  • num_topics (int, opțional) – numărul de subiecte care trebuie returnate. Spre deosebire de LSA, nu există o ordonare naturală între subiectele din LDA.Prin urmare, subsetul subiecte returnate al tuturor subiectelor este arbitrar și se poate schimba între două runde LDAtraining.

  • num_words (int, opțional) – numărul de cuvinte care trebuie prezentate pentru fiecare subiect. Acestea vor fi cele mai relevante cuvinte (atribuite cele mai înalteprobabilitate pentru fiecare subiect).

  • log (bool, opțional) – dacă ieșirea este, de asemenea, înregistrată, pe lângă faptul că este returnată.

  • formatat (bool, opțional) – dacă reprezentările subiectului trebuie formatate ca șiruri de caractere. Dacă sunt False, acestea sunt returnate Ca2 tupluri de (cuvânt, probabilitate).

returnează

o listă de subiecte, fiecare reprezentat fie ca un șir (când formatat == True) sau word-probabilitypairs.

tip retur

lista {str, tuple of (str, float)}

sync_state(current_Elogbeta=None)

propagați probabilitățile subiectelor de stări la atributul obiectului interior.

parametrii

current_Elogbeta (numpy.ndarray) – probabilități posterioare pentru fiecare subiect, opțional.Dacă este omis, va primi Elogbeta de la stat.

top_topics(corpus=None, texts=None, dictionary=None, window_size=None, coherence=’u_mass’, topn=20, processes=-1)

obțineți subiectele cu cel mai mare scor de coerență coerența pentru fiecare subiect.

parametri

  • corpus (iterabil de listă de (int, float), opțional) – Corpus în format arc.

  • texte (lista listei de str, opțional) – texte tokenizate, necesare pentru modele de coerență care utilizează ferestre glisante (adică. coerență=`c_something’) estimator de probabilitate .

  • dicționar (Dictionary, opțional) – gensim cartografiere dicționar de ID cuvânt pentru a crea corpus.Dacă model. id2word este prezent, acest lucru nu este necesar. În cazul în care ambele sunt furnizate, dicționar a trecut vor fi utilizate.

  • window_size (int, opțional) – este dimensiunea ferestrei care urmează să fie utilizată pentru măsuri de coerență folosind fereastra glisantă booleană ca estimator al probabilității. Pentru ‘u_mass’ asta nu contează.Dacă nu există-sunt utilizate dimensiunile implicite ale ferestrei care sunt: ‘c_v’ – 110, ‘c_uci’ – 10, ‘c_npmi’ – 10.

  • coerență ({‘u_mass’, ‘c_v’, ‘c_uci’, ‘c_npmi’}, opțional) – măsură de coerență care trebuie utilizată.Cea mai rapidă metodă – ‘u_mass’, ‘c_uci’, de asemenea, cunoscut sub numele de c_pmi.Pentru ‘u_mass’ corpus ar trebui să fie furnizate, în cazul în care textele sunt furnizate, acesta va fi convertit la corpususing dicționar. Pentru textele’ c_v’,’ c_uci ‘și’ c_npmi ‘ ar trebui furnizate (corpus nu este necesar)

  • topn (int, opțional) – întreg corespunzător numărului de cuvinte de top care trebuie extrase din fiecare subiect.

  • procese (int, opțional) – numărul de procese de utilizat pentru faza de estimare a probabilității, orice valoare mai mică de 1 va fi interpretată asnum_cpus – 1.

returnează

fiecare element din listă este o pereche de reprezentare a unui subiect și scorul său de coerență. Reprezentări de subiectesunt distribuții de cuvinte, reprezentate ca o listă de perechi de ID-uri de cuvinte și probabilitățile lor.

tip retur

lista (lista (int, str), float)

update(corpus, chunksize=None, decay=None, offset=None, passes=None, update_every=None, eval_every=None, iterations=None, gamma_threshold=None, chunks_as_numpy=False) em-iterarea peste corpus până când subiectele converg sau pânăse atinge numărul maxim de iterații permise. corpul trebuie să fie iterabil.

în modul distribuit, pasul E este distribuit pe un grup de mașini.

Note

această actualizare acceptă, de asemenea, actualizarea unui model deja instruit cu documente noi; cele două modele sunt apoi fuzionate proporțional cu numărul de documente vechi vs.noi. Această caracteristică este încă experimentală pentru non-staționarefluxuri de intrare. Pentru intrarea staționară (fără drift de subiect în documente noi), pe de altă parte, aceasta este egalăactualizarea online a Matthew D. Hoffman, David M. Blei, Francis Bach:”învățare Online pentru alocarea latentă Dirichlet NIPS’10”.și este garantat să convergă pentru orice decădere în (0,5, 1,0). În plus, pentru dimensiuni mai mici ale corpului, o compensare în creștere poate fi benefică (a se vedea tabelul 1 din aceeași lucrare).

parametrii

  • corpus (iterabil de listă de (int, float), opțional) – flux de vectori de documente sau matrice rare de formă (num_documents, num_terms) utilizate pentru a actualiza themodel.

  • chunksize (int, opțional) – numărul de documente care trebuie utilizate în fiecare bucată de formare.

  • decădere (float, opțional) –

    un număr între (0,5, 1] la greutate Ce procent din valoarea lambda anterioară este uitatcând fiecare document nou este examinat. Corespunde lui Kappa de lamatthew D. Hoffman, David M. Blei, Francis Bach:”învățarea Online pentru alocarea latentă Dirichlet NIPS’10”.

  • offset (float, opțional) –

    hiper-parametru care controlează cât de mult vom încetini primii pași primele câteva iterații.Corespunde Tau_0 de la Matthew D. Hoffman, David M. Blei, Francis Bach:”învățarea Online pentru alocarea latentă Dirichlet NIPS’10”.

  • trece (int, opțional) – numărul de treceri prin corpus în timpul antrenamentului.

  • update_every (int, opțional) – numărul de documente care trebuie iterate pentru fiecare actualizare.Setați la 0 pentru învățarea în lot, > 1 pentru învățarea iterativă online.

  • eval_every (int, opțional) – log perplexitate este estimat la fiecare că multe actualizări. Setarea acesteia la una încetinește antrenamentul cu ~2x.

  • iterații (int, opțional) – numărul maxim de iterații prin corpus atunci când se deduce distribuția subiectului unui corpus.

  • gamma_threshold (float, opțional) – modificarea minimă a valorii parametrilor gamma pentru a continua iterarea.

  • chunks_as_numpy – bool, opțional) – dacă fiecare bucată a trecut la etapa de inferență ar trebui să fie un numpy.ndarray sau nu. Numpy poate, în unele setăritransforma ID-urile de termen în flotoare, acestea vor fi convertite înapoi în numere întregi în inferență, care suportă hit aperformance. Pentru calculul distribuit poate fi de dorit să păstrați bucățile ca numpy.ndarray.

update_alpha(gammat, rho)

parametrii de actualizare pentru Dirichlet prior pe ponderile subiect per-document.

parametrii

  • gammat (numpy.ndarray) – parametrii de greutate subiect anterior.

  • rho (float) – rata de învățare.

returnează

secvența parametrilor alfa.

tip retur

numpy.ndarray

update_eta(lambdat, rho)

parametrii de actualizare pentru Dirichlet prior pe ponderile de cuvinte pe subiect.

parametrii

  • lambdat (numpy.ndarray) – parametrii lambda anteriori.

  • rho (float) – rata de învățare.

returnează

parametrii eta actualizați.

tip retur

numpy.ndarray

clasagensim.models.ldamodel.LdaState(eta, forma, dtype=<clasa ‘numpy.float32 ‘ >) baze de date

:gensim.utils.SaveLoad

încapsulează informații pentru calculul distribuit al obiectelorLdaModel.

obiectele din această clasă sunt trimise prin rețea, așa că încercați să le păstrați lean lareducerea traficului.

parametrii

  • eta (numpy.ndarray) – probabilitățile anterioare atribuite fiecărui termen.

  • forma (tuplu de (int, int)) – forma statisticilor suficiente: (numărul de subiecte care trebuie găsite, numărul de termeni din vocabular).

  • dtype – tip) – suprascrie tipurile implicite matrice numpy.

add_lifecycle_event(event_name, log_level=20, **event)

adăugați un eveniment în atributul lifecycle_events al acestui obiect și, de asemenea, înregistrați evenimentul la log_level.

evenimentele sunt momente importante din viața obiectului, cum ar fi „modelul creat”,”modelul salvat”, „modelul încărcat” etc.

atributul lifecycle_events este persistat în operațiilesave()șiload(). Nu are niciun impact asupra utilizării modelului,dar este util în timpul depanării și suportului.

Set de sine.lifecycle_events = nici unul pentru a dezactiva acest comportament. Apelurile către add_lifecycle_event () nu vor înregistra evenimente în sine.lifecycle_events atunci.

parametrii

  • event_name (str) – numele evenimentului. Poate fi orice etichetă, de ex. „creat”,” stocat ” etc.

  • eveniment (dict) –

    cartografiere cheie-valoare pentru a adăuga la sine.lifecycle_events. Ar trebui să fie JSON-serializabil, așa că păstrați-l simplu.Poate fi gol.

    această metodă va adăuga automat următoarele valori cheie la eveniment, deci nu trebuie să le specificați:

    • datetime: data curentă & ora

    • gensim: versiunea curentă Gensim

    • python: versiunea curentă Python

    • platforma: platforma actuală

    • eveniment: numele acestui eveniment

  • log_level (int) – de asemenea, înregistrați dict-ul complet al evenimentului, la nivelul jurnal specificat. Setați la Fals pentru a nu vă conecta deloc.

blend(rhot, other, targetsize=None).

Numărul de documente este întins în ambele obiecte de stat, astfel încât acestea sunt de magnitudine comparabilă.Această procedură corespunde actualizării gradientului stocastic de lahoffman și colab. : „Învățare Online pentru alocarea latentă Dirichlet”, vezi ecuațiile (5) și (9).

parametrii

  • rhot (float) – greutatea celeilalte stări în media calculată. O valoare de 0,0 înseamnă că alteleeste complet ignorat. O valoare de 1,0 înseamnă că Sinele este complet ignorat.

  • altele (LdaState) – obiectul de stare cu care va fi fuzionat cel curent.

  • targetsize (int, opțional) – numărul de documente pentru a întinde ambele state.

blend2(rhot, other, targetsize=None).

spre deosebire deblend(), Statisticile suficiente nu sunt scalate înainte de agregare.

parametri

  • rhot (float) – neutilizat.

  • altele (LdaState) – obiectul de stare cu care va fi fuzionat cel curent.

  • targetsize (int, opțional) – numărul de documente pentru a întinde ambele state.

get_Elogbeta ()

obțineți probabilitățile jurnalului (posterior) pentru fiecare subiect.

returnează

probabilități posterioare pentru fiecare subiect.

tip retur

numpy.ndarray

get_lambda ()

obțineți parametrii posteriori peste subiecte, denumiți și „subiectele”.

returnează

parametrii probabilității posterioare pe subiecte.

tip retur

numpy.ndarray

classmethodload(fname, *args, **kwargs)

încărcați o stare stocată anterior de pe disc.

suprascrieload prin aplicarea parametrului dtype pentru a asigura compatibilitatea înapoi.

parametri

  • fname (str) – Calea către fișierul care conține obiectul necesar.

  • args (obiect) – parametrii poziționali care trebuie propagați la clasa:~gensim.utils.SaveLoad.încărcați

  • kwargs (obiect) – parametrii cheie-cuvânt care urmează să fie propagate la clasa:~gensim.utils.SaveLoad.load

returnează

starea încărcată din fișierul dat.

tip de retur

LdaState

merge(altele)

combinați rezultatul unui pas E dintr-un nod cu cel al altui nod (însumând suficiente statistici).

îmbinarea este banală și după îmbinarea tuturor nodurilor de cluster, avem același rezultat ca și cum calculul ar fi rulat pe un singur nod (noaproximare).

parametri

altele (LdaState) – obiectul de stare cu care va fi fuzionat cel curent.

reset () XV

pregătiți starea pentru o nouă iterație EM (resetați statistici suficiente).

save(fname_or_handle, separat=None, sep_limit=10485760, ignore=frozenset({}), pickle_protocol=4)

salvați obiectul într-un fișier.

parametrii

  • fname_or_handle (str sau file-like) – calea către fișierul de ieșire sau obiectul de fișier deja deschis. Dacă obiectul este un mâner de fișier, nu se va efectua nicio manipulare specială a matricei, toate atributele vor fi salvate în același fișier.

  • separat (lista de str sau nici unul, opțional) –

    dacă nici unul, detecta automat numpy mare / scipy.tablouri rare în obiectul stocat și stocațiele în fișiere separate. Acest lucru previne erorile de memorie pentru obiecte mari și, de asemenea, permitememorie-maparea matricelor mari pentru încărcarea eficientă și partajarea matricelor mari în RAM între mai multe procese.

    If list of str: stocați aceste atribute în fișiere separate. Verificarea automată a mărimiinu se efectuează în acest caz.

  • sep_limit (int, opțional) – nu stocați tablouri mai mici decât aceasta separat. În octeți.

  • ignore (frozenset de str, opțional) – atribute care nu ar trebui să fie stocate deloc.

  • pickle_protocol (int, opțional) – numărul protocolului pentru murături.

Vezi și

load()

încărcați obiectul din fișier.

gensim.models.ldamodel.update_dir_prior(prior, n, logphat, rho)

actualizați un prior dat folosind metoda lui Newton, descrisă inJ. Huang: „estimarea probabilității maxime a parametrilor de distribuție Dirichlet”.

parametri

  • prior (lista flotorului) – priorul pentru fiecare rezultat posibil la iterația anterioară (de actualizat).

  • N (int) – Numărul de observații.

  • logphat (lista flotorului) – probabilități de jurnal pentru estimarea curentă, numită și „statistici suficiente observate”.

  • rho (float) – rata de învățare.

returnează

actualizarea prealabilă.

tip retur

lista flotorului

Lasă un răspuns

Adresa ta de email nu va fi publicată.