Maybaygiare.org

Blog Network

-Modelle.ldamodel – Latente Dirichlet-Zuordnung¶

Anwendungsbeispiele¶

Trainieren Sie ein LDA-Modell mit einem Gensim-Korpus

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

Speichern Sie ein Modell auf der Festplatte oder laden Sie ein vortrainiertes Modell neu

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

Abfrage, das Modell mit neuen, unsichtbaren Dokumenten

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

Aktualisieren Sie das Modell durch inkrementelles Training auf dem neuen Korpus

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

Viele Parameter können abgestimmt werden, um das für Ihren speziellen Fall

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

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

Trainieren und verwenden Sie Online Latent Dirichlet Allocation (OLDA) -Modelle, wie inHoffman et al. :“Online-Lernen für latente Dirichlet-Allokation“.

Beispiele

Initialisieren Sie ein Modell mit einem Gensim-Korpus

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

Sie können dann auf neue, unsichtbare Dokumente auf Themenverteilungen schließen.

>>> doc_bow = >>> doc_lda = lda

Das Modell kann mit neuen Dokumenten aktualisiert (trainiert) werden.

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

Die Modellpersistenz wird durch load() undsave() Methoden erreicht.

Parameter

  • corpus (iterierbar von list of (int, float), optional) – Strom von Dokumentvektoren oder spärlicher Matrix der Form (num_documents, num_terms).Wenn Sie eine CSC-In-Memory-Matrix haben, können Sie diese mit Hilfe von gensim in einen gestreamten Korpus konvertieren.matutils.Sparse2Corpus.Wenn nicht angegeben, bleibt das Modell ungeschult (vermutlich, weil Sieupdate() manuell aufrufen möchten).

  • num_topics (int, optional) – Die Anzahl der angeforderten latenten Themen, die aus dem Schulungskorpus extrahiert werden sollen.

  • id2word ({dict of (int, str), gensim.corpora.dictionary.Dictionary}) – Zuordnung von Wort-IDs zu Wörtern. Es wird verwendet, um die Vokabulargröße zu bestimmen, sowie fürdebugging und Themendruck.

  • distributed (bool, optional) – Gibt an, ob verteiltes Rechnen verwendet werden soll, um das Training zu beschleunigen.

  • chunksize (int, optional) – Anzahl der Dokumente, die in jedem Trainingsblock verwendet werden sollen.

  • Pässe (int, optional) – Anzahl der Pässe durch den Korpus während des Trainings.

  • update_every (int, optional) – Anzahl der Dokumente, die für jede Aktualisierung durchlaufen werden sollen.Für Batch-Lernen auf 0 setzen, > 1 für iteratives Online-Lernen.In diesem Fall müssen Sie sich an die folgenden Anweisungen halten.ndarray, str}, optional) –

    Kann auf ein 1D-Array der Länge gesetzt werden, das der Anzahl der erwarteten Themen entspricht, die unseren a-priori-Glauben für die Wahrscheinlichkeit jedes Themas ausdrücken.Alternativ können standardmäßige Vorselektionsstrategien verwendet werden, indem eine Zeichenfolge angegeben wird:

    • ’symmetric‘: Standard; verwendet einen festen symmetrischen Prior pro Thema,

    • ‚asymmetric‘: Verwendet einen festen normalisierten asymmetrischen Prior von 1.0 / (topic_index + sqrt(num_topics)),

    • ‚auto‘: Lernt einen asymmetrischen Prior aus dem (nicht verfügbar, wenn distributed==True ).

  • eta ({float, np.array, str}, optional) –

    A-priori-Glaube an die Wortwahrscheinlichkeit, dies kann sein:

    • skalar für eine symmetrische Kombination über Thema /Wort Wahrscheinlichkeit,

    • Vektor der Länge num_words, um eine asymmetrische benutzerdefinierte Wahrscheinlichkeit für jedes Wort zu bezeichnen,

    • Matrix der Form (num_topics, num_words), um eine Wahrscheinlichkeit für jede Wort-Thema-Kombination zuzuweisen,

    • die Zeichenfolge ‚auto‘, um den asymmetrischen Prior aus den Daten zu lernen.

  • decay (float, optional) – Eine Zahl zwischen (0.5, 1], um zu gewichten, welcher Prozentsatz des vorherigen Lambda-Wertes bei der Prüfung jedes neuen Dokuments vergessen wird. Entspricht Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach:“Online Learning for Latent Dirichlet Allocation NIPS’10“.

  • offset (float, optional) –

    Hyper-Parameter, der steuert, wie viel wir die ersten Schritte verlangsamen die ersten paar Iterationen.Entspricht Tau_0 aus Matthew D. Hoffman, David M. Blei, Francis Bach:“Online Learning for Latent Dirichlet Allocation NIPS’10“.

  • eval_every (int, optional) – Log-Perplexität wird nach so vielen Updates geschätzt. Wenn Sie dies auf eins setzen, wird das Training um ~2x verlangsamt.

  • Iterationen (int, optional) – Maximale Anzahl von Iterationen durch den Korpus, wenn auf die Themenverteilung eines Korpus geschlossen wird.

  • gamma_threshold (float, optional) – Minimale Änderung des Wertes der Gamma-Parameter, um die Iteration fortzusetzen.

  • minimum_probability (float, optional) – Themen mit einer Wahrscheinlichkeit unter diesem Schwellenwert werden herausgefiltert.

  • random_state ({np.zufällig.RandomState, int}, optional) – Entweder ein randomState Objekt oder ein Seed, um einen zu generieren. Nützlich für die Reproduzierbarkeit.

  • ns_conf (dict of (str, object), optional) – Schlüsselwortparameter, die an gensim.utils.getNS() weitergegeben werden, um einen Pyro4-Namen zu erhalten.Wird nur verwendet, wenn distributed auf True gesetzt ist.

  • minimum_phi_value (float, optional) – Wenn per_word_topics Wahr ist, stellt dies eine untere Grenze für die Termwahrscheinlichkeiten dar.

  • per_word_topics (bool) – Wenn True, berechnet das Modell auch eine Liste von Themen, sortiert in absteigender Reihenfolge der wahrscheinlichsten Themen für jedes Wort, zusammen mit ihren phi-Werten multipliziert mit der Feature-Länge (dh Wortzahl).

  • Rückrufe (Liste der Callback) – Metrische Rückrufe zum Protokollieren und Visualisieren von Bewertungsmetriken des Modells während des Trainings.

  • dtype ({numpy.float16, numpy.float32, numpy.float64}, optional) – Datentyp, der bei Berechnungen innerhalb des Modells verwendet werden soll. Alle Eingänge werden ebenfalls konvertiert.

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

