användningsexempel
träna en Lda-modell med en 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)
spara en modell på disk, eller ladda om en förutbildad modell
>>> 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)
fråga, modellen med nya, osynliga dokument
>>> # 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
uppdatera modellen genom stegvis träning på den nya Corpus
>>> lda.update(other_corpus)>>> vector = lda
många parametrar kan ställas in för att optimera träningen för ditt specifika fall
>>> 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.TransformationABC
gensim.models.basemodel.BaseTopicModel
träna och använda online Latent Dirichlet allokering (OLDA) modeller som presenteras inHoffman et al. : ”Online-lärande för Latent Dirichlet allokering”.
exempel
initiera en modell med en Gensim corpus
>>> from gensim.test.utils import common_corpus>>>>>> lda = LdaModel(common_corpus, num_topics=10)
Du kan sedan härleda ämnesfördelningar på nya, osynliga dokument.
>>> doc_bow = >>> doc_lda = lda
modellen kan uppdateras (tränas) med nya dokument.
>>> # In practice (corpus =/= initial training corpus), but we use the same here for simplicity.>>> other_corpus = common_corpus>>>>>> lda.update(other_corpus)
modellpersistens uppnås genomload()
ochsave()
metoder.
parametrar
-
corpus (iterable av listan över (int, float), valfritt) – ström av dokumentvektorer eller gles matris av form (num_documents, num_terms).Om du har en CSC-matris i minnet kan du konvertera den till astreamed corpus med hjälp av gensim.matutils.Sparse2Corpus.Om den inte ges lämnas modellen otränad (förmodligen för att du vill ringa
update()
manuellt). -
num_topics (int, valfritt) – antalet begärda latenta ämnen som ska extraheras från träningskorpus.
-
id2word ({dict of (int, str),
gensim.corpora.dictionary.Dictionary
}) – kartläggning från ord-ID till ord. Det används för att bestämma ordförrådets storlek, såväl som fördebugging och ämnesutskrift. -
distribuerad (bool, valfritt) – om distribuerad databehandling ska användas för att påskynda träningen.
-
chunksize (int, valfritt) – antal dokument som ska användas i varje träningsbit.
-
passerar (int, valfritt) – antal passerar genom corpus under träning.
-
update_every (int, valfritt) – antal dokument som ska itereras för varje uppdatering.Ställ in på 0 för batchinlärning, > 1 för online iterativt lärande.
-
alfa ({numpy.ndarray, str}, valfritt) –
kan ställas in på en 1D-array med längd lika med antalet förväntade ämnen som uttrycker vår a-priori-tro för varje ämnes Sannolikhet.Alternativt standard tidigare välja strategier kan användas genom att leverera en sträng:
-
’symmetrisk’: standard; använder en fast symmetrisk prior per ämne,
-
’asymmetrisk’: använder en fast normaliserad asymmetrisk prior av 1.0 / (topic_index + sqrt(num_topics)),
-
’auto’: lär sig en asymmetrisk prior från Corpus (inte tillgänglig om distribuerad==sant).
-
-
eta ({float, np.array, str}, valfritt – –
a-priori tro på ord Sannolikhet, detta kan vara:
-
skalär för en symmetrisk prior över ämne/ord Sannolikhet,
-
vektor av längd num_words för att beteckna en asymmetrisk användardefinierad Sannolikhet för varje ord,
-
matris av form (num_topics, num_words) för att tilldela en sannolikhet för varje ord-ämne kombination,
-
strängen ’Auto’ för att lära sig den asymmetriska prior från data.
-
-
förfall (float, valfritt) – ett tal mellan (0.5, 1] för att väga vilken procentandel av det tidigare lambda-värdet glöms bortnär varje nytt dokument undersöks. Motsvarar Kappa frånmatthew D. Hoffman, David M. Blei, Francis Bach:”online-lärande för Latent Dirichlet Allocation NIPS’10”.
-
offset (float, tillval)-
Hyper-parameter som styr hur mycket vi kommer att sakta ner de första stegen de första iterationerna.Motsvarar Tau_0 från Matthew D. Hoffman, David M. Blei, Francis Bach:”online-lärande för Latent Dirichlet allokering NIPS’10”.
-
eval_every (int, valfritt) – Log förvirring uppskattas varje att många uppdateringar. Att ställa in detta till en saktar ner träningen med ~2x.
-
iterationer (int, valfritt) – maximalt antal iterationer genom corpus när man drar slutsatsen om ämnesfördelningen av en corpus.
-
gamma_threshold (float, valfritt) – minsta förändring i värdet på gamma-parametrarna för att fortsätta iterera.
-
minimum_probability (float, valfritt) – ämnen med en sannolikhet lägre än denna tröskel filtreras bort.
-
random_state ({np.slumpmässig.RandomState, int}, valfritt) – antingen ett randomState-objekt eller ett frö för att generera ett. Användbar för Reproducerbarhet.
-
ns_conf (dict of (str, object), valfritt) – Nyckelordsparametrar som sprids till
gensim.utils.getNS()
för att få ett Pyro4-namn.Används endast om distribuerad är inställd på True. -
minimum_phi_value (float, valfritt) – om per_word_topics är sant, representerar detta en lägre gräns för termen sannolikheter.
-
per_word_topics (bool) – om det är sant, beräknar modellen också en lista över ämnen, sorterade i fallande ordning av mest troliga ämnen förvarje ord, tillsammans med deras phi-värden multiplicerat med funktionslängden (dvs. ordräkning).
-
callbacks (lista över
Callback
) – metriska callbacks för att logga och visualisera utvärderingsmått för modellen under träning. -
dtype ({numpy.float16, numpy.float32, numpy.float64}, valfritt)-datatyp att använda under beräkningar inuti modellen. Alla ingångar konverteras också.
add_lifecycle_event
(event_name, log_level=20, **event)
lägg till en händelse i attributet lifecycle_events för det här objektet och logga också in händelsen på log_level.
händelser är viktiga stunder under objektets liv, till exempel ”modell skapad”,”modell Sparad”, ”modell laddad” etc.
attributet lifecycle_events kvarstår över objektetssave()
ochload()
operationer. Det har ingen inverkan på användningen av modellen,men är användbar vid felsökning och support.
Ställ in själv.lifecycle_events = ingen för att inaktivera detta beteende. Samtal till add_lifecycle_event () kommer inte att spela in händelser i själv.lifecycle_events då.
parametrar
-
event_name (str) – händelsens namn. Kan vara vilken etikett som helst, t.ex. ”skapad”, ”lagrad” etc.
-
händelse (dict)-
Nyckelvärdeskartläggning för att lägga till själv.lifecycle_events. Bör vara JSON-serializable, så håll det enkelt.Kan vara tom.
den här metoden lägger automatiskt till följande nyckelvärden i händelse, så du behöver inte ange dem:
-
datetime: det aktuella datumet & tid
-
gensim: den aktuella Gensim – versionen
-
python: den aktuella Python-versionen
-
plattform: den aktuella plattformen
-
händelse: namnet på denna händelse
-
-
log_level (int) – logga också hela händelsedikt, på den angivna loggnivån. Ställ in på False för att inte logga alls.
bound
(corpus, gamma=None, subsample_ratio=1.0) securic
uppskatta variationsbunden för dokument från corpus som E_q – E_q.
parametrar
-
corpus (iterable of list of (int, float), valfritt) – ström av dokumentvektorer eller gles matris av form (num_documents, num_terms) som används för att uppskatta variationsgränser.
-
gamma (numpy.ndarray, valfritt) – Topic vikt variationsparametrar för varje dokument. Om den inte levereras kommer den att härledas från modellen.
-
subsample_ratio (float, valfritt) – procentandel av hela korpuset representerat av det godkända korpusargumentet (om detta var ett prov).Ställ in på 1.0 om hela korpusen passerade.Detta används som en multiplikativ faktor för att skala likelihoodappropriately.
returnerar
den variationsbundna poängen beräknad för varje dokument.
returtyp
numpy.ndarray
clear
() exporter
rensa modellens tillstånd för att frigöra lite minne. Används i distribuerad implementering.
diff
(andra, avstånd=’kullback_leibler’, num_words=100, n_ann_terms=10, diagonal=False, annotation=True, normed=True) xhamster
beräkna skillnaden i ämnesfördelningar mellan två modeller: själv och andra.
parametrar
-
Övrigt (
LdaModel
) – modellen som kommer att jämföras mot det aktuella objektet. -
avstånd ({’kullback_leibler’, ’hellinger’, ’jaccard’, ’jensen_shannon’}) – avståndsmätaren för att beräkna skillnaden med.
-
num_words (int, valfritt) – antalet mest relevanta ord som används om avstånd == ’jaccard’. Används också för att kommentera ämnen.
-
n_ann_terms (int, valfritt) – Max antal ord i korsning/symmetrisk skillnad mellan ämnen. Används för anteckning.
-
diagonal (bool, valfritt) – om vi behöver skillnaden mellan identiska ämnen (diagonalen i skillnadsmatrisen).
-
annotation (bool, valfritt) – om korsningen eller skillnaden mellan ord mellan två ämnen ska returneras.
-
normed (bool, valfritt) – om matrisen ska normaliseras eller inte.
returnerar
-
numpy.ndarray – en skillnadsmatris. Varje element motsvarar skillnaden mellan de två ämnena,form (själv.num_topics, andra.num_topics)
-
numpy.ndarray, valfri – Annotation matrix där för varje par inkluderar vi ordet från skärningspunkten mellan de två ämnena och ordet från den symmetriska skillnaden mellan de två ämnena. Ingår endast om annotation = = True.Form (själv.num_topics, other_model.num_topics, 2).
exempel
få skillnaderna mellan varje par av ämnen som härleds av två modeller
>>> 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) och ackumulera den samlade tillräckliga statistiken. parametrar
-
chunk (lista över lista över (int, float)) – den korpusbit som inferenssteget kommer att utföras på.
-
stat (
LdaState
, valfritt) – staten som ska uppdateras med den nyligen ackumulerade tillräckliga statistiken. Om ingen, modellernasjälv.staten är uppdaterad.
returnerar
Gamma parametrar som styr ämnesvikter, form(len (Bit), själv.num_topics).
returtyp
numpy.ndarray
do_mstep
(rho, annat, extra_pass=falskt): använd linjär interpolering mellan befintliga ämnen ochsamlade tillräcklig statistik i andra för att uppdatera ämnena. parametrar
-
rho (float) – inlärningshastighet.
-
Övrigt (
LdaModel
) – modellen vars tillräckliga statistik kommer att användas för att uppdatera ämnena. -
extra_pass (bool, valfritt) – om detta steg krävde ett ytterligare pass över corpus.
get_document_topics
(bow, minimum_probability=None, minimum_phi_value=None, per_word_topics=False) Portugals
hämta ämnesfördelningen för det angivna dokumentet.
parametrar
-
båge (corpus : lista över (int, float)) – dokumentet i bågformat.
-
minimum_probability (float) – ämnen med en tilldelad Sannolikhet lägre än denna tröskel kommer att kasseras.
-
minimum_phi_value (float) –
om per_word_topics är sant, representerar detta en lägre gräns för termen sannolikheter som ingår.
om det är inställt på None används ett värde på 1e-8 för att förhindra 0s.
-
per_word_topics (bool) – om det är sant returnerar den här funktionen också två extra listor som förklaras i avsnittet ”returnerar”.
returnerar
-
lista över (int, float) – ämnesfördelning för hela dokumentet. Varje element i listan är ett par av ett ämnes id, ochsannolikheten som tilldelades den.
-
lista över (int, lista över (int, float), valfritt – mest troliga ämnen per ord. Varje element i listan är ett par av ett ords id och en lista överämnen sorterade efter deras relevans för detta ord. Returneras endast om Per_word_topics var inställd på True.
-
lista över (int, lista över float), valfria – Phi-relevansvärden, multiplicerat med funktionslängden, för varje ord-ämneskombination.Varje element i listan är ett par av ett ords id och en lista över phi-värdena mellan detta ord ochvarje ämne. Returneras endast om Per_word_topics var inställd på True.
get_term_topics
(word_id, minimum_probability=None) brasilian
få de mest relevanta ämnena till det givna ordet.
parametrar
-
word_id (int) – ordet för vilket ämnesfördelningen kommer att beräknas.
-
minimum_probability (float, valfritt) – ämnen med en tilldelad Sannolikhet under denna tröskel kommer att kasseras.
returnerar
de relevanta ämnen som representeras som par av deras ID och deras tilldelade Sannolikhet, sorterade efter relevans för det givna ordet.
returtyp
lista över (int, float)
get_topic_terms
(topicid, topn=10) brasilian
få representationen för ett enda ämne. Ord heltals-ID: n, i sammandrag tillshow_topic()
som representerar ord med de faktiska strängarna.
parametrar
-
topicid (int) – ID för ämnet som ska returneras
-
topn (int, valfritt) – antal av de viktigaste orden som är associerade med ämnet.
returnerar
Word ID – sannolikhetspar för de mest relevanta orden som genereras av ämnet.
returtyp
lista över (int, float)
get_topics
() xhamster
få term-topic matrix lärt under slutledning.
returnerar
sannolikheten för varje ord i varje ämne, form (num_topics, vocabulary_size).
returtyp
numpy.ndarray
inference
(chunk, collect_sstats=False) bisexuell
med tanke på en bit av glesa dokumentvektorer, uppskatta gamma (parametrar som styr ämnesvikterna)för varje dokument i biten.
den här funktionen ändrar inte modellen hela inmatningsdelen av dokumentet antas passa i RAM;chunking av en stor corpus måste göras tidigare i rörledningen. Undviker att beräkna phi-variationenparametern direkt med hjälp av optimeringen presenterad inLee, Seung: algoritmer för icke-negativ matrisfaktorisering”.
parametrar
-
chunk (lista över lista över (int, float)) – den korpusbit som inferenssteget kommer att utföras på.
-
collect_sstats (bool, valfritt) – om den är inställd på True, samla också in (och returnera) tillräcklig statistik som behövs för att uppdatera modellens ämne-worddistributions.
returnerar
det första elementet returneras alltid och det motsvarar tillstånden gamma matrix. Det andra elementet returneras endast om collect_sstats == True och motsvarar tillräcklig statistik för M-steget.
returtyp
(numpy.ndarray, {numpy.ndarray, None})
init_dir_prior
(prior, name)
initiera priors för Dirichlet-distributionen.
parametrar
-
tidigare ({str, lista över float, numpy.ndarray av float, float}) –
a-priori tro på ord Sannolikhet. Om name = = ’ eta ’ kan den tidigare vara:
-
skalär för en symmetrisk prior över ämne/ord Sannolikhet,
-
vektor av längd num_words för att beteckna en asymmetrisk användardefinierad Sannolikhet för varje ord,
-
matris av form (num_topics, num_words) för att tilldela en sannolikhet för varje ord-ämne kombination,
-
strängen ’Auto’ för att lära sig den asymmetriska prior från data.
om name = = ’alpha’, kan den tidigare vara:
-
en 1D array med längd lika med antalet förväntade ämnen,
-
’symmetrisk’: använder en fast symmetrisk prior per ämne,
-
’asymmetrisk’: använder en fast normaliserad asymmetrisk prior av 1.0 / (topic_index + sqrt(num_topics)),
-
’Auto’: lär sig en asymmetrisk prior från Corpus.
-
-
namn ({’alpha’, ’eta’}) – om prior parametriseras av alfavektorn (1 parameter per ämne)eller av eta (1 parameter per unik term i ordförrådet).
classmethod load
(fname, *args, **kwargs) auspi
ladda en tidigare sparad gensim.models.ldamodel.LdaModel
från fil.
Se även
save()
spara modell.
parametrar
-
fname (str) – sökväg till filen där modellen är lagrad.
-
* args-Positionsargument som sprids till
load()
. -
* * kwargs-nyckelord argument sprids till
load()
.
exempel
stora matriser kan memmap’ed tillbaka som skrivskyddad (delat minne) genom att ställa 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=beräkna och returnera sannolikheten per ord bunden, med hjälp av en bit av dokument som utvärderingskorpus.
matar också ut den beräknade statistiken, inklusive förvirringen=2^(-bunden), för att logga på informationsnivå.
parametrar
-
chunk (lista över lista över (int, float)) – den korpusbit som inferenssteget kommer att utföras på.
-
total_docs (int, valfritt) – antal dokument som används för utvärdering av förvirringen.
returnerar
den variationsbundna poängen beräknad för varje ord.
returtyp
numpy.ndarray
print_topic
(topicno, topn=10) osk
få ett enda ämne som en formaterad sträng.
parametrar
-
topicno (int) – ämne id.
-
topn (int) – antal ord från ämne som kommer att användas.
returnerar
Strängrepresentation av ämne ,som ’-0.340 *” kategori ”+ 0.298 * ”$m$ ”+ 0.183 * ”algebra”+…’.
returtyp
str
print_topics
(num_topics=20, num_words=10) aug.
få de viktigaste ämnena (alias för show_topics() metod).
parametrar
-
num_topics (int, valfritt) – antalet ämnen som ska väljas, om -1 – alla ämnen kommer att vara i resultat (ordnade efter betydelse).
-
num_words (int, valfritt) – antalet ord som ska inkluderas per ämnen (ordnade efter betydelse).
returnerar
sekvens med (topic_id,).
returtyp
lista över (int, lista över( str, float))
save
(fname, ignore=(’state’, ’dispatcher’), separat=None, *args, **kwargs) Australia
spara modellen i en fil.
stora interna matriser kan lagras i separata filer, med fname som prefix.
anteckningar
Om du tänker använda modeller över Python 2/3 versioner finns det några saker att tänka på:
de inlagda Python-ordböckerna fungerar inte över Python-versioner
spara-metoden sparar inte automatiskt alla numpy-arrayer separat, barade som överstiger sep_limit som anges i
save()
. Mainconcern här är alpha-arrayen om du till exempel använder alpha=’auto’.
se avsnittet wiki receptför ett exempel på hur man kan kringgå dessa problem.
Se även
load()
ladda modell.
parametrar
-
fname (str) – sökväg till systemfilen där modellen kommer att kvarstå.
-
ignorera (tupel av str, valfritt) – de namngivna attributen i tupeln kommer att lämnas utanför den inlagda modellen. Anledningen till att det interna tillståndet ignoreras som standard är att det använder sin egen serialisering snarare än den som tillhandahålls av denna metod.
-
separat ({lista över str, ingen}, valfritt) – om ingen-upptäcker automatiskt stor numpy/scipy.sparsamma arrayer i objektet som lagras och lagrasdem i separata filer. Detta undviker pickle minnesfel och tillåter mmap ’ ing stora arraysback på belastning effektivt. Om Lista över str-detta attribut kommer att lagras i separata filer, är den automatiska kontrollen inte utförs i detta fall.
-
* args-Positionsargument som sprids till
save()
. -
* * kwargs-nyckelord argument sprids till
save()
.
show_topic
(topicid, topn=10) brasilian
få representationen för ett enda ämne. Ord här är de faktiska strängarna, i constrast tillget_topic_terms()
som representerar ord med deras ordförråd ID.
parametrar
-
topicid (int) – ID för ämnet som ska returneras
-
topn (int, valfritt) – antal av de viktigaste orden som är associerade med ämnet.
returnerar
ord-sannolikhetspar för de mest relevanta ord som genereras av ämnet.
returtyp
lista över (str, float)
show_topics
(num_topics=10, num_words=10, log=False, formaterad=True) Portugals
få en representation för utvalda ämnen.
parametrar
-
num_topics (int, valfritt) – antal ämnen som ska returneras. Till skillnad från LSA finns det ingen naturlig ordning mellan ämnena i LDA.Den returnerade ämnen delmängd av alla ämnen är därför godtycklig och kan ändras mellan två ldatraining körningar.
-
num_words (int, valfritt) – antal ord som ska presenteras för varje ämne. Dessa kommer att vara de mest relevanta orden (tilldelas högstasannolikhet för varje ämne).
-
log (bool, valfritt) – om utmatningen också loggas, förutom att returneras.
-
formaterad (bool, valfritt) – om ämnesrepresentationerna ska formateras som strängar. Om falskt returneras de som2 tuples av (ord, Sannolikhet).
returnerar
en lista med ämnen, var och en representerade antingen som en sträng (när formaterad == True) eller word-probabilitypairs.
returtyp
lista över {str, tuple of(str, float)}
sync_state
(current_Elogbeta=None) brasilian
sprida tillstånden ämnessannolikheter till det inre objektets attribut.
parametrar
current_Elogbeta (numpy.Ndarray) – Posterior sannolikheter för varje ämne, valfritt.Om utelämnas, det kommer att få Elogbeta från staten.
top_topics
(corpus=None, texts=None, dictionary=None, window_size=None, koherens=’u_mass’, topn=20, processer=-1) occupy
få ämnen med högsta koherens poäng koherensen för varje ämne.
parametrar
-
corpus (iterable av listan över (int, float), valfritt) – Corpus i bågformat.
-
texter (lista över lista över str, valfritt) – tokeniserade texter, som behövs för koherensmodeller som använder glidande fönsterbaserade (dvs. koherens= ’c_something’) sannolikhetsuppskattare .
-
ordbok (
Dictionary
, valfritt) – Gensim ordbok kartläggning av id ord för att skapa corpus.Om model. id2word är närvarande behövs det inte. Om båda tillhandahålls kommer godkänd ordbok att användas. -
window_size (int, valfritt) – är storleken på fönstret som ska användas för koherensåtgärder med hjälp av booleskt skjutfönster som deras sannolikhet estimator. För ’u_mass’ spelar det ingen roll.Om ingen-standardfönsterstorlekar används som är: ’c_v’ – 110, ’c_uci’ – 10, ’c_npmi’ – 10.
-
koherens ({’u_mass’, ’c_v’, ’c_uci’, ’c_npmi’}, valfritt) – Koherensåtgärd som ska användas.Snabbaste metoden – ’u_mass’, ’c_uci’ även känd som c_pmi.För’ u_mass ’ corpus bör tillhandahållas, om texter tillhandahålls, det kommer att konverteras till corpusanvända ordlistan. För’ c_v’,’ c_uci ’och’ c_npmi ’ bör texter tillhandahållas (corpus behövs inte)
-
topn (int, valfritt) – heltal som motsvarar antalet toppord som ska extraheras från varje ämne.
-
processer (int, valfritt) – antal processer som ska användas för sannolikhetsbedömningsfas, något värde mindre än 1 kommer att tolkas somnum_cpus-1.
returnerar
varje element i listan är ett par av en ämnesrepresentation och dess sammanhållnings poäng. Ämnesrepresentationerär fördelningar av ord, representerade som en lista över par av ord-ID och deras sannolikheter.
returtyp
lista över (lista över (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) Portugals
träna modellen med nya dokument, genom em-iterering över Corpus tills ämnena konvergerar, eller tillsdet maximala antalet tillåtna iterationer uppnås. corpus måste vara en iterabel.
i distribuerat läge fördelas e-steget över ett kluster av maskiner.
anmärkningar
den här uppdateringen stöder också uppdatering av en redan utbildad modell med nya dokument; de två modellerna slås sedan samman i proportion till antalet gamla vs. nya dokument. Denna funktion är fortfarande experimentell för icke-stationärinmatningsströmmar. För stationär ingång (ingen ämnesdrift i nya dokument), å andra sidan, motsvarar dettaonline-uppdatering av Matthew D. Hoffman, David M. Blei, Francis Bach:”Online Learning for Latent Dirichlet Allocation NIPS’10”.och garanteras att konvergera för varje förfall i (0,5, 1,0). För mindre korpusstorlekar kan dessutom en ökande förskjutning vara fördelaktig (se Tabell 1 i samma papper).
parametrar
-
corpus (iterable av listan över (int, float), valfritt) – ström av dokumentvektorer eller gles matris av form (num_documents, num_terms) används för att uppdatera themodel.
-
chunksize (int, valfritt) – antal dokument som ska användas i varje träningsbit.
-
decay (float, optional) –
ett tal mellan (0.5, 1] för att väga vilken procentandel av föregående lambda-värde glöms bortnär varje nytt dokument undersöks. Motsvarar Kappa frånmatthew D. Hoffman, David M. Blei, Francis Bach:”online-lärande för Latent Dirichlet Allocation NIPS’10”.
-
offset (float, tillval)-
Hyper-parameter som styr hur mycket vi kommer att sakta ner de första stegen de första iterationerna.Motsvarar Tau_0 från Matthew D. Hoffman, David M. Blei, Francis Bach:”online-lärande för Latent Dirichlet allokering NIPS’10”.
-
passerar (int, valfritt) – antal passerar genom corpus under träning.
-
update_every (int, valfritt) – antal dokument som ska itereras för varje uppdatering.Ställ in på 0 för batchinlärning, > 1 för online iterativt lärande.
-
eval_every (int, valfritt) – Log förvirring uppskattas varje att många uppdateringar. Att ställa in detta till en saktar ner träningen med ~2x.
-
iterationer (int, valfritt) – maximalt antal iterationer genom corpus när man drar slutsatsen om ämnesfördelningen av en corpus.
-
gamma_threshold (float, valfritt) – minsta förändring i värdet på gamma-parametrarna för att fortsätta iterera.
-
chunks_as_numpy (bool, valfritt) – om varje bit som skickas till inferenssteget ska vara en numpy.ndarray eller inte. Numpy kan i vissa inställningarvända termen ID till flottor, dessa kommer att konverteras tillbaka till heltal i inferens, vilket medför aperformance hit. För distribuerad databehandling kan det vara önskvärt att hålla bitarna som numpy.ndarray.
update_alpha
(gammat, rho) 2
uppdatera parametrar för Dirichlet tidigare på ämnesvikterna per dokument.
parametrar
-
gammat (numpy.ndarray) – tidigare ämne viktparametrar.
-
rho (float) – inlärningshastighet.
returnerar
sekvens av alfa-parametrar.
returtyp
numpy.ndarray
update_eta
(lambdat, rho)
uppdatera parametrar för Dirichlet tidigare på ordvikterna per ämne.
parametrar
-
lambdat (numpy.ndarray) – tidigare lambda-parametrar.
-
rho (float) – inlärningshastighet.
returnerar
de uppdaterade eta-parametrarna.
returtyp
numpy.ndarray
klassgensim.models.ldamodel.
LdaState
(eta, form, dtype=<klass ’numpy.float32 ’>)
baser: gensim.utils.SaveLoad
inkapsla information för distribuerad beräkning av LdaModel
objekt.
objekt i den här klassen skickas över nätverket, så försök att hålla dem lutade tillminska trafiken.
parametrar
-
eta (numpy.ndarray) – de tidigare sannolikheter som tilldelats varje term.
-
shape (tuple of (int, int)) – form av tillräcklig statistik: (antal ämnen som ska hittas, antal termer i ordförrådet).
-
dtype (typ) – åsidosätter standardtyperna för numpy-array.
add_lifecycle_event
(event_name, log_level=20, **event)
lägg till en händelse i attributet lifecycle_events för det här objektet och logga också in händelsen på log_level.
händelser är viktiga stunder under objektets liv, till exempel ”modell skapad”,”modell Sparad”, ”modell laddad” etc.
attributet lifecycle_events kvarstår över objektetssave()
ochload()
operationer. Det har ingen inverkan på användningen av modellen,men är användbar vid felsökning och support.
Ställ in själv.lifecycle_events = ingen för att inaktivera detta beteende. Samtal till add_lifecycle_event () kommer inte att spela in händelser i själv.lifecycle_events då.
parametrar
-
event_name (str) – händelsens namn. Kan vara vilken etikett som helst, t. ex. ”skapad”,” lagrad ” etc.
-
händelse (dict)-
Nyckelvärdeskartläggning för att lägga till själv.lifecycle_events. Bör vara JSON-serializable, så håll det enkelt.Kan vara tom.
den här metoden lägger automatiskt till följande nyckelvärden till händelse, så du behöver inte ange dem:
-
datetime: det aktuella datumet& tid
-
gensim: den aktuella Gensim-versionen
-
python: den aktuella Python-versionen
-
plattform: den nuvarande plattformen
-
händelse: namnet på denna händelse
-
-
log_level (int) – logga även den fullständiga händelsedikten på den angivna loggnivån. Ställ in på False för att inte logga alls.
blend
(rhot, other, targetsize=None) Portugals
sammanfoga det aktuella tillståndet med ett annat med ett vägt genomsnitt för tillräcklig statistik.
antalet dokument sträcker sig i båda tillståndsobjekten, så att de är av jämförbar storlek.Denna procedur motsvarar den stokastiska gradientuppdateringen fromHoffman et al. : ”Online-lärande för Latent Dirichlet allokering”, se ekvationer (5) och (9).
parametrar
-
rhot (float) – vikten av det andra tillståndet i det beräknade genomsnittet. Ett värde på 0,0 betyder att andraär helt ignorerad. Ett värde på 1,0 betyder att jaget helt ignoreras.
-
Övrigt (
LdaState
) – det tillståndsobjekt som den nuvarande kommer att slås samman med. -
targetsize (int, valfritt) – antalet dokument att sträcka båda staterna till.
blend2
(rhot, other, targetsize=None) Portugals
sammanfoga det aktuella tillståndet med ett annat med hjälp av en viktad summa för tillräcklig statistik.
till skillnad från blend()
, är den tillräckliga statistiken inte skaladprior to aggregation.
parametrar
-
rhot (float) – oanvänd.
-
Övrigt (
LdaState
) – det tillståndsobjekt som den nuvarande kommer att slås samman med. -
targetsize (int, valfritt) – antalet dokument att sträcka båda staterna till.
get_Elogbeta
() Portugals
hämta loggen (bakre) sannolikheter för varje ämne.
returnerar
Posterior sannolikheter för varje ämne.
returtyp
numpy.ndarray
get_lambda
() bisexuell
hämta parametrarna för den bakre delen över ämnena, även kallade ”ämnena”.
returnerar
parametrar för den bakre sannolikheten över ämnen.
returtyp
numpy.ndarray
classmethod load
(fname, *args, **kwargs) Securities
ladda ett tidigare lagrat tillstånd från disken.
åsidosätter load
genom att tillämpa dtype-parameternför att säkerställa bakåtkompatibilitet.
parametrar
-
fname (str) – sökväg till fil som innehåller det nödvändiga objektet.
-
args (objekt) – Positionsparametrar som ska spridas till klass:~gensim.utils.SaveLoad.ladda
-
kwargs (objekt)-Nyckelordsparametrar som ska spridas till klass:~gensim.utils.SaveLoad.load
returnerar
det tillstånd som laddats från den angivna filen.
returtyp
LdaState
merge
(other) Ukrainian
sammanfoga resultatet av ett e-steg från en nod med det för en annan nod (summera tillräcklig statistik).
sammanslagningen är trivial och efter sammanslagning av alla klusternoder har viexakt samma resultat som om beräkningen kördes på en enda nod (noapproximation).
parametrar
Övrigt (LdaState
) – det tillståndsobjekt som den nuvarande kommer att slås samman med.
reset
() bisexuell
Förbered tillståndet för en ny em-iteration (Återställ tillräcklig statistik).
save
(fname_or_handle, separat=None, sep_limit=10485760, ignore=frozenset({}), pickle_protocol=4) Scorpius
spara objektet i en fil.
parametrar
-
fname_or_handle (str eller filliknande)-sökväg till utdatafil eller redan öppnat filliknande objekt. Om objektet är ett filhandtag kommer ingen speciell arrayhantering att utföras, alla attribut sparas i samma fil.
-
separat (lista över str eller ingen, tillval) –
om ingen, automatiskt upptäcka stora numpy/scipy.sparsamma arrayer i objektet som lagras och lagrasdem i separata filer. Detta förhindrar minnesfel för stora objekt och tillåter ocksåminne-kartläggning av de stora matriserna för effektiv laddning och delning av de stora matriserna i RAM mellan flera processer.
Om lista över str: lagra dessa attribut i separata filer. Den automatiska storlekskontrollenutförs inte i detta fall.
-
sep_limit (int, valfritt) – lagra inte matriser som är mindre än detta separat. I byte.
-
ignorera (frozenset av str, valfritt) – attribut som inte bör lagras alls.
-
pickle_protocol (int, valfritt) – protokollnummer för pickle.
Se även
load()
ladda objekt från fil.
gensim.models.ldamodel.
update_dir_prior
(prior, N, logphat, rho) Ltd. Huang: ”maximal sannolikhetsbedömning av Dirichlet-Distributionsparametrar”. parametrar
-
prior (lista över float) – prior för varje möjligt resultat vid föregående iteration (uppdateras).
-
N (int) – antal observationer.
-
logphat (lista över float) – Loggsannolikheter för den aktuella uppskattningen, även kallad ”observerad tillräcklig statistik”.
-
rho (float) – inlärningshastighet.
returnerar
den uppdaterade tidigare.
returtyp
lista över float