Maybaygiare.org

Blog Network

modele.ldamodel – utajona alokacja Dirichleta¶

przykłady użycia¶

trenuj model LDA za pomocą korpusu Gensim

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

Zapisz model na dysk lub przeładuj wcześniej wytrenowany model

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

zapytanie, model przy użyciu nowych, niewidocznych dokumentów

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

aktualizacja modelu poprzez stopniowe szkolenie na nowym korpusie

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

wiele parametrów można dostroić, aby zoptymalizować trening dla konkretnego przypadku

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

trenuj i korzystaj z modeli utajonej alokacji Dirichleta online (OLDA), jak przedstawiono w inHoffman et al. : „Online Learning for Latent Dirichlet Allocation”.

przykłady

Inicjalizacja modelu za pomocą korpusu Gensim

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

Możesz następnie wywnioskować dystrybucje tematów na nowych, niewidocznych dokumentach.

>>> doc_bow = >>> doc_lda = lda

model można aktualizować (trenować) nowymi dokumentami.

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

trwałość modelu jest osiągana za pomocą metodload() Isave().

parametry

  • corpus (iterable listy (int, float), opcjonalne) – strumień wektorów dokumentu lub rzadka macierz kształtu (num_documents, num_terms).Jeśli masz matrycę w pamięci CSC, możesz ją przekonwertować na astreamed corpus za pomocą gensim.matutils.Sparse2Corpus.Jeśli nie podano, model nie jest wytrenowany (prawdopodobnie dlatego, że chcesz ręcznie wywołaćupdate()).

  • num_topics (int, opcjonalnie) – Liczba żądanych tematów utajonych do wyodrębnienia z korpusu szkolenia.

  • id2word ({dict of (int, str), gensim.corpora.dictionary.Dictionary}) – mapowanie z identyfikatorów wyrazów na słowa. Służy do określania wielkości słownictwa, a także do drukowania i drukowania tematów.

  • distributed (bool, opcjonalnie) – czy powinno się stosować obliczenia rozproszone w celu przyspieszenia szkolenia.

  • chunksize (int, opcjonalnie) – liczba dokumentów do wykorzystania w każdym fragmencie szkolenia.

  • passes (int, opcjonalnie) – Liczba przejść przez korpus podczas treningu.

  • update_every (int, opcjonalne) – liczba dokumentów, które mają być iterowane dla każdej aktualizacji.Ustawione na 0 dla uczenia grupowego, > 1 dla uczenia iteracyjnego online.

  • alpha ({numpy.ndarray, str}, opcjonalne) –

    można ustawić na tablicę 1D o długości równej liczbie oczekiwanych tematów, która wyraża nasze a-priori przekonanie o prawdopodobieństwie każdego z tematów.Alternatywnie domyślne strategie wyboru przed mogą być stosowane, dostarczając ciąg znaków:

    • ’symmetric’: domyślnie; używa stałego przedsymetrycznego dla każdego tematu,

    • ’asymmetric’: używa stałego znormalizowanego przed asymetrycznego 1.0/(topic_index + sqrt(num_topics)),

    • ’auto’: uczy się asymetryczny prior z korpusu (niedostępny, jeśli rozproszony==True).

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

    a-priori wiara w Prawdopodobieństwo wyrazu, może to być:

    • Skalar dla symetrycznego przed tematem/prawdopodobieństwem słowa,

    • wektor długości num_words do oznaczania asymetrycznego prawdopodobieństwa zdefiniowanego przez użytkownika dla każdego słowa,

    • macierz kształtu (num_topics, num_words) do przypisania prawdopodobieństwa dla każdej kombinacji słowo-temat,

    • ciąg 'auto’ do nauki asymetrycznego przed z danych.

  • decay (float, opcjonalnie) – liczba pomiędzy (0.5, 1] aby zważyć, jaki procent poprzedniej wartości lambda jest pominięty, gdy każdy nowy dokument jest badany. Odpowiada Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach: „Online Learning for Latent Dirichlet ’10”.

  • offset (float, opcjonalne) –

    Hyper-parametr kontrolujący jak bardzo spowolnimy pierwsze kroki w kilku pierwszych iteracjach.Odpowiada Tau_0 z Matthew D. Hoffman, David M. Blei, Francis Bach: „Online Learning for Latent Dirichlet ’10”.

  • eval_every (int, opcjonalne) – Log jest szacowany co tyle aktualizacji. Ustawienie tego na jeden spowalnia trening o ~ 2x.

  • iterations (int, opcjonalnie) – Maksymalna liczba iteracji przez korpus podczas wnioskowania o rozkład tematyczny korpusu.

  • gamma_threshold (float, opcjonalne) – minimalna zmiana wartości parametrów gamma do dalszej iteracji.

  • minimum_probability (float, opcjonalne) – tematy z prawdopodobieństwem niższym niż ten próg będą odfiltrowane.

  • random_state ({np.przypadkowe.RandomState, int}, opcjonalne) – albo obiekt randomState, albo seed do jego wygenerowania. Przydatne dla powtarzalności.

  • ns_conf (dict of (str, object), opcjonalne) – parametry słowa kluczowego propagowane do gensim.utils.getNS(), aby uzyskać nazwę Pyro4.Używane tylko wtedy, gdy distributed ma wartość True.

  • minimum_phi_value (float, opcjonalne) – jeśli per_word_topics jest prawdziwe, oznacza to niższą granicę prawdopodobieństwa.

  • per_word_topics (bool) – jeśli prawda, model oblicza również listę tematów posortowanych w porządku malejącym najbardziej prawdopodobnych tematów dla każdego słowa, wraz z ich wartościami phi pomnożonymi przez długość funkcji (tj. liczbę słów).

  • callbacks (lista Callback) – metryczne callbacki do logowania i wizualizacji metryk oceny modelu podczas szkolenia.

  • dtype ({numpy.float16, numpy.float32, numpy.float64}, Opcjonalne) – typ danych do wykorzystania podczas obliczeń wewnątrz modelu. Wszystkie wejścia są również konwertowane.

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