Fügen Sie ein Ereignis in das Attribut lifecycle_events dieses Objekts ein und protokollieren Sie das Ereignis optional auf log_level.

Ereignisse sind wichtige Momente im Leben des Objekts, z. B. „Modell erstellt“,“Modell gespeichert“, „Modell geladen“ usw.

Das lifecycle_events Attribut wird über die save()und load() Operationen des Objekts beibehalten. Es hat keine Auswirkungen auf die Verwendung des Modells, ist jedoch beim Debuggen und Support nützlich.

Selbst festlegen.lifecycle_events = None, um dieses Verhalten zu deaktivieren. Aufrufe von add_lifecycle_event() zeichnen Ereignisse nicht in self auf.lifecycle_events dann.

Parameter

  • event_name (str) – Name des Ereignisses. Kann ein beliebiges Label sein, z.B. „erstellt“, „gespeichert“ etc.

  • Ereignis (Diktat) –

    Schlüssel-Wert-Zuordnung zum Anhängen an self .in: lifecycle_events. Sollte JSON-serialisierbar sein, also halte es einfach.Kann leer sein.

    Diese Methode fügt dem Ereignis automatisch die folgenden Schlüsselwerte hinzu, sodass Sie sie nicht angeben müssen:

    • datetime: das aktuelle Datum & time

    • gensim: die aktuelle Gensim–Version

    • python: die aktuelle Python-Version

    • platform: die aktuelle Plattform

    • event: der Name dieses Ereignisses

  • log_level (int) – Protokolliert auch das vollständige Ereignisdiktat auf der angegebenen Protokollebene. Setzen Sie auf False, um überhaupt nicht zu protokollieren.

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

Schätzen Sie die Variationsgrenze von Dokumenten aus dem Corpus als E_q – E_q .

Parameter

  • corpus (iterable of list of (int, float), optional) – Strom von Dokumentvektoren oder spärliche Matrix der Form (num_documents, num_terms) verwendet, um Dievariationsgrenzen zu schätzen.

  • gamma (numpy.ndarray, optional) – Thema Gewicht Variationsparameter für jedes Dokument. Wenn nicht geliefert, wird es aus dem Modell abgeleitet.

  • subsample_ratio (float, optional) – Prozentsatz des gesamten Korpus, der durch das übergebene Korpusargument dargestellt wird (falls dies eine Stichprobe war).Setzen Sie auf 1.0, wenn der gesamte Korpus übergeben wurde.Dies wird als multiplikativer Faktor verwendet, um die Wahrscheinlichkeit angemessen zu skalieren.

Gibt

Die variationsgebundene Punktzahl zurück, die für jedes Dokument berechnet wurde.

Rückgabetyp

numpy.ndarray

clear()¶

Löscht den Status des Modells, um Speicher freizugeben. Wird in der verteilten Implementierung verwendet.

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

Berechnen Sie die Differenz der Themenverteilungen zwischen zwei Modellen: self und other.

