Maybaygiare.org

Blog Network

modelli.ldamodel – Latent Dirichlet Allocation¶

esempi di Utilizzo¶

formare un LDA modello utilizzando una Gensim corpus

>>> 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)

Salvare un modello a disco, o ricaricare un pre-formati di modello

>>> 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)

Query, il modello utilizzando di nuovo, invisibile documenti

>>> # 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

Aggiornare il modello incrementale di formazione sul nuovo corpus

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

Un sacco di parametri possono essere modificati per ottimizzare la formazione per il tuo caso specifico,

>>> 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

Addestrare e utilizzare online Latent Dirichlet Allocation (OLDA) modelli come presentato inHoffman et al. : “Apprendimento online per l’allocazione latente di Dirichlet”.

Esempi

Inizializzare un modello utilizzando un corpus Gensim

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

È quindi possibile dedurre distribuzioni di argomenti su documenti nuovi e invisibili.

>>> doc_bow = >>> doc_lda = lda

Il modello può essere aggiornato (addestrato) con nuovi documenti.

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

La persistenza del modello viene raggiunta attraverso i metodiload() e save().

Parametri

  • corpus (iterabile di list of (int, float), opzionale) – Flusso di vettori di documenti o matrice sparsa di forma (num_documents, num_terms).Se si dispone di una matrice CSC in memoria, è possibile convertirla in corpus astreamed con l’aiuto di gensim.matutils.Sparse2Corpus.Se non viene fornito, il modello viene lasciato non addestrato (presumibilmente perché si desidera chiamare manualmenteupdate()).

  • num_topics (int, opzionale) – Il numero di argomenti latenti richiesti da estrarre dal corpus di formazione.

  • id2word ({dict of (int, str), gensim.corpora.dictionary.Dictionary}) – Mappatura dagli ID delle parole alle parole. È usato per determinare la dimensione del vocabolario, così come perdebugging e stampa di argomenti.

  • distribuito (bool, opzionale) – Se il calcolo distribuito deve essere utilizzato per accelerare la formazione.

  • chunksize (int, opzionale) – Numero di documenti da utilizzare in ogni blocco di formazione.

  • pass (int, opzionale) – Numero di passaggi attraverso il corpus durante l’allenamento.

  • update_every (int, opzionale) – Numero di documenti da iterare per ogni aggiornamento.Impostare a 0 per l’apprendimento batch, > 1 per l’apprendimento iterativo online.

  • alfa ({numpy.ndarray, str}, opzionale) –

    Può essere impostato su un array 1D di lunghezza pari al numero di argomenti attesi che esprimono la nostra convinzione a priori per la probabilità di ogni argomento.In alternativa è possibile utilizzare le strategie di selezione preventiva predefinite fornendo una stringa:

    • ’simmetrica’: di Default, utilizza un fisso simmetrica prima per argomento,

    • “asimmetrici”: Usi un fisso normalizzato asimmetrica prima di 1.0 / (topic_index + sqrt(num_topics)),

    • “auto”: Impara asimmetrica prima dal corpus (non disponibile in caso di distribuzione==True).

  • eta ({float, np.array, str}, opzionale)-

    Credenza A-priori sulla probabilità delle parole, questo può essere:

    • scalare per una simmetrica prima su un argomento/parola di probabilità,

    • vettore di lunghezza num_words per indicare un asimmetrico definito dall’utente probabilità per ogni parola,

    • matrice di forma (num_topics, num_words) per assegnare una probabilità per ogni parola-tema combinazione,

    • la stringa ‘auto’ per imparare la asimmetrico prima i dati.

  • decay (float, opzionale) – Un numero compreso tra (0.5, 1] per ponderare quale percentuale del precedente valore lambda viene dimenticatoquando viene esaminato ogni nuovo documento. Corrisponde a Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach:”Online Learning for Latent Dirichlet Allocation NIPS‘10″.

  • offset (float, opzionale) –

    Iper-parametro che controlla quanto rallenteremo i primi passi le prime iterazioni.Corrisponde a Tau_0 da Matthew D. Hoffman, David M. Blei, Francis Bach:”Online Learning for Latent Dirichlet Allocation NIPS‘10″.

  • eval_every (int, opzionale) – Log perplessità è stimato ogni che molti aggiornamenti. L’impostazione di questo su uno rallenta l’allenamento di ~2x.

  • iterazioni (int, opzionale) – Numero massimo di iterazioni attraverso il corpus quando si deduce la distribuzione dell’argomento di un corpus.

  • gamma_threshold (float, opzionale) – Variazione minima del valore dei parametri gamma per continuare l’iterazione.

  • minimum_probability (float, opzionale) – Gli argomenti con una probabilità inferiore a questa soglia verranno filtrati.

  • random_state ({np.casuale.RandomState, int}, opzionale) – un oggetto randomState o un seme per generarne uno. Utile per la riproducibilità.

  • ns_conf (dict of (str, object), opzionale) – Parametri della parola chiave propagati ingensim.utils.getNS() per ottenere un Nameserved Pyro4.Utilizzato solo se distribuito è impostato su True.

  • minimum_phi_value (float, opzionale) – se per_word_topics è True, questo rappresenta un limite inferiore sulle probabilità del termine.

  • per_word_topics (bool) – Se True, il modello calcola anche un elenco di argomenti, ordinati in ordine decrescente degli argomenti più probabili per ogni parola, insieme ai loro valori phi moltiplicati per la lunghezza della caratteristica (cioè il conteggio delle parole).

  • callback (elenco di Callback) – Callback metrici per registrare e visualizzare le metriche di valutazione del modello durante l’allenamento.

  • dtype ({numpy.float16, numpy.float32, numpy.float64}, opzionale) – Tipo di dati da utilizzare durante i calcoli all’interno del modello. Anche tutti gli input vengono convertiti.

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