Dołącz Zdarzenie do atrybutu lifecycle_events tego obiektu, a także opcjonalnie Zaloguj Zdarzenie na poziomie log_.

zdarzenia są ważnymi momentami w życiu obiektu, takimi jak „model utworzony”,”model zapisany”, „model załadowany” itp.

atrybut lifecycle_events jest przechowywany w operacjachsave()Iload(). Nie ma to wpływu na wykorzystanie modelu,ale jest przydatne podczas debugowania i wsparcia.

Set self.lifecycle_events = None, aby wyłączyć to zachowanie. Wywołania add_lifecycle_event () nie będą zapisywać zdarzeń do self.zatem lifecycle_events.

parametry

  • event_name (str) – Nazwa zdarzenia. Może to być dowolna Etykieta, np. „created”,” stored ” itp.

  • event (dict) –

    mapowanie wartości klucza do dołączania do siebie.lifecycle_events. Powinno być JSON-serializowalne, więc zachować to proste.Może być pusty.

    ta metoda automatycznie doda następujące wartości klucza do zdarzenia, więc nie musisz ich określać:

    • datetime: bieżąca data & czas

    • gensim: bieżąca wersja Gensim

    • python: bieżąca wersja Pythona

    • Platforma: bieżąca Platforma

    • Zdarzenie: nazwa tego zdarzenia

  • log_level (int) – zapisuje również cały dict zdarzenia, na określonym poziomie dziennika. Ustaw na False, aby w ogóle nie logować.

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

oszacuj oprawę wariacyjną dokumentów z korpusu jako E_q – E_q.

parametry

  • corpus (iterable of list of (int, float), opcjonalne) – strumień wektorów dokumentu lub rzadka macierz kształtu (num_documents, num_terms) używana do oszacowania granic zmiennych.

  • gamma (numpy.ndarray, opcjonalnie) – parametry wariacyjne wagi dla każdego dokumentu. Jeśli nie zostanie dostarczony, zostanie on wywnioskowany z modelu.

  • subsample_ratio (float, opcjonalne) – procent całego korpusu reprezentowany przez przekazany argument corpus (w przypadku, gdy był to przykład).Ustaw na 1.0, jeśli cały korpus został przekazany.Jest on używany jako czynnik mnożnikowy do skalowania podobieństwa.

zwraca

wynik związany z wariacją obliczony dla każdego dokumentu.

zwraca typ

numpy.ndarray

clear()¶

Wyczyść stan modelu, aby zwolnić trochę pamięci. Wykorzystywane w implementacji rozproszonej.

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

Oblicz różnicę w rozkładach tematów między dwoma modelami: własnym i innym.