Parameter

  • other (LdaModel) – Das Modell, das mit dem aktuellen Objekt verglichen wird.

  • distance ({‚kullback_leibler‘, ‚hellinger‘, ‚jaccard‘, ‚jensen_shannon‘}) – Die Entfernungsmetrik, mit der die Differenz berechnet wird.

  • num_words (int, optional) – Die Anzahl der relevantesten Wörter, die verwendet werden, wenn distance == ‚jaccard‘ . Wird auch zum Kommentieren von Themen verwendet.

  • n_ann_terms (int, optional) – Maximale Anzahl von Wörtern im Schnittpunkt / symmetrischer Unterschied zwischen Themen. Wird für Anmerkungen verwendet.

  • diagonal (bool, optional) – Ob wir den Unterschied zwischen identischen Themen benötigen (die Diagonale der Differenzmatrix).

  • annotation (bool, optional) – Gibt an, ob die Überschneidung oder Differenz von Wörtern zwischen zwei Themen zurückgegeben werden soll.

  • normed (bool, optional) – Gibt an, ob die Matrix normalisiert werden soll oder nicht.

Gibt

  • numpy zurück.ndarray – Eine Differenzmatrix. Jedes Element entspricht dem Unterschied zwischen den beiden Themen,Form (Selbst.num_topics, andere.num_topics)

  • numpy.ndarray, optional – Annotationsmatrix, wobei wir für jedes Paar das Wort aus dem Schnittpunkt der beiden Themen und das Wort aus der symmetrischen Differenz der beiden Themen einbeziehen. Nur enthalten, wenn annotation == True .Form (selbst.num_topics, other_model.num_topics, 2).

Beispiele

Ermitteln Sie die Unterschiede zwischen den einzelnen Themenpaaren, die von zwei Modellen abgeleitet wurden

>>> 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, state=None)¶

Führen Sie eine Inferenz für einen Teil der Dokumente durch und sammeln Sie die gesammelten ausreichenden Statistiken.

Parameter

  • chunk (list of list of (int, float)) – Der Korpus-Chunk, auf dem der Inferenzschritt ausgeführt wird.

  • state (LdaState, optional) – Der Zustand, der mit den neu akkumulierten ausreichenden Statistiken aktualisiert werden soll. Wenn keine, die Modelle selbst.der Status wird aktualisiert.

Gibt

Gamma-Parameter zurück, die das Thema steuern Gewichte, Form (len(chunk), Selbst.num_topics).

Rückgabetyp

numpy.ndarray

do_mstep(rho, other, extra_pass=False)¶

Maximierungsschritt: verwenden Sie lineare Interpolation zwischen den vorhandenen Themen undsammelte ausreichende Statistiken, um die Themen zu aktualisieren.

Parameter

  • rho (float) – Lernrate.

  • andere (LdaModel) – Das Modell, dessen ausreichende Statistiken zum Aktualisieren der Themen verwendet werden.

  • extra_pass (bool, optional) – Ob dieser Schritt einen zusätzlichen Durchgang über den Korpus erfordert.

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

Ermittelt die Themenverteilung für das angegebene Dokument.

Parameter

  • bow (corpus : list of (int, float)) – Das Dokument im BOW-Format.

  • minimum_probability (float) – Themen mit einer zugewiesenen Wahrscheinlichkeit unter diesem Schwellenwert werden verworfen.

  • minimum_phi_value (float) –

    Wenn per_word_topics True ist, stellt dies eine untere Grenze für die Termwahrscheinlichkeiten dar, die enthalten sind.

    Wenn auf None gesetzt, wird ein Wert von 1e-8 verwendet, um 0s zu verhindern.

  • per_word_topics (bool) – Wenn True, gibt diese Funktion auch zwei zusätzliche Listen zurück, wie im Abschnitt „Returns“ erläutert.