Aggiunge un evento all’attributo lifecycle_events di questo oggetto e registra anche l’evento in log_level.

Gli eventi sono momenti importanti durante la vita dell’oggetto, come “modello creato”,”modello salvato”, “modello caricato”, ecc.

L’attributo lifecycle_events viene mantenuto nelle operazioni save()e load() dell’oggetto. Non ha alcun impatto sull’uso del modello,ma è utile durante il debug e il supporto.

Imposta se stesso.lifecycle_events = None per disabilitare questo comportamento. Le chiamate a add_lifecycle_event () non registreranno gli eventi in sé.lifecycle_events allora.

Parametri

  • event_name (str) – Nome dell’evento. Può essere qualsiasi etichetta, ad esempio “creato”, “memorizzato” ecc.

  • evento (dict)-

    Mappatura chiave-valore da aggiungere a sé.lifecycle_eventi. Dovrebbe essere JSON-serializzabile, quindi mantienilo semplice.Può essere vuoto.

    Questo metodo aggiungerà automaticamente i seguenti valori chiave all’evento, quindi non è necessario specificarli:

    • datetime: la data corrente & tempo

    • gensim: l’attuale Gensim versione

    • python: l’attuale versione di Python

    • piattaforma: la piattaforma corrente

    • eventi: il nome di questo evento

  • log_level (int) – Anche il log completo dell’evento dict, per un determinato livello di log. Impostare su False per non accedere affatto.

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

Stima il limite variazionale dei documenti dal corpus come E_q – E_q.

Parametri

  • corpus (iterabile di list of (int, float), opzionale) – Flusso di vettori di documenti o matrice sparsa di forma (num_documents, num_terms) utilizzata per stimare i limiti variazionali.

  • gamma (numpy.ndarray, opzionale) – Parametri variazionali peso argomento per ogni documento. Se non fornito, sarà dedotto dal modello.

  • subsample_ratio (float, opzionale) – Percentuale dell’intero corpus rappresentato dall’argomento corpus passato (nel caso si trattasse di un campione).Impostato su 1.0 se l’intero corpus è stato passato.Questo è usato come fattore moltiplicativo per scalare la probabilitàappropriatamente.

Restituisce

Il punteggio associato variazionale calcolato per ogni documento.

Tipo di ritorno

numpy.ndarray

clear()¶

Cancella lo stato del modello per liberare memoria. Utilizzato nell’implementazione distribuita.

diff(other, distance=’kullback_leibler’, num_words=100, n_ann_terms=10, diagonal=False, annotation=True, normed=True)¶

Calcola la differenza nelle distribuzioni di argomenti tra due modelli: self e other.

Parametri

  • altro (LdaModel) – Il modello che verrà confrontato con l’oggetto corrente.

  • distance ({‘kullback_leibler’, ‘hellinger’, ‘jaccard’, ‘jensen_shannon’}) – La metrica della distanza con cui calcolare la differenza.

  • num_words (int, opzionale) – Il numero di parole più rilevanti utilizzate se distance == ‘jaccard’. Utilizzato anche per annotare argomenti.

  • n_ann_terms (int, opzionale) – Numero massimo di parole nell’intersezione / differenza simmetrica tra gli argomenti. Utilizzato per l’annotazione.

  • diagonale (bool, opzionale) – Se abbiamo bisogno della differenza tra argomenti identici (la diagonale della matrice delle differenze).

  • annotazione (bool, opzionale) – Se l’intersezione o la differenza di parole tra due argomenti devono essere restituiti.

  • normed (bool, opzionale) – Se la matrice deve essere normalizzata o meno.

Restituisce

  • numpy.ndarray-Una matrice di differenza. Ogni elemento corrisponde alla differenza tra i due argomenti,forma (sé.num_topics, altro.num_topics)

  • numpy.ndarray, opzionale-Matrice di annotazione in cui per ogni coppia includiamo la parola dall’intersezione dei due argomenti e la parola dalla differenza simmetrica dei due argomenti. Incluso solo se annotazione = = True.Forma (sé.num_topics, other_model.num_topics, 2).

Esempi

Ottenere le differenze tra ogni coppia di argomenti dedotti da due modelli

>>> 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(chunk, stato=None)¶

Eseguire l’inferenza su un pezzo di documenti, e l’accumulo delle raccolte statistiche sufficienti.

Parametri

  • chunk (list of list of (int, float)) – Il blocco del corpus su cui verrà eseguito il passaggio di inferenza.

  • stato (LdaState, opzionale) – Lo stato da aggiornare con le statistiche sufficienti appena accumulate. Se nessuno, il modellostesso.stato viene aggiornato.

Restituisce

Parametri Gamma che controllano i pesi argomento, forma(len (chunk), sé.num_topici).

Tipo di ritorno

numpy.ndarray

do_mstep (rho, other, extra_pass = False)¶

Passaggio di massimizzazione: utilizzare l’interpolazione lineare tra gli argomenti esistenti ecollected statistiche sufficienti in altri per aggiornare gli argomenti.

Parametri

  • rho (float) – Tasso di apprendimento.

  • altro (LdaModel) – Il modello le cui statistiche sufficienti saranno utilizzate per aggiornare gli argomenti.

  • extra_pass (bool, opzionale) – Indica se questo passaggio richiede un passaggio aggiuntivo sul corpus.

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

Ottieni la distribuzione dell’argomento per il documento specificato.

Parametri

  • bow (corpus : list of (int, float)) – Il documento in formato BOW.

  • minimum_probability (float) – Gli argomenti con una probabilità assegnata inferiore a questa soglia verranno scartati.

  • minimum_phi_value (float) –

    Se per_word_topics è True, questo rappresenta un limite inferiore sulle probabilità di termine incluse.

    Se impostato su None, viene utilizzato un valore di 1e-8 per impedire 0s.

  • per_word_topics (bool) – Se True, questa funzione restituirà anche due elenchi aggiuntivi come spiegato nella sezione “Restituisce”.

Restituisce

  • elenco di distribuzione (int, float) – Topic per l’intero documento. Ogni elemento nell’elenco è una coppia di ID di un argomento ela probabilità che è stata assegnata ad esso.

  • elenco di (int, elenco di (int, float), opzionale – Argomenti più probabili per parola. Ogni elemento nell’elenco è una coppia di id di una parola e un elenco ditopici ordinati in base alla loro rilevanza per questa parola. Restituito solo se per_word_topics è stato impostato su True.

  • elenco di (int, elenco di float), valori di rilevanza opzionali – Phi, moltiplicati per la lunghezza della caratteristica, per ogni combinazione parola-argomento.Ogni elemento nell’elenco è una coppia di id di una parola e un elenco dei valori phi tra questa parola eogni argomento. Restituito solo se per_word_topics è stato impostato su True.

get_term_topics(word_id, minimum_probability=None)¶

Ottieni gli argomenti più rilevanti per la parola data.

Parametri

  • word_id (int) – La parola per la quale verrà calcolata la distribuzione dell’argomento.

  • minimum_probability (float, opzionale) – Gli argomenti con una probabilità assegnata al di sotto di questa soglia verranno scartati.

Restituisce

Gli argomenti rilevanti rappresentati come coppie del loro ID e della loro probabilità assegnata, ordinatiper rilevanza alla parola data.

Return type

list of (int, float)

get_topic_terms(topicid, topn=10)¶

Ottieni la rappresentazione per un singolo argomento. Parole gli ID interi, in constrast a show_topic() che rappresenta le parole dalle stringhe effettive.

Parametri

  • topicid (int) – L’ID dell’argomento da restituire

  • topn (int, opzionale) – Numero delle parole più significative associate all’argomento.

Restituisce

Coppie di parole ID – probabilità per le parole più rilevanti generate dall’argomento.

Return type

list of (int, float)

get_topics ()¶

Ottieni la matrice term-topic appresa durante l’inferenza.

Restituisce

La probabilità per ogni parola in ogni argomento, forma (num_topics, vocabulary_size).

Tipo di ritorno

numpy.ndarray

inference(chunk, collect_sstats=False)¶

Dato un blocco di vettori di documenti sparsi, stimare la gamma (parametri che controllano i pesi dell’argomento)per ogni documento nel blocco.

Questa funzione non modifica il modello Si presume che l’intero blocco di input del documento si adatti alla RAM;il chunking di un corpus di grandi dimensioni deve essere eseguito prima nella pipeline. Evita di calcolare il parametro variativo phi direttamente utilizzando l’ottimizzazione presentata inLee, Seung: Algorithms for non-negative matrix factorization”.

Parametri

  • chunk (list of list of (int, float)) – Il blocco del corpus su cui verrà eseguito il passaggio di inferenza.

  • collect_sstats (bool, opzionale) – Se impostato su True, raccoglie (e restituisce) anche le statistiche sufficienti necessarie per aggiornare l’argomento-worddistributions del modello.

Restituisce

Il primo elemento viene sempre restituito e corrisponde alla matrice gamma degli stati. Il secondo elemento viene restituito solo se collect_sstats = = True e corrisponde alle statistiche sufficienti per il passaggio M.

Tipo di ritorno

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

init_dir_prior(prior, name)¶

Inizializza i prior per la distribuzione di Dirichlet.

Parametri

  • prior ({str, elenco di float, numpy.ndarray di float, float}) –

    Credenza A-priori sulla probabilità delle parole. Se name = ‘ ‘ eta ‘ allora il precedente può essere:

    • scalare per una simmetrica prima su un argomento/parola di probabilità,

    • vettore di lunghezza num_words per indicare un asimmetrico definito dall’utente probabilità per ogni parola,

    • matrice di forma (num_topics, num_words) per assegnare una probabilità per ogni parola-tema combinazione,

    • la stringa ‘auto’ per imparare la asimmetrico prima i dati.

    Se name = ‘ ‘alpha’, allora il precedente può essere:

    • una 1D array di lunghezza pari al numero di argomenti attesi,

    • ’simmetrica’: Usi un fisso simmetrica prima per argomento,

    • “asimmetrici”: Utilizza un fisso normalizzato asimmetrica prima di 1.0 / (topic_index + sqrt(num_topics)),

    • “auto”: Impara asimmetrica prima dal corpus.

  • name ({‘alpha’, ‘eta’}) – Se il precedente è parametrizzato dal vettore alfa (1 parametro per argomento)o dall’eta (1 parametro per termine unico nel vocabolario).

classmethod load(fname, *args, **kwargs)¶

Carica un gensim.models.ldamodel.LdaModel salvato in precedenza dal file.

Vedere anche

save()

Salva modello.

Parametri

  • fname (str) – Percorso del file in cui è memorizzato il modello.

  • *args – Argomenti posizionali propagati aload().

  • **kwargs – Argomenti delle parole chiave propagati a load().

Esempi

le matrici di Grandi dimensioni può essere memmap autenticata indietro come di sola lettura (memoria condivisa) impostando mmap=’r’:

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

log_perplexity(chunk, total_docs=None)¶

Calcolare e restituire ogni parola rischio associato, utilizzando un pezzo di documenti di valutazione del corpus.

Emette anche le statistiche calcolate, inclusa la perplessità=2^(-bound), per accedere a livello di INFORMAZIONI.

Parametri

  • chunk (list of list of (int, float)) – Il blocco del corpus su cui verrà eseguito il passaggio di inferenza.

  • total_docs (int, opzionale) – Numero di documenti utilizzati per la valutazione della perplessità.

Restituisce

Il punteggio associato variazionale calcolato per ogni parola.

Tipo di ritorno

numpy.ndarray

print_topic(topicno, topn=10)¶

Ottieni un singolo argomento come stringa formattata.

Parametri

  • topicno (int – – Id argomento.

  • topn (int) – Numero di parole dall’argomento che verrà utilizzato.

Restituisce

Rappresentazione stringa di argomento, come ‘-0.340 * “categoria” + 0.298 * “M M”” + 0.183 * ” algebra”+…‘.

Return type

str

print_topics(num_topics=20, num_words=10)¶

Ottieni gli argomenti più significativi (alias per il metodo show_topics ()).

Parametri

  • num_topics (int, opzionale) – Il numero di argomenti da selezionare, se -1 – tutti gli argomenti saranno in risultato (ordinati per significato).

  • num_words (int, opzionale) – Il numero di parole da includere per argomenti (ordinati per significato).

Restituisce

Sequenza con (topic_id,).

Tipo di ritorno

list of (int, list of (str, float))

save(fname, ignore=(‘state’, ‘dispatcher’), separatamente=None, *args, **kwargs)¶

Salva il modello in un file.

Grandi array interni possono essere memorizzati in file separati, con fname come prefisso.

Note

Se si intende utilizzare i modelli nelle versioni Python 2/3, ci sono alcune cose da tenere a mente:

  1. I dizionari Python decapati non funzioneranno tra le versioni Python

  2. Il metodo save non salva automaticamente tutti gli array numpy separatamente, solo quelli che superano sep_limit impostato insave(). Il mainconcern qui è l’array alpha se ad esempio si utilizza alpha = ‘auto’.

Si prega di fare riferimento alla sezione wiki recipes per un esempio su come aggirare questi problemi.

Vedere anche

load()

Caricare il modello.

Parametri

  • fname (str) – Percorso del file system in cui verrà mantenuto il modello.

  • ignora (tupla di str, opzionale) – Gli attributi denominati nella tupla verranno lasciati fuori dal modello in salamoia. Il motivo per cui lo stato interno viene ignorato di default è che utilizza la propria serializzazione piuttosto che quella fornita da questo metodo.

  • separatamente ({elenco di str, Nessuno}, opzionale) – Se Nessuno – rileva automaticamente grande numpy / scipy.array sparsi nell’oggetto da memorizzare e memorizzarli in file separati. Questo evita errori di memoria sottaceto e permette mmap’ing grandi arraysback sul carico in modo efficiente. Se l’elenco degli attributi str – this verrà memorizzato in file separati,il controllo automatico non viene eseguito in questo caso.

  • *args – Argomenti posizionali propagati asave().

  • **kwargs – Argomenti delle parole chiave propagati asave().

show_topic(topicid, topn=10)¶

Ottieni la rappresentazione per un singolo argomento. Le parole qui sono le stringhe effettive, in constrast aget_topic_terms() che rappresenta le parole con il loro ID vocabolario.

Parametri

  • topicid (int) – L’ID dell’argomento da restituire

  • topn (int, opzionale) – Numero delle parole più significative associate all’argomento.

Restituisce

Coppie di parole-probabilità per le parole più rilevanti generate dall’argomento.

Return type

list of (str, float)

show_topics(num_topics=10, num_words=10, log=False, formatted=True)¶

Ottieni una rappresentazione per argomenti selezionati.

Parametri

  • num_topics (int, opzionale) – Numero di argomenti da restituire. A differenza di LSA, non esiste un ordinamento naturale tra gli argomenti in LDA.Il sottoinsieme di argomenti restituiti di tutti gli argomenti è quindi arbitrario e può cambiare tra due esecuzioni di LDAtraining.

  • num_words (int, opzionale) – Numero di parole da presentare per ogni argomento. Queste saranno le parole più rilevanti (assegnate le più alteprobabilità per ogni argomento).

  • log (bool, opzionale) – Se l’output è anche registrato, oltre a essere restituito.

  • formattato (bool, opzionale) – Se le rappresentazioni argomento devono essere formattati come stringhe. Se False, vengono restituite as2 tuple di (word, probability).

Restituisce

un elenco di argomenti, ognuno rappresentato come una stringa (quando formattato == True) o word-probabilitypairs.

Return type

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

sync_state(current_Elogbeta=None)¶

Propaga le probabilità dell’argomento degli stati all’attributo dell’oggetto interno.

Parametri

current_Elogbeta (numpy.ndarray – – Probabilità posteriori per ogni argomento, opzionale.Se omesso, otterrà Elogbeta dallo stato.

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

Ottieni gli argomenti con il punteggio di coerenza più alto la coerenza per ogni argomento.

Parametri

  • corpus (iterabile della lista di (int, float), opzionale) – Corpus in formato BoW.

  • testi (elenco di elenco di str, opzionale) – testi tokenizzati, necessari per i modelli di coerenza che utilizzano la finestra scorrevole basata (cioè coherence=`c_something`)stimatore di probabilità .

  • dictionary (Dictionary, opzionale) – Gensim mappatura dizionario di parola id per creare corpus.Se model. id2word è presente, questo non è necessario. Se entrambi sono forniti, verrà utilizzato il dizionario passato.

  • window_size (int, opzionale) – È la dimensione della finestra da utilizzare per le misure di coerenza utilizzando boolean sliding window as theirprobability estimator. Per ‘u_mass’ questo non importa.Se nessuno-vengono utilizzate le dimensioni predefinite della finestra che sono ‘ ‘c_v ‘ – 110,’ c_uci ‘ – 10,’ c_npmi’ – 10.

  • coerenza ({‘u_mass’, ‘c_v’, ‘c_uci’, ‘c_npmi’}, opzionale) – Misura di coerenza da utilizzare.Metodo più veloce – ‘u_mass’, ‘c_uci’ noto anche come c_pmi.Per il corpus’ u_mass ‘ dovrebbe essere fornito, se i testi sono forniti, verrà convertito in corpususando il dizionario. Per’ c_v‘,’ c_uci ‘e’ c_npmi ‘ dovrebbero essere forniti testi (corpus non è necessario)

  • topn (int, opzionale) – Intero corrispondente al numero di parole migliori da estrarre da ciascun argomento.

  • processi (int, opzionale) – Numero di processi da utilizzare per la fase di stima della probabilità, qualsiasi valore inferiore a 1 verrà interpretato comenum_cpus-1.

Restituisce

Ogni elemento nella lista è una coppia di una rappresentazione argomento e il suo punteggio di coerenza. Rappresentazionisono distribuzioni di parole, rappresentate come un elenco di coppie di ID di parole e le loro probabilità.

tipo di Ritorno

elenco (lista di int, str), float)

update(corpus, chunksize=None, decadimento=None, offset=Nessuno, passa=None, update_every=None, eval_every=None, iterazioni=None, gamma_threshold=None, chunks_as_numpy=False)¶

Treno il modello con nuovi documenti, da EM-scorrere il corpus fino a quando gli argomenti convergono, o untilthe numero massimo di iterazioni. il corpus deve essere iterabile.

In modalità distribuita, il passaggio E viene distribuito su un cluster di macchine.

Note

Questo aggiornamento supporta anche l’aggiornamento di un modello già addestrato con nuovi documenti; i due modelli vengono quindi uniti in proporzione al numero di vecchi e nuovi documenti. Questa funzione è ancora sperimentale per i flussi non stationaryinput. Per l’input stazionario (nessun argomento deriva in nuovi documenti), d’altra parte, questo equivale all’aggiornamento online di Matthew D. Hoffman, David M. Blei, Francis Bach:”Apprendimento online per l’allocazione latente di Dirichlet NIPS‘10”.ed è garantito per convergere per qualsiasi decadimento in (0.5, 1.0). Inoltre, per corpus di dimensioni più ridotte, può essere utile un aumento dell’offset (vedere Tabella 1 nello stesso documento).

Parametri

  • corpus (iterabile di list of (int, float), opzionale) – Flusso di vettori di documenti o matrice sparsa di forma (num_documents, num_terms) utilizzata per aggiornare il modello.

  • chunksize (int, opzionale) – Numero di documenti da utilizzare in ogni blocco di formazione.

  • decay (float, optional) –

    Un numero compreso tra (0.5, 1] per ponderare quale percentuale del valore lambda precedente viene dimenticata quando viene esaminato ogni nuovo documento. Corrisponde a Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach:”Online Learning for Latent Dirichlet Allocation NIPS‘10″.

  • offset (float, opzionale) –

    Iper-parametro che controlla quanto rallenteremo i primi passi le prime iterazioni.Corrisponde a Tau_0 da Matthew D. Hoffman, David M. Blei, Francis Bach:”Online Learning for Latent Dirichlet Allocation NIPS‘10″.

  • pass (int, opzionale) – Numero di passaggi attraverso il corpus durante l’allenamento.

  • update_every (int, opzionale) – Numero di documenti da iterare per ogni aggiornamento.Impostare a 0 per l’apprendimento batch, > 1 per l’apprendimento iterativo online.

  • eval_every (int, opzionale) – Log perplessità è stimato ogni che molti aggiornamenti. L’impostazione di questo su uno rallenta l’allenamento di ~2x.

  • iterazioni (int, opzionale) – Numero massimo di iterazioni attraverso il corpus quando si deduce la distribuzione dell’argomento di un corpus.

  • gamma_threshold (float, opzionale) – Variazione minima del valore dei parametri gamma per continuare l’iterazione.

  • chunks_as_numpy (bool, opzionale) – Se ogni blocco passato al passaggio di inferenza deve essere un numpy.ndarray o no. Numpy può in alcune impostazioni trasformare gli ID del termine in float, questi verranno convertiti in numeri interi in inferenza, il che comporta un hit di prestazione. Per il calcolo distribuito potrebbe essere desiderabile mantenere i blocchi come numpy.ndarray.

update_alpha(gammat, rho)¶

Aggiornare i parametri per il Dirichlet precedente sui pesi argomento per documento.

Parametri

  • gammat (numpy.ndarray) – Parametri di peso argomento precedente.

  • rho (float) – Tasso di apprendimento.

Restituisce

Sequenza di parametri alfa.

Tipo di ritorno

numpy.ndarray

update_eta(lambdat, rho)¶

Aggiorna i parametri per il Dirichlet precedente sui pesi delle parole per argomento.

Parametri

  • lambdat (numpy.ndarray – – Parametri lambda precedenti.

  • rho (float) – Tasso di apprendimento.

Restituisce

i parametri eta aggiornati.

Tipo di ritorno

numpy.ndarray

classegensim.models.ldamodel.LdaState(eta, shape, dtype=< classe ‘numpy.float32 ‘ >)¶

Basi:gensim.utils.SaveLoad

Incapsula le informazioni per il calcolo distribuito diLdaModel oggetti.

Gli oggetti di questa classe vengono inviati sulla rete, quindi cerca di tenerli magri per ridurre il traffico.

Parametri

  • eta (numpy.ndarray – – Le probabilità precedenti assegnate a ciascun termine.

  • forma (tupla di (int, int)) – Forma delle statistiche sufficienti: (numero di argomenti da trovare, numero di termini nel vocabolario).

  • dtype (type) – Sostituisce i tipi predefiniti dell’array numpy.

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

Aggiunge un evento all’attributo lifecycle_events di questo oggetto e registra anche l’evento in log_level.

Gli eventi sono momenti importanti durante la vita dell’oggetto, come “modello creato”,”modello salvato”, “modello caricato”, ecc.

L’attributo lifecycle_events viene mantenuto nelle operazioni save()e load() dell’oggetto. Non ha alcun impatto sull’uso del modello,ma è utile durante il debug e il supporto.

Imposta se stesso.lifecycle_events = None per disabilitare questo comportamento. Le chiamate a add_lifecycle_event () non registreranno gli eventi in sé.lifecycle_events allora.

Parametri

  • event_name (str) – Nome dell’evento. Può essere qualsiasi etichetta, ad esempio “creato”, “memorizzato” ecc.

  • evento (dict)-

    Mappatura chiave-valore da aggiungere a sé.lifecycle_eventi. Dovrebbe essere JSON-serializzabile, quindi mantienilo semplice.Può essere vuoto.

    Questo metodo verrà automaticamente aggiungere la seguente chiave-valori a caso, quindi non è necessario specificare:

    • datetime: la data corrente & tempo

    • gensim: l’attuale Gensim versione

    • python: l’attuale versione di Python

    • piattaforma: la piattaforma corrente

    • evento: il nome di questo evento

  • log_level (int) – Registra anche il dict dell’evento completo, al livello di registro specificato. Impostare su False per non accedere affatto.

blend(rhot, other, targetsize=None)¶

Unisci lo stato corrente con un altro utilizzando una media ponderata per le statistiche sufficienti.

Il numero di documenti è allungato in entrambi gli oggetti di stato, in modo che siano di grandezza comparabile.Questa procedura corrisponde all’aggiornamento del gradiente stocastico Dihoffman et al. :” Apprendimento online per l’allocazione latente di Dirichlet”, vedi equazioni (5) e (9).

Parametri

  • rhot (float) – Peso dell’altro stato nella media calcolata. Un valore di 0.0 significa che altroè completamente ignorato. Un valore di 1.0 significa che self è completamente ignorato.

  • altro (LdaState) – L’oggetto di stato con cui verrà unito quello corrente.

  • targetsize (int, opzionale) – Il numero di documenti a cui estendere entrambi gli stati.

blend2(rhot, other, targetsize=None)¶

Unisci lo stato corrente con un altro utilizzando una somma ponderata per le statistiche sufficienti.

A differenza diblend(), le statistiche sufficienti non vengono scalate prima dell’aggregazione.

Parametri

  • rhot (float) – Inutilizzato.

  • altro (LdaState) – L’oggetto di stato con cui verrà unito quello corrente.

  • targetsize (int, opzionale) – Il numero di documenti a cui estendere entrambi gli stati.

get_Elogbeta()¶

Ottieni le probabilità di log (posteriori) per ogni argomento.

Restituisce

Probabilità posteriori per ogni argomento.

Tipo di ritorno

numpy.ndarray

get_lambda()¶

Ottenere i parametri del posteriore sopra gli argomenti, indicato anche come “gli argomenti”.

Restituisce

Parametri della probabilità posteriore su argomenti.

Tipo di ritorno

numpy.ndarray

classmethodload(fname, *args, **kwargs)¶

Carica uno stato precedentemente memorizzato dal disco.

Sostituisceload applicando il parametro dtype per garantire la compatibilità all’indietro.

Parametri

  • fname (str) – Percorso del file che contiene l’oggetto necessario.

  • args (object) – Parametri posizionali da propagare alla classe:~gensim.utils.Carico di salvataggio.carica

  • kwargs (object) – Parametri della parola chiave da propagare alla classe:~gensim.utils.Carico di salvataggio.load

Restituisce

Lo stato caricato dal file specificato.

Return type

LdaState

merge(other)¶

Unisci il risultato di un passaggio E da un nodo con quello di un altro nodo (sommando statistiche sufficienti).

La fusione è banale e dopo aver unito tutti i nodi del cluster, abbiamo lo stesso risultato di theexact come se il calcolo fosse stato eseguito su un singolo nodo (noapproximation).

Parametri

altro (LdaState) – L’oggetto di stato con cui verrà unito quello corrente.

reset()¶

Prepara lo stato per una nuova iterazione EM (ripristina statistiche sufficienti).

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

Salva l’oggetto in un file.

Parametri

  • fname_or_handle (str o file-like) – Percorso del file di output o dell’oggetto file-like già aperto. Se l’oggetto è un handle di file, non verrà eseguita alcuna gestione di array speciali, tutti gli attributi verranno salvati nello stesso file.

  • separatamente (elenco di str o None, opzionale) –

    Se Nessuno, rileva automaticamente grande numpy / scipy.array sparsi nell’oggetto da memorizzare e memorizzarli in file separati. Ciò impedisce errori di memoria per oggetti di grandi dimensioni e consente anche la mappatura della memoria degli array di grandi dimensioni per il caricamento efficiente e la condivisione degli array di grandi dimensioni nella RAM tra più processi.

    If list of str: memorizza questi attributi in file separati. Il controllo automatico delle dimensioni non viene eseguito in questo caso.

  • sep_limit (int, opzionale) – Non memorizzare array più piccoli di questo separatamente. In byte.

  • ignora (frozenset di str, opzionale) – Attributi che non dovrebbero essere memorizzati affatto.

  • pickle_protocol (int, opzionale) – Numero di protocollo per sottaceto.

Vedi anche

load()

Carica l’oggetto dal file.

gensim.models.ldamodel.update_dir_prior(prior, N, logphat, rho)¶

Aggiorna un dato precedente usando il metodo di Newton, descritto inJ. Huang: “Maximum Likelihood Estimation of Dirichlet Distribution Parameters”.

Parametri

  • prior (elenco di float) – Il precedente per ogni possibile risultato all’iterazione precedente (da aggiornare).

  • N (int) – Numero di osservazioni.

  • logphat (list of float) – Registra le probabilità per la stima corrente, chiamata anche “statistiche sufficienti osservate”.

  • rho (float) – Tasso di apprendimento.

Restituisce

Il precedente aggiornato.

Tipo di ritorno

elenco di float

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.