parametry

  • Inne (LdaModel) – model, który będzie porównywany z bieżącym obiektem.

  • odległość ({„kullback_leibler”, „hellinger”, „jaccard”, „jensen_shannon”}) – metryka odległości służąca do obliczenia różnicy z.

  • num_words (int, opcjonalne) – liczba najistotniejszych słów użytych, jeśli odległość = = „jaccard”. Używany również do opisywania tematów.

  • n_ann_terms (int, opcjonalne) – Maksymalna ilość słów w przecięciu / symetrycznej różnicy między tematami. Używany do adnotacji.

  • diagonal (bool, opcjonalnie) – czy potrzebujemy różnicy między identycznymi tematami (przekątna macierzy różnicy).

  • adnotacja (bool, opcjonalne) – czy powinno być zwrócone przecięcie lub różnica słów między dwoma tematami.

  • normed (bool, opcjonalnie) – czy macierz ma być znormalizowana czy nie.

zwraca

  • numpy.ndarray-macierz różnicowa. Każdy element odpowiada różnicy między dwoma tematami, shape (self.num_topics, inne.num_topics)

  • numpy.ndarray, opcjonalnie-macierz adnotacji, w której dla każdej pary uwzględniamy słowo z przecięcia dwóch tematów, a słowo z symetrycznej różnicy dwóch tematów. Uwzględniane tylko wtedy, gdy adnotacja == True.Kształt (self.num_topics, other_model.num_topics, 2).

przykłady

uzyskaj różnice między każdą parą tematów wnioskowanych przez dwa modele

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

wykonaj wnioskowanie na fragmencie dokumentów, i gromadzić zebrane wystarczające statystyki.

parametry

  • chunk (list of list of (int, float)) – fragment korpusu, na którym zostanie wykonany krok wnioskowania.

  • state (LdaState, opcjonalne) – stan, który ma być aktualizowany o nowo zgromadzone wystarczające statystyki. Jeśli nie, modelsself.stan jest aktualizowany.

zwraca

parametry Gamma sterujące tematyką wagi, kształtu (len(chunk), siebie.num_topics).

zwraca typ

numpy.ndarray

do_mstep(Rho, other, extra_pass=False)

krok maksymalizacji: użyj liniowej interpolacji między istniejącymi tematami i zgromadzonymi wystarczającymi statystykami w innych, aby zaktualizować tematy.

parametry

  • Rho (float) – szybkość uczenia się.

  • Inne (LdaModel) – model, którego wystarczające statystyki zostaną wykorzystane do aktualizacji tematów.

  • extra_pass (bool, opcjonalnie) – czy ten krok wymaga dodatkowego przejścia nad korpusem.

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

Pobierz dystrybucję tematu dla danego dokumentu.

parametry

  • bow (corpus : list of (int, float)) – dokument w formacie BOW.

  • minimum_probability (float) – tematy z przypisanym prawdopodobieństwem niższym niż ten próg zostaną odrzucone.

  • minimum_phi_value (float) –

    Jeśli per_word_topics jest prawdziwe, oznacza to dolną granicę prawdopodobieństwa, które są uwzględnione.

    jeśli jest ustawiona na None, wartość 1e-8 jest używana, aby zapobiec 0s.

  • per_word_topics (bool) – jeśli jest prawdziwa, ta funkcja zwróci również dwie dodatkowe listy, jak wyjaśniono w sekcji „Returns”.