Gibt

  • Liste der (int, float) – Topic Verteilung für das gesamte Dokument. Jedes Element in der Liste ist ein Paar der ID eines Themas unddie Wahrscheinlichkeit, die ihm zugewiesen wurde.

  • Liste von (int, Liste von (int, float), optional – Wahrscheinlichste Themen pro Wort. Jedes Element in der Liste ist ein Paar der ID eines Wortes und eine Liste vonthemen sortiert nach ihrer Relevanz für dieses Wort. Wird nur zurückgegeben, wenn per_word_topics auf True gesetzt wurde.

  • Liste der (int, Liste der float), optional – Phi-Relevanzwerte, multipliziert mit der Feature-Länge, für jede Wort-Thema-Kombination.Jedes Element in der Liste ist ein Paar der ID eines Wortes und eine Liste der Phi-Werte zwischen diesem Wort und jedem Thema. Wird nur zurückgegeben, wenn per_word_topics auf True gesetzt wurde.

get_term_topics(word_id, minimum_probability=None)¶

Holen Sie sich die relevantesten Themen zum gegebenen Wort.

Parameter

  • word_id (int) – Das Wort, für das die Themenverteilung berechnet wird.

  • minimum_probability (float, optional) – Themen mit einer zugewiesenen Wahrscheinlichkeit unterhalb dieses Schwellenwerts werden verworfen.

Gibt

Die relevanten Themen zurück, die als Paare ihrer ID und ihrer zugewiesenen Wahrscheinlichkeit dargestellt werden, sortiert nach Relevanz für das angegebene Wort.

Rückgabetyp

Liste von (int, float)

get_topic_terms(topicid, topn=10)¶

Holen Sie sich die Darstellung für ein einzelnes Thema. Words die Integer-IDs in constrast toshow_topic(), die Wörter durch die tatsächlichen Zeichenfolgen darstellen.

Parameter

  • topicid (int) – Die ID des zurückzugebenden Themas

  • topn (int, optional) – Anzahl der wichtigsten Wörter, die dem Thema zugeordnet sind.

Gibt

Wort-ID – Wahrscheinlichkeitspaare für die relevantesten Wörter zurück, die vom Thema generiert wurden.

Rückgabetyp

Liste von (int, float)

get_topics()¶

Holen Sie sich die Term-Topic-Matrix, die während der Inferenz gelernt wurde.

Gibt

Die Wahrscheinlichkeit für jedes Wort in jedem Thema, Form (num_topics, vocabulary_size).

Rückgabetyp

numpy.ndarray

inference(chunk, collect_sstats=False)¶

Schätzen Sie bei einem Chunk spärlicher Dokumentvektoren das Gamma (Parameter, die die Themengewichte steuern)für jedes Dokument im Chunk.

Diese Funktion ändert das Modell nicht, es wird angenommen, dass der gesamte Eingabeblock des Dokuments in den RAM passt. Vermeidet die Berechnung des phi-Variationsparameters direkt unter Verwendung der in Lee, Seung: Algorithms for non-negative matrix factorization“ .

Parameter

  • chunk (list of list of (int, float)) – Der Korpus-Chunk, auf dem der Inferenzschritt ausgeführt wird.

  • collect_sstats (bool, optional) – Wenn auf True gesetzt, sammeln (und geben) Sie auch genügend Statistiken zurück, um das Thema des Modells zu aktualisieren -worddistributions.

Returns

Das erste Element wird immer zurückgegeben und entspricht der ersten Gammamatrix. Das zweite Element wird nur zurückgegeben, wenn collect_sstats == True und den ausreichenden Statistiken für den M-Schritt entspricht.

Rückgabetyp

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

init_dir_prior(prior, name)¶

Initialisiert Priors für die Dirichlet-Verteilung.

Parameter

  • prior ({str, Liste der float, numpy.ndarray von float, float}) –

    A-priori-Glaube an die Wortwahrscheinlichkeit. Wenn name == ‚eta‘ dann kann der Prior sein:

    • skalar für eine symmetrische Kombination über Thema /Wort Wahrscheinlichkeit,

    • Vektor der Länge num_words, um eine asymmetrische benutzerdefinierte Wahrscheinlichkeit für jedes Wort zu bezeichnen,

    • Matrix der Form (num_topics, num_words), um eine Wahrscheinlichkeit für jede Wort-Thema-Kombination zuzuweisen,

    • die Zeichenfolge ‚auto‘, um den asymmetrischen Prior aus den Daten zu lernen.

    Wenn name == ‚alpha‘ , dann kann der Prior sein:

    • ein 1D-Array mit einer Länge, die der Anzahl der erwarteten Themen entspricht,

    • ’symmetrisch‘: Verwendet einen festen symmetrischen Prior pro Thema,

    • ‚asymmetrisch‘: Verwendet einen festen normalisierten asymmetrischen Prior von 1.0 / (topic_index + sqrt(num_topics)) ,

    • ‚auto‘: Lernt einen asymmetrischen Prior aus dem Korpus.

  • name ({‚alpha‘, ‚eta‘}) – Ob das Thema durch den Alpha-Vektor (1 Parameter pro Thema)oder durch die eta (1 Parameter pro eindeutigem Begriff im Vokabular)parametrisiert wird.

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

Laden Sie eine zuvor gespeicherte gensim.models.ldamodel.LdaModel aus der Datei.

Siehe auch

save()

Modell speichern.

Parameter

  • fname (str) – Pfad zu der Datei, in der das Modell gespeichert ist.

  • *args – Positionsargumente, die an load() weitergegeben werden.

  • **kwargs – Schlüsselwortargumente, die an load() weitergegeben werden.

Beispiele

Große Arrays können als schreibgeschützter Speicher (Shared Memory) zurückgespeichert werden, indem mmap=’r‘ gesetzt wird:

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

Berechnen und wahrscheinlichkeit pro Wort gebunden, wobei ein Teil der Dokumente als Bewertungskorpus verwendet wird.

Gibt auch die berechneten Statistiken aus, einschließlich der Perplexität=2 ^(-bound), um auf INFO-Ebene zu protokollieren.

Parameter

  • chunk (list of list of (int, float)) – Der Korpus-Chunk, auf dem der Inferenzschritt ausgeführt wird.

  • total_docs (int, optional) – Anzahl der Dokumente, die für die Bewertung der Verwirrung verwendet werden.

Gibt

Die variationsgebundene Punktzahl zurück, die für jedes Wort berechnet wurde.

Rückgabetyp

numpy.ndarray

print_topic(topicno, topn=10)¶

Liefert ein einzelnes Thema als formatierten String.

Parameter

  • topicno (int) – Themen-ID.

  • topn (int) – Anzahl der Wörter aus dem Thema, die verwendet werden.

Gibt

String-Darstellung des Themas, wie ‚-0.340 * „Kategorie“ + 0.298 * „$M$“ + 0.183 * „Algebra“ + … ‚.

Rückgabetyp

str

print_topics(num_topics=20, num_words=10)¶

Holen Sie sich die wichtigsten Themen (Alias für show_topics() -Methode).

Parameter

  • num_topics (int, optional) – Die Anzahl der auszuwählenden Themen, wenn -1 – alle Themen werden im Ergebnis angezeigt (sortiert nach Signifikanz).

  • num_words (int, optional) – Die Anzahl der Wörter, die pro Thema enthalten sein sollen (sortiert nach Bedeutung).

Gibt eine

-Sequenz mit (topic_id, ) zurück.

Rückgabetyp

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

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

Speichern Sie das Modell in einer Datei.

Große interne Arrays können in separaten Dateien mit fname als Präfix gespeichert werden.

Hinweise

Wenn Sie Modelle in Python 2/3-Versionen verwenden möchten, sollten Sie einige Dinge beachten:

  1. Die eingelegten Python-Wörterbücher funktionieren nicht über Python-Versionen hinweg

  2. Die save-Methode speichert nicht automatisch alle Numpy-Arrays separat, nurdiejenigen, die sep_limit überschreiten, das in save() . Das Hauptproblem ist hier das Alpha-Array, wenn zum Beispiel alpha=’auto‘ verwendet wird.

Ein Beispiel zur Umgehung dieser Probleme finden Sie im Abschnitt Wiki-Rezepte.

Siehe auch

load()

Modell laden.

Parameter

  • fname (str) – Pfad zur Systemdatei, in der das Modell gespeichert wird.

  • ignore (Tupel von str, optional) – Die benannten Attribute im Tupel werden aus dem gebeizten Modell herausgelassen. Der Grund, warum der interne Status standardmäßig ignoriert wird, besteht darin, dass er seine eigene Serialisierung anstelle der von dieser Methode bereitgestellten verwendet.

  • separat ({list of str, None}, optional) – Wenn Keine – erkennt automatisch große numpy / scipy.spärliche Arrays im zu speichernden Objekt und speichernsie in separaten Dateien. Dies vermeidet Pickle-Speicherfehler und ermöglicht das effiziente Zuordnen großer Arraysback beim Laden. Wenn Liste der str – this Attribute in separaten Dateien gespeichert werden, wird die automatische Prüfung in diesem Fall nicht durchgeführt.

  • *args – Positionsargumente, die an save() weitergegeben werden.

  • **kwargs – Schlüsselwortargumente, die an save() weitergegeben werden.

show_topic(topicid, topn=10)¶

Ermittelt die Darstellung für ein einzelnes Thema. Wörter hier sind die tatsächlichen Zeichenfolgen, in constrast zuget_topic_terms() das repräsentiert Wörter durch ihre Vokabular-ID.

Parameter

  • topicid (int) – Die ID des zurückzugebenden Themas

  • topn (int, optional) – Anzahl der wichtigsten Wörter, die dem Thema zugeordnet sind.

Gibt

Wort- Wahrscheinlichkeitspaare für die relevantesten Wörter zurück, die vom Thema generiert wurden.

Rückgabetyp

list of (str, float)

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

Darstellung für ausgewählte Themen abrufen.

Parameter

  • num_topics (int, optional) – Anzahl der zurückzugebenden Themen. Im Gegensatz zu LSA gibt es in LDA keine natürliche Reihenfolge zwischen den Themen.Die zurückgegebene Themen-Teilmenge aller Themen ist daher beliebig und kann sich zwischen zwei LDAtraining-Läufen ändern.

  • num_words (int, optional) – Anzahl der Wörter, die für jedes Thema dargestellt werden sollen. Dies sind die relevantesten Wörter (am höchsten zugewiesenwahrscheinlichkeit für jedes Thema).

  • log (bool, optional) – Gibt an, ob die Ausgabe neben der Rückgabe auch protokolliert wird.

  • formatted (bool, optional) – Gibt an, ob die Themendarstellungen als Zeichenfolgen formatiert werden sollen. Wenn False , werden sie als zurückgegeben 2 Tupel von (Wort, Wahrscheinlichkeit).

Gibt

eine Liste von Themen zurück, die entweder als Zeichenfolge (bei Formatierung == True) oder als Word-probabilitypairs dargestellt werden.

Rückgabetyp

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

sync_state(current_Elogbeta=None)¶

Propagieren Sie die Zustände und Wahrscheinlichkeiten auf das Attribut des inneren Objekts.

Parameter

current_Elogbeta (numpy.ndarray) – Posterior Wahrscheinlichkeiten für jedes Thema, optional.Wenn es weggelassen wird, erhält es Elogbeta vom Staat.

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

Holen Sie sich die Themen mit der höchsten Kohärenzbewertung die Kohärenz für jedes Thema.

Parameter

  • Korpus (iterierbar der Liste von (int, float), optional) – Korpus im BoW-Format.

  • texts (list of list of str, optional) – Tokenisierte Texte, die für Kohärenzmodelle benötigt werden, die auf Schiebefenstern basieren (z. coherence=’c_something`)Wahrscheinlichkeitsschätzer .

  • Wörterbuch (Dictionary, optional) – Gensim Wörterbuch Zuordnung von id Wort Korpus zu erstellen.Wenn model.id2word vorhanden ist, wird dies nicht benötigt. Wenn beide angegeben sind, wird das Wörterbuch verwendet.

  • window_size (int, optional) – Ist die Größe des Fensters, das für Kohärenzmessungen verwendet werden soll, wobei das boolesche Schiebefenster als Wahrscheinlichkeitsschätzer verwendet wird. Für ‚u_mass‘ spielt das keine Rolle.Wenn Keine – die Standardfenstergrößen werden verwendet: ‚c_v‘ – 110, ‚c_uci‘ – 10, ‚c_npmi‘ – 10.

  • Kohärenz ({‚u_mass‘, ‚c_v‘, ‚c_uci‘, ‚c_npmi‘}, optional) – Zu verwendendes Kohärenzmaß.Schnellste Methode – ‚u_mass‘, ‚c_uci‘ auch bekannt als c_pmi.Für ‚u_mass‘ sollte corpus bereitgestellt werden, wenn texts bereitgestellt wird, wird es mithilfe des Wörterbuchs in corpus konvertiert. Für ‚c_v‘, ‚c_uci‘ und ‚c_npmi‘ sollten Texte bereitgestellt werden (Korpus wird nicht benötigt)

  • topn (int, optional) – Ganzzahl, die der Anzahl der Top-Wörter entspricht, die aus jedem Thema extrahiert werden sollen.

  • processes (int, optional) – Anzahl der für die Wahrscheinlichkeitsschätzungsphase zu verwendenden Prozesse, jeder Wert kleiner als 1 wird als interpretiertnum_cpus – 1.

Gibt

zurück Jedes Element in der Liste ist ein Paar einer Themendarstellung und ihrer Kohärenzbewertung. Themendarstellungen sind Verteilungen von Wörtern, die als Liste von Paaren von Wort-IDs und deren Wahrscheinlichkeiten dargestellt werden.

Rückgabetyp

list of (list of (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)¶

Trainieren Sie das Modell mit neuen Dokumenten, indem Sie über den Korpus, bis die Themen konvergieren oder bisDie maximale Anzahl zulässiger Iterationen ist erreicht. der Korpus muss iterierbar sein.

Im verteilten Modus wird der E-Schritt über einen Cluster von Maschinen verteilt.Dieses Update unterstützt auch die Aktualisierung eines bereits trainierten Modells mit neuen Dokumenten; Die beiden Modelle werden dann proportional zur Anzahl der alten und neuen Dokumente zusammengeführt. Diese Funktion ist noch experimentell für Nicht-stationäreingabe-Streams. Für stationären Input (keine Themendrift in neuen Dokumenten) entspricht dies dagegen dem Online-Update von Matthew D. Hoffman, David M. Blei, Francis Bach:“Online Learning for Latent Dirichlet Allocation NIPS’10“.und konvergiert garantiert für jeden Zerfall in (0,5, 1,0). Darüber hinaus kann bei kleineren Korpusgrößen ein zunehmender Versatz vorteilhaft sein (siehe Tabelle 1 in demselben Papier).

Parameter

  • corpus (iterable of list of (int, float), optional) – Strom von Dokumentvektoren oder spärlicher Matrix der Form (num_documents, num_terms) verwendet, um themodel zu aktualisieren.

  • chunksize (int, optional) – Anzahl der Dokumente, die in jedem Trainingsblock verwendet werden sollen.

  • decay (float, optional) –

    Eine Zahl zwischen (0,5, 1], um zu gewichten, welcher Prozentsatz des vorherigen Lambda-Wertes bei der Untersuchung jedes neuen Dokuments vergessen wird. Entspricht Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach:“Online Learning for Latent Dirichlet Allocation NIPS’10“.

  • offset (float, optional) –

    Hyper-Parameter, der steuert, wie viel wir die ersten Schritte verlangsamen die ersten paar Iterationen.Entspricht Tau_0 aus Matthew D. Hoffman, David M. Blei, Francis Bach:“Online Learning for Latent Dirichlet Allocation NIPS’10“.

  • Pässe (int, optional) – Anzahl der Pässe durch den Korpus während des Trainings.

  • update_every (int, optional) – Anzahl der Dokumente, die für jede Aktualisierung durchlaufen werden sollen.Für Batch-Lernen auf 0 setzen, > 1 für iteratives Online-Lernen.

  • eval_every (int, optional) – Log-Perplexität wird nach so vielen Updates geschätzt. Wenn Sie dies auf eins setzen, wird das Training um ~2x verlangsamt.

  • Iterationen (int, optional) – Maximale Anzahl von Iterationen durch den Korpus, wenn auf die Themenverteilung eines Korpus geschlossen wird.

  • gamma_threshold (float, optional) – Minimale Änderung des Wertes der Gamma-Parameter, um die Iteration fortzusetzen.

  • chunks_as_numpy (bool, optional) – Gibt an, ob jeder an den Inferenzschritt übergebene Chunk ein numpy sein soll.ndarray oder nicht. Numpy kann in einigen Einstellungen die Term-IDs in Floats umwandeln, diese werden in der Inferenz wieder in Ganzzahlen umgewandelt, was zu einem Performancetreffer führt. Für verteiltes Rechnen kann es wünschenswert sein, die Chunks als numpy zu behalten.ndarray.

update_alpha(gammat, rho)¶

Aktualisieren Sie die Parameter für das Dirichlet basierend auf den Themengewichten pro Dokument.

Parameter

  • gammat (numpy.ndarray) – Vorheriges Thema Gewichtsparameter.

  • rho (float) – Lernrate.

Gibt die

-Sequenz von Alpha-Parametern zurück.

Rückgabetyp

numpy.ndarray

update_eta(lambdat, rho)¶

Aktualisieren Sie die Parameter für das Dirichlet basierend auf den Wortgewichten pro Thema.

Parameter

  • lambdat (numpy.ndarray) – Vorherige Lambda-Parameter.

  • rho (float) – Lernrate.

Gibt

Die aktualisierten ETA-Parameter zurück.

Rückgabetyp

numpy.ndarray

Klassegensim.models.ldamodel.LdaState(eta, Form, dtype=<Klasse ’numpy.float32′>)¶

Basen: gensim.utils.SaveLoad

Kapselt Informationen für die verteilte Berechnung von LdaModel Objekten ein.

Objekte dieser Klasse werden über das Netzwerk gesendet.

Parameter

  • eta (numpy.ndarray) – Die jedem Term zugewiesenen vorherigen Wahrscheinlichkeiten.

  • shape (Tupel von (int, int)) – Form der ausreichenden Statistik: (Anzahl der zu findenden Themen, Anzahl der Begriffe im Vokabular).

  • dtype (type) – Überschreibt die Standardtypen des Numpy-Arrays.

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

Fügen Sie ein Ereignis in das Attribut lifecycle_events dieses Objekts ein und protokollieren Sie das Ereignis optional auf log_level.

Ereignisse sind wichtige Momente im Leben des Objekts, z. B. „Modell erstellt“,“Modell gespeichert“, „Modell geladen“ usw.

Das lifecycle_events Attribut wird über die save()und load() Operationen des Objekts beibehalten. Es hat keine Auswirkungen auf die Verwendung des Modells, ist jedoch beim Debuggen und Support nützlich.

Selbst festlegen.lifecycle_events = None, um dieses Verhalten zu deaktivieren. Aufrufe von add_lifecycle_event() zeichnen Ereignisse nicht in self auf.lifecycle_events dann.

Parameter

  • event_name (str) – Name des Ereignisses. Kann ein beliebiges Label sein, z.B. „erstellt“, „gespeichert“ usw.

  • Ereignis (Diktat) –

    Schlüssel-Wert-Zuordnung zum Anhängen an self .in: lifecycle_events. Sollte JSON-serialisierbar sein, also halte es einfach.Kann leer sein.

    Diese Methode fügt dem Ereignis automatisch die folgenden Schlüsselwerte hinzu, sodass Sie sie nicht angeben müssen:

    • datetime: das aktuelle Datum & time

    • gensim: die aktuelle Gensim-Version

    • python: die aktuelle Python-Version

    • plattform: die aktuelle Plattform

    • Ereignis: der Name dieses Ereignisses

  • log_level (int) – Protokolliert auch das vollständige Ereignisdiktat auf der angegebenen Protokollebene. Setzen Sie auf False, um überhaupt nicht zu protokollieren.

blend(rhot, other, targetsize=None)¶

Führen Sie den aktuellen Status mit einem anderen zusammen, indem Sie einen gewichteten Durchschnitt für die entsprechenden Statistiken verwenden.

Die Anzahl der Dokumente ist in beiden Zustandsobjekten gestreckt, so dass sie von vergleichbarer Größe sind.Diese Vorgehensweise entspricht der stochastischen Gradientenaktualisierung Vonhoffman et al. :“Online Learning for Latent Dirichlet Allocation“, siehe Gleichungen (5) und (9).

Parameter

  • rhot (float) – Gewicht des anderen Zustands im berechneten Durchschnitt. Ein Wert von 0,0 bedeutet, dass otheris vollständig ignoriert. Ein Wert von 1,0 bedeutet, dass self vollständig ignoriert wird.

  • other (LdaState) – Das Statusobjekt, mit dem das aktuelle Objekt zusammengeführt wird.

  • targetsize (int, optional) – Die Anzahl der Dokumente, auf die beide Zustände ausgedehnt werden sollen.

blend2(rhot, other, targetsize=None)¶

Führen Sie den aktuellen Status mit einem anderen zusammen, indem Sie eine gewichtete Summe für die ausreichende Statistik verwenden.

Im Gegensatz zu blend()werden die ausreichenden Statistiken nicht vor der Aggregation skaliert.

Parameter

  • rhot (float) – Unbenutzt.

  • other (LdaState) – Das Statusobjekt, mit dem das aktuelle Objekt zusammengeführt wird.

  • targetsize (int, optional) – Die Anzahl der Dokumente, auf die beide Zustände ausgedehnt werden sollen.

get_Elogbeta()¶

Ermittelt die Log-Wahrscheinlichkeiten für jedes Thema.

Gibt

Posteriore Wahrscheinlichkeiten für jedes Thema zurück.

Rückgabetyp

numpy.ndarray

get_lambda()¶

Ermittelt die Parameter des Arrays über den Themen, die auch als „die Themen“ bezeichnet werden.

Gibt

Parameter der posterioren Wahrscheinlichkeit über Themen zurück.

Rückgabetyp

numpy.ndarray

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

Lädt einen zuvor gespeicherten Zustand von der Festplatte.

Überschreibt load durch Erzwingen des Parameters dtype, um die Abwärtskompatibilität sicherzustellen.

Parameter

  • fname (str) – Pfad zur Datei, die das benötigte Objekt enthält.

  • args (object) – Positionsparameter, die an die Klasse~gensim weitergegeben werden:~gensim .utils.Speichern.load

  • kwargs (object) – Schlüsselwortparameter, die an die Klasse~gensim weitergegeben werden:~gensim .utils.Speichern.load

Gibt

Den aus der angegebenen Datei geladenen Zustand zurück.

Rückgabetyp

LdaState

merge(andere)¶

Führen Sie das Ergebnis eines E-Schritts von einem Knoten mit dem eines anderen Knotens zusammen (Zusammenfassung ausreichender Statistiken).

Das Zusammenführen ist trivial und nach dem Zusammenführen aller Clusterknoten haben wir genau das gleiche Ergebnis, als ob die Berechnung auf einem einzelnen Knoten ausgeführt worden wäre (noapproximation).

Parameter

other (LdaState) – Das Statusobjekt, mit dem das aktuelle Objekt zusammengeführt wird.

reset()¶

Bereiten Sie den Status für eine neue EM-Iteration vor (setzen Sie ausreichende Statistiken zurück).

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

Speichern Sie das Objekt in einer Datei.

Parameter

  • fname_or_handle (str oder file-like) – Pfad zur Ausgabedatei oder zum bereits geöffneten dateiähnlichen Objekt. Wenn das Objekt ein Dateihandle ist, wird keine spezielle Array-Behandlung durchgeführt, alle Attribute werden in derselben Datei gespeichert.

  • separat (Liste von str oder None, optional) –

    Wenn Keine, erkennt automatisch große numpy / scipy.spärliche Arrays im zu speichernden Objekt und speichernsie in separaten Dateien. Dies verhindert Speicherfehler für große Objekte und ermöglicht außerdem die Speicherzuordnung der großen Arrays zum effizienten Laden und Teilen der großen Arrays im RAM zwischen mehreren Prozessen.

    If list of str: Speichern Sie diese Attribute in separaten Dateien. Die automatische Größenprüfung wird in diesem Fall nicht durchgeführt.

  • sep_limit (int, optional) – Speichern Sie Arrays, die kleiner sind, nicht separat. In Bytes.

  • ignore (frozenset of str, optional) – Attribute, die überhaupt nicht gespeichert werden sollten.

  • pickle_protocol (int, optional) – Protokollnummer für pickle.

Siehe auch

load()

Objekt aus Datei laden.

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

Aktualisieren Sie einen gegebenen Prior mit Newtons Methode, beschrieben inj. Huang: „Maximum-Likelihood-Schätzung von Dirichlet-Verteilungsparametern“.

Parameter

  • prior (Liste der float) – Der Prior für jedes mögliche Ergebnis bei der vorherigen Iteration (zu aktualisieren).

  • N (int) – Anzahl der Beobachtungen.

  • logphat (list of float) – Log-Wahrscheinlichkeiten für die aktuelle Schätzung, auch „observed sufficient statistics“ genannt.

  • rho (float) – Lernrate.

Gibt

Den aktualisierten prior zurück.

Rückgabetyp

Liste der float

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.