zwraca

  • listę (int, float) – dystrybucji tematu dla całego dokumentu. Każdy element na liście jest parą ID tematu i prawdopodobieństwo, które zostało do niego przypisane.

  • lista (int, lista (int, float), opcjonalne – najbardziej prawdopodobne tematy na słowo. Każdy element na liście jest parą id słowa oraz listą oftopic posortowanych według ich znaczenia dla tego słowa. Zwracane tylko wtedy, gdy per_word_topics było ustawione na True.

  • lista (int, list of float), opcjonalne wartości trafności – Phi, pomnożone przez długość funkcji, dla każdej kombinacji słowo-temat.Każdy element na liście jest parą id słowa i listą wartości phi między tym słowem a każdym tematem. Zwracane tylko wtedy, gdy per_word_topics było ustawione na True.

get_term_topics(word_id, minimum_probability=None)¶

Pobierz najistotniejsze tematy dla danego słowa.

parametry

  • word_id (int) – słowo, dla którego zostanie obliczony rozkład tematyczny.

  • minimum_probability (float, opcjonalne) – tematy z przypisanym prawdopodobieństwem poniżej tego progu zostaną odrzucone.

zwraca

odpowiednie tematy reprezentowane jako pary ich ID i przypisanego im prawdopodobieństwa, posortowane według znaczenia dla danego słowa.

Return type

list of (int, float)

get_topic_terms(topicid, topn=10)¶

Get the representation for a single topic. Words integer IDs, in constrast to show_topic(), który reprezentuje słowa przez rzeczywiste łańcuchy znaków.

parametry

  • topicid (int) – ID zwracanego tematu

  • topn (int, opcjonalne) – Liczba najważniejszych słów związanych z tematem.

zwraca

ID słowa – pary prawdopodobieństwa dla najbardziej odpowiednich słów generowanych przez temat.

Return type

list of (int, float)

get_topics()¶

Get the term-topic matrix learned during inference.

zwraca

Prawdopodobieństwo dla każdego słowa w każdym temacie, kształcie (num_topics, vocabulary_size).

zwraca typ

numpy.ndarray

inference(chunk, collect_sstats=False)¶

biorąc pod uwagę fragment rzadkich wektorów dokumentu, oszacuj gamma (parametry kontrolujące wagi tematu)dla każdego dokumentu w kawałku.

Ta funkcja nie modyfikuje modelu zakłada się, że cały wejściowy fragment dokumentu zmieści się w pamięci RAM. Pozwala na bezpośrednie obliczenie parametru wariacyjnego phi z wykorzystaniem optymalizacji przedstawionej w: „Algorithms for non-negative matrix factorization”.

parametry

  • chunk (list of list of (int, float)) – fragment korpusu, na którym zostanie wykonany krok wnioskowania.

  • collect_sstats (bool, opcjonalne) – jeśli jest ustawione na True, również zbiera (i zwraca) wystarczające statystyki potrzebne do aktualizacji tematu modelu-worddistributions.

zwraca

pierwszy element jest zawsze zwracany i odpowiada stanom macierzy gamma. Drugi element jest zwracany tylko wtedy, gdy collect_sstats == True i odpowiada wystarczającej statystyce dla kroku M.

Return type

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

init_dir_prior(prior, name)¶

Inicjalizuj Priory dla dystrybucji Dirichleta.

parametry

  • prior ({str, lista float, numpy.ndarray of float, float}) –

    a-priori wiara w Prawdopodobieństwo słowa. Jeśli nazwa = = 'eta’ to przeor może być:

    • Skalar dla symetrycznego przed tematem/prawdopodobieństwem słowa,

    • wektor długości num_words do oznaczania asymetrycznego prawdopodobieństwa zdefiniowanego przez użytkownika dla każdego słowa,

    • macierz kształtu (num_topics, num_words) do przypisania prawdopodobieństwa dla każdej kombinacji słowo-temat,

    • ciąg 'auto’ do nauki asymetrycznego przed z danych.

    If name = = 'alpha’, then the prior can be:

    • tablica 1D o długości równej liczbie oczekiwanych tematów,

    • ’symmetric’: używa stałego symetrycznego pierwszeństwa dla każdego tematu,

    • ’asymmetric’: używa stałego znormalizowanego asymetrycznego pierwszeństwa 1.0 / (topic_index + sqrt(num_topics)),

    • ’Auto’:

  • name ({’alpha’, 'eta’}) – czy poprzedni jest parametryzowany przez wektor alfa (1 parametr na temat), czy przez eta (1 parametr na unikalny termin w słowniku).

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

załaduj wcześniej zapisany plik gensim.models.ldamodel.LdaModel.

Zobacz też

save()

Zapisz model.

parametry

  • fname (str) – ścieżka do pliku, w którym przechowywany jest model.

  • *args – argumenty pozycyjne load().

  • **kwargs – argumenty słowa kluczowego load().

przykłady

duże tablice mogą być memmapowane z powrotem jako Tylko do odczytu (pamięć dzielona), ustawiając 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)¶

oblicz i zwróć per-word likely Bound, używając fragmentu dokumentów jako korpusu oceny.

również wyprowadza obliczone statystyki, w tym perplexity=2^(-bound), aby zalogować się na poziomie informacji.

parametry

  • chunk (list of list of (int, float)) – fragment korpusu, na którym zostanie wykonany krok wnioskowania.

  • total_docs (int, opcjonalnie) – liczba dokumentów użytych do oceny zakłopotania.

zwraca

wynik związany z wariacją obliczony dla każdego słowa.

zwraca typ

numpy.ndarray

print_topic(topicno, topn=10)¶

Pobierz pojedynczy temat jako sformatowany ciąg znaków.

parametry

  • topicno (int) – ID tematu.

  • topn (int) – ilość słów z tematu, które będą użyte.

zwraca

reprezentację łańcucha wątku, jak ’-0.340 * „category” + 0.298 * „$m$” + 0.183 * „algebra” + … ’.

zwraca typ

str

print_topics(num_topics=20, num_words=10)¶

pobiera najważniejsze tematy (alias dla metody show_topics ()).

parametry

  • num_topics (int, opcjonalne) – liczba tematów do wyboru, jeśli -1 – wszystkie tematy będą w wyniku (uporządkowane według znaczenia).

  • num_words (int, opcjonalne) – liczba słów, które mają być uwzględnione w poszczególnych tematach (uporządkowane według znaczenia).

zwraca

sekwencję z (topic_id, ).

Return type

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

save(fname, ignore=(’state’, 'dispatcher’), separate=None, *args, **kwargs)¶

Zapisz model do pliku.

duże tablice wewnętrzne mogą być przechowywane w oddzielnych plikach, z fname jako prefiksem.

uwagi

Jeśli zamierzasz używać modeli w całej wersji Pythona 2/3, musisz pamiętać o kilku rzeczach:

  1. marynowane słowniki Pythona nie będą działać w wersjach Pythona

  2. metoda save nie zapisuje automatycznie wszystkich tablic numpy oddzielnie, tylko te, które przekraczają sep_limit ustawiony wsave(). Główną kwestią jest tutaj tablica Alfa, jeśli na przykład używamy alpha= 'auto’.

proszę zapoznać się z sekcją przepisy wiki dla przykładu, jak obejść te problemy.

Zobacz też

load()

model obciążenia.

parametry

  • fname (str) – ścieżka do pliku systemowego, w którym będzie zachowany model.

  • ignore (krotka str, opcjonalne) – nazwane atrybuty w krotce zostaną pominięte w modelu marynowanym. Powodem, dla którego stan wewnętrzny jest domyślnie ignorowany, jest to, że używa własnej serializacji, a nie jednej dostarczonej przez tę metodę.

  • osobno ({list of str, None}, opcjonalnie) – jeśli brak – automatycznie wykrywa Duże numpy / scipy.nieliczne tablice w przechowywanym obiekcie, a storethem w osobnych plikach. Pozwala to uniknąć błędów pamięci pickle i pozwala MMAP ’ ING dużych tablic na obciążenie skutecznie. Jeśli lista atrybutów str-this będzie przechowywana w oddzielnych plikach, automatyczne sprawdzanie nie jest w tym przypadku wykonywane.

  • *args – argumenty pozycyjne save().

  • **kwargs – argumenty słowa kluczowego save().

show_topic(topicid, topn=10)¶

Pobierz reprezentację dla jednego tematu. Words tutaj są rzeczywiste ciągi, w constrast do get_topic_terms(), który reprezentuje słowa przez ich ID słownictwa.

parametry

  • topicid (int) – ID zwracanego tematu

  • topn (int, opcjonalne) – Liczba najważniejszych słów związanych z tematem.

zwraca pary

słowo – Prawdopodobieństwo dla najbardziej odpowiednich słów wygenerowanych przez temat.

Return type

list of (str, float)

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

Get a representation for selected topics.

parametry

  • num_topics (int, opcjonalne) – Liczba zwracanych tematów. W przeciwieństwie do LSA, nie ma naturalnego porządku między tematami w LDA.Zwracany podzbiór tematów wszystkich tematów jest zatem arbitralny i może zmieniać się pomiędzy dwoma uruchomieniami LDAtraining.

  • num_words (int, opcjonalne) – liczba słów do przedstawienia dla każdego tematu. Będą to najbardziej odpowiednie słowa (przypisane najwyższejpróbowalność dla każdego tematu).

  • log (bool, opcjonalne) – czy wyjście jest również rejestrowane, poza tym jest zwracane.

  • sformatowane (bool, opcjonalne) – czy reprezentacje tematu powinny być sformatowane jako ciągi znaków. Jeśli wartość False, są one zwracane jako 2 krotki (słowo, prawdopodobieństwo).

zwraca

listę tematów, z których każdy jest reprezentowany jako ciąg znaków (po sformatowaniu == True) lub Word-probabilitypairs.

Return type

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

sync_state(current_Elogbeta=None)¶

propaguje prawdopodobieństwo wystąpienia stanów do wewnętrznego atrybutu obiektu.

parametry

current_Elogbeta (numpy.ndarray) – Prawdopodobieństwo dla każdego tematu, opcjonalne.Jeśli zostanie pominięty, otrzyma Elogbeta ze stanu.

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

uzyskaj tematy o najwyższej spójności, aby uzyskać spójność dla każdego tematu.

parametry

  • corpus (iterowalna lista (int, float), opcjonalne) – Corpus w formacie BoW.

  • texts (list of list of str, opcjonalnie) – Tokenizowane teksty, potrzebne dla modeli koherencji wykorzystujących przesuwane okna (np. coherence= ’ c_something`) Estymator prawdopodobieństwa .

  • dictionary (Dictionary, opcjonalne) – mapowanie słownika Gensim słowa id w celu utworzenia korpusu.Jeśli model.id2word jest obecny, nie jest to potrzebne. Jeśli oba są podane, użyty zostanie przekazany słownik.

  • window_size (int, opcjonalne) – jest wielkością okna, które ma być użyte do miar koherencji przy użyciu boolowskiego okna przesuwnego jako estymatora. Dla 'u_mass’ to nie ma znaczenia.Jeśli brak – używane są domyślne rozmiary okien: 'c_v’ – 110, 'c_uci’ – 10, 'c_npmi’ – 10.

  • koherencja ({„u_mass”, „c_v”, „c_uci”, „c_npmi”}, opcjonalnie) – miara koherencji do zastosowania.Najszybsza Metoda – „u_mass”, „c_uci” znana również jako c_pmi.W przypadku 'u_mass’ należy podać corpus, jeśli tekst jest dostarczany, zostanie on skonwertowany do corpususing the dictionary. Dla’ c_v’,’ c_uci 'i’ c_npmi ’ powinny być dostarczane teksty (corpus nie jest potrzebny)

  • topn (int, opcjonalne) – liczba całkowita odpowiadająca liczbie najważniejszych słów do wyodrębnienia z każdego tematu.

  • procesy (int, opcjonalne) – liczba procesów do wykorzystania w fazie estymacji prawdopodobieństwa, każda wartość mniejsza niż 1 będzie interpretowana jako num_cpus – 1.

zwraca

każdy element listy jest parą reprezentacji tematu i jej spójną partycją. Reprezentacje tematyczne są rozkładami słów, reprezentowanymi jako lista par identyfikatorów wyrazów i ich prawdopodobieństw.

Return type

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

trenuj model z nowymi dokumentami, przez EM-iteracja nad korpusem, dopóki tematy się nie zbiegną, lub do osiągnięcia maksymalnej liczby dozwolonych iteracji. korpus musi być iteracyjny.

w trybie rozproszonym krok E jest rozprowadzany po klastrze maszyn.

uwagi

Ta aktualizacja obsługuje również aktualizację już przeszkolonego modelu z nowymi dokumentami; oba modele są następnie łączone proporcjonalnie do liczby starych i nowych dokumentów. Ta funkcja jest nadal eksperymentalna dla strumieni spoza stationaryinput. Natomiast w przypadku wprowadzania stacjonarnego (brak dryfu tematycznego w nowych dokumentach)jest to równoznaczne z aktualizacją Matthew D. Hoffmana, Davida M. Blei, Francisa Bacha: „Online Learning for Latent Dirichlet ’10”.i jest gwarantowana zbieżność dla dowolnego rozpadu w (0,5, 1,0). Ponadto w przypadku mniejszych korpusów korzystne może być zwiększenie przesunięcia (patrz Tabela 1 w tym samym dokumencie).

parametry

  • corpus (iterable of list of (int, float), opcjonalne) – strumień wektorów dokumentu lub rzadka macierz kształtu (num_documents, num_terms) używana do aktualizacji modelu.

  • chunksize (int, opcjonalnie) – liczba dokumentów do wykorzystania w każdym fragmencie szkolenia.

  • decay (float, opcjonalne) –

    Liczba pomiędzy (0.5, 1] do wagi jaki procent poprzedniej wartości lambda jest pomijany przy każdym nowym dokumencie. Odpowiada Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach: „Online Learning for Latent Dirichlet ’10”.

  • offset (float, opcjonalne) –

    Hyper-parametr kontrolujący jak bardzo spowolnimy pierwsze kroki w kilku pierwszych iteracjach.Odpowiada Tau_0 z Matthew D. Hoffman, David M. Blei, Francis Bach: „Online Learning for Latent Dirichlet ’10”.

  • passes (int, opcjonalnie) – Liczba przejść przez korpus podczas treningu.

  • update_every (int, opcjonalne) – liczba dokumentów, które mają być iterowane dla każdej aktualizacji.Ustawione na 0 dla uczenia grupowego, > 1 dla uczenia iteracyjnego online.

  • eval_every (int, opcjonalne) – Log jest szacowany co tyle aktualizacji. Ustawienie tego na jeden spowalnia trening o ~ 2x.

  • iterations (int, opcjonalnie) – Maksymalna liczba iteracji przez korpus podczas wnioskowania o rozkład tematyczny korpusu.

  • gamma_threshold (float, opcjonalne) – minimalna zmiana wartości parametrów gamma do dalszej iteracji.

  • chunks_as_numpy (bool, opcjonalne) – Czy każdy fragment przekazany do kroku wnioskowania powinien być numpy.ndarray czy nie. Numpy może w niektórych ustawieniach zamienić termin IDs na floats, zostaną one przekształcone z powrotem na liczby całkowite w inferencji, co powoduje trafienie. W przypadku obliczeń rozproszonych może być pożądane, aby zachować kawałki jako numpy.ndarray.

update_alpha(gammat, rho)¶

zaktualizuj parametry przed Dirichletem w temacie wagi dokumentu.

parametry

  • gammat (numpy.ndarray) – Poprzedni temat parametry wagi.

  • rho (float) – szybkość uczenia się.

zwraca

sekwencję parametrów Alfa.

zwraca typ

numpy.ndarray

update_eta(lambdat, rho)¶

zaktualizuj parametry Dirichleta przed ważeniem słów na temat.

parametry

  • lambdat (numpy.ndarray) – poprzednie parametry lambda.

  • rho (float) – szybkość uczenia się.

zwraca

zaktualizowane parametry eta.

zwraca typ

numpy.ndarray

class gensim.models.ldamodel.LdaState(eta, shape, dtype=<class 'numpy.float32′>)¶

bazy: gensim.utils.SaveLoad

Enkapsuluje informacje do rozproszonych obliczeń obiektów LdaModel.

Obiekty tej klasy są wysyłane przez sieć, więc staraj się, aby nie traciły ruchu.

parametry

  • eta (numpy.ndarray) – wcześniejsze prawdopodobieństwo przypisane każdemu okresowi.

  • shape (krotka (int, int)) – kształt odpowiedniej statystyki: (liczba tematów do znalezienia, Liczba terminów w słowniku).

  • dtype (type) – nadpisuje domyślne typy tablicy numpy.

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

Dołącz Zdarzenie do atrybutu lifecycle_events tego obiektu, a także opcjonalnie Zaloguj Zdarzenie na poziomie log_.

zdarzenia są ważnymi momentami w życiu obiektu, takimi jak „model utworzony”,”model zapisany”, „model załadowany” itp.

atrybut lifecycle_events jest przechowywany w operacjachsave()Iload(). Nie ma to wpływu na wykorzystanie modelu,ale jest przydatne podczas debugowania i wsparcia.

Set self.lifecycle_events = None, aby wyłączyć to zachowanie. Wywołania add_lifecycle_event () nie będą zapisywać zdarzeń do self.zatem lifecycle_events.

parametry

  • event_name (str) – Nazwa zdarzenia. Może być dowolną etykietą, np. „created”, „stored” itp.

  • event (dict) –

    mapowanie wartości klucza do dołączania do siebie.lifecycle_events. Powinno być JSON-serializowalne, więc zachować to proste.Może być pusty.

    ta metoda automatycznie doda następujące wartości klucza do zdarzenia, więc nie musisz ich określać:

    • datetime: bieżąca data &czas

    • gensim: bieżąca wersja Gensim

    • python: bieżąca wersja Pythona

    • platforma: aktualna Platforma

    • wydarzenie: nazwa tego zdarzenia

  • log_level (int) – zapisuje również cały dict zdarzenia, na określonym poziomie dziennika. Ustaw na False, aby w ogóle nie logować.

blend(rhot, other, targetsize=None)¶

Scal bieżący stan z innym, używając średniej ważonej dla wystarczających statystyk.

liczba dokumentów jest rozciągnięta w obu obiektach stanu, tak że są one porównywalnej wielkości.Procedura ta odpowiada aktualizacji gradientu stochastycznego zhoffman et al. : „Online Learning for Latent Dirichlet Allocation”, patrz równania (5) i (9).

parametry

  • rhot (float) – Waga drugiego stanu w obliczonej średniej. Wartość 0.0 oznacza, że otherjest całkowicie ignorowany. Wartość 1.0 oznacza, że jaźń jest całkowicie ignorowana.

  • Inne (LdaState) – obiekt stanu, z którym zostanie scalony bieżący.

  • targetsize (int, opcjonalne) – liczba dokumentów do rozciągnięcia obu stanów.

blend2(rhot, other, targetsize=None)¶

Scal bieżący stan z innym, używając ważonej sumy dla wystarczających statystyk.

w przeciwieństwie do blend(), wystarczające statystyki nie są skalowane do agregacji.

parametry

  • rhot (float) – nieużywane.

  • Inne (LdaState) – obiekt stanu, z którym zostanie scalony bieżący.

  • targetsize (int, opcjonalne) – liczba dokumentów do rozciągnięcia obu stanów.

get_Elogbeta()¶

Pobierz log (tylne) prawdopodobieństwa dla każdego tematu.

zwraca

Prawdopodobieństwo dla każdego tematu.

zwraca typ

numpy.ndarray

get_lambda()¶

pobiera parametry posteriora nad tematami, nazywanymi również „tematami”.

zwraca

parametry prawdopodobieństwa tylnego nad tematami.

zwraca typ

numpy.ndarray

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

ładuje wcześniej zapisany stan z dysku.

nadpisujeload poprzez wymuszenie parametru dtype w celu zapewnienia kompatybilności wstecznej.

parametry

  • fname (str) – ścieżka do pliku zawierającego potrzebny obiekt.

  • args (object) – parametry pozycyjne, które mają być propagowane do klasy:~gensim.utils.SaveLoad.load

  • kwargs (object) – parametry słowa kluczowego, które mają być propagowane do klasy:~gensim.utils.SaveLoad.load

zwraca

stan załadowany z podanego pliku.

Return type

LdaState

merge(other)¶

Scal wynik kroku E z jednego węzła z wynikiem innego węzła (sumując wystarczające statystyki).

scalanie jest trywialne i po połączeniu wszystkich węzłów klastra mamy taki sam wynik, jak gdyby obliczenia były wykonywane na jednym węźle (bez approximation).

parametry

Inne (LdaState) – obiekt stanu, z którym zostanie scalony bieżący.

reset()¶

przygotuj stan dla nowej iteracji EM (zresetuj wystarczające statystyki).

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

Zapisz obiekt do pliku.

parametry

  • fname_or_handle (str lub file-like) – ścieżka do pliku wyjściowego lub już otwartego obiektu podobnego do pliku. Jeśli obiekt jest uchwytem pliku, nie będzie wykonywana Specjalna obsługa tablicy, wszystkie atrybuty zostaną zapisane do tego samego pliku.

  • osobno (lista str lub brak, opcjonalnie) –

    Jeśli brak, automatycznie wykrywa Duże numpy / scipy.nieliczne tablice w przechowywanym obiekcie, a storethem w osobnych plikach. Zapobiega to błędom pamięci dla dużych obiektów, a także pozwala na mapowanie pamięci dużych tablic w celu efektywnego ładowania i udostępniania dużych tablic w pamięci RAM między wieloma procesami.

    If list of str: przechowuje te atrybuty w oddzielnych plikach. Automatyczne sprawdzanie wymiarów nie jest w tym przypadku wykonywane.

  • sep_limit (int, opcjonalne) – nie przechowuj tablic mniejszych niż ta osobno. W bajtach.

  • ignore (frozenset of str, opcjonalne) – atrybuty, które nie powinny być w ogóle przechowywane.

  • pickle_protocol (int, opcjonalnie) – numer protokołu dla pickle.

patrz również

load()

załaduj obiekt z pliku.

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

zaktualizuj dany prior za pomocą metody Newtona, opisanej inJ. Huang: „Maximum Likelihood Estimation of Dirichlet Distribution Parameters”.

parametry

  • prior (lista zmiennoprzecinkowa) – Przed dla każdego możliwego wyniku w poprzedniej iteracji (do aktualizacji).

  • N (int) – liczba obserwacji.

  • logphat (lista float) – prawdopodobieństwo logarytmu dla bieżącej estymacji, zwane także „obserwowanymi wystarczającymi statystykami”.

  • rho (float) – szybkość uczenia się.

zwraca

zaktualizowany wcześniej.

Return type

list of float

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.