ejemplos de Uso¶
en Tren de una LDA modelo utilizando un 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)
Guardar un modelo en el disco, o cargar un pre-entrenados modelo
>>> 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)
Consulta, el modelo de uso de la nueva, invisible documentos
>>> # 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
Actualizar el modelo incremental de capacitación en el nuevo corpus
>>> lda.update(other_corpus)>>> vector = lda
Una gran cantidad de parámetros pueden ajustarse para optimizar el entrenamiento para su caso específico
>>> 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.TransformationABC
gensim.models.basemodel.BaseTopicModel
Entrenar y utilizar modelos de Asignación de Dirichlet Latente en Línea (OLDA) presentados en Offfman et al. : «Online Learning for Latent Dirichlet Allocation».
Ejemplos
Inicializar un modelo utilizando un Gensim corpus
>>> from gensim.test.utils import common_corpus>>>>>> lda = LdaModel(common_corpus, num_topics=10)
Usted puede entonces inferir el tema de las distribuciones de nuevo, invisible documentos.
>>> doc_bow = >>> doc_lda = lda
El modelo puede ser actualizado (entrenado) con los nuevos documentos.
>>> # In practice (corpus =/= initial training corpus), but we use the same here for simplicity.>>> other_corpus = common_corpus>>>>>> lda.update(other_corpus)
el Modelo de persistencia se logra a través de load()
ysave()
métodos.
Parámetros
-
corpus (iterable de lista de (int, float), opcional) – Flujo de vectores de documento o matriz dispersa de forma (num_documents, num_terms).Si tiene una matriz CSC en memoria, puede convertirla en corpus soñado con la ayuda de gensim.matutils.Escase2Corpus.Si no se da, el modelo se deja sin entrenamiento (presumiblemente porque desea llamar a
update()
manualmente). -
num_topics (int, opcional) – El número de temas latentes solicitados que se extraerán del corpus de formación.
-
id2word ({dict of (int, str),
gensim.corpora.dictionary.Dictionary
}) – Asignación de ID de palabras a palabras. Se utiliza para determinar el tamaño del vocabulario, así como para la publicación de temas y la impresión de temas. -
distribuido (bool, opcional) – Si la computación distribuida debe usarse para acelerar el entrenamiento.
-
tamaño del fragmento (int, opcional): Número de documentos que se utilizarán en cada fragmento de formación.
-
pases (int, opcionales) – Número de pases por el corpus durante el entrenamiento.
-
update_every (int, opcional) – Número de documentos a iterar para cada actualización.Se establece en 0 para el aprendizaje por lotes, > 1 para el aprendizaje iterativo en línea.
-
alpha ({numpy.ndarray, str}, opcional) –
Se puede establecer en una matriz 1D de longitud igual al número de temas esperados que expresen nuestra creencia a priori para la probabilidad de cada tema.Alternativamente, se pueden emplear estrategias predeterminadas de selección previa suministrando una cadena:
-
‘simétrico’: Predeterminado; utiliza un prior simétrico fijo por tema,
-
‘asimétrico’: Utiliza un prior asimétrico normalizado fijo de 1.0 / (topic_index + sqrt(num_topics)),
-
anterior asimétrico del corpus (no disponible si se distribuye==True).
-
-
eta ({float, np.array, str}, opcional)-
Creencia a priori en la probabilidad de la palabra, esto puede ser:
-
escalar para una probabilidad simétrica previa sobre tema/palabra,
-
vector de longitud num_words para denotar una probabilidad asimétrica definida por el usuario para cada palabra,
-
matriz de forma (num_topics, num_words) para asignar una probabilidad para cada combinación de palabra p>
-
la cadena ‘auto’ para aprender el prior asimétrico de los datos.
-
-
caries (float, opcional) – Un número entre (0.5, 1] para ponderar qué porcentaje del valor lambda anterior se olvida cuando se examina cada nuevo documento. Corresponde a Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach: «Aprendizaje en línea para Asignación de Dirichlet Latente NIPS ’10».
-
offset (flotante, opcional)-
Hiperparámetro que controla cuánto ralentizaremos los primeros pasos de las primeras iteraciones.Corresponde a Tau_0 de Matthew D. Hoffman, David M. Blei, Francis Bach: «Aprendizaje en línea para NIPS de Asignación de Dirichlet Latentes ’10».
-
eval_every (int, opcional) – La perplejidad del registro se estima cada tantas actualizaciones. Establecer esto en uno ralentiza el entrenamiento en ~2 veces.
-
iteraciones (int, opcional): Número máximo de iteraciones a través del corpus al inferir la distribución de temas de un corpus.
-
gamma_threshold (flotante, opcional) – Cambio mínimo en el valor de los parámetros gamma para continuar iterando.
-
probabilidad mínima (flotante, opcional): Los temas con una probabilidad inferior a este umbral se filtrarán.
-
random_state ({np.aleatorio.RandomState, int}, opcional): Un objeto RandomState o una semilla para generar uno. Útil para la reproducibilidad.
-
ns_conf (dict of (str, object), opcional) – Parámetros de palabra clave propagados a
gensim.utils.getNS()
para obtener un nombre Pyro4 conservado.Solo se usa si distribuido está establecido en True. -
minimum_phi_value (flotante, opcional) – si per_word_topics es True, esto representa un límite inferior en las probabilidades de los términos.
-
per_word_topics (bool) – Si es True, el modelo también calcula una lista de temas, ordenados en orden descendente de los temas más probables para cada palabra, junto con sus valores phi multiplicados por la longitud de la entidad (es decir, el recuento de palabras).
-
devoluciones de llamada (lista de
Callback
): devoluciones de llamada de métricas para registrar y visualizar métricas de evaluación del modelo durante el entrenamiento. -
dtype ({numpy.flotador 16, nuppy.float32, numpy.float64}, opcional) – Tipo de datos para usar durante los cálculos dentro del modelo. Todas las entradas también se convierten.
add_lifecycle_event
(event_name, log_level = 20, **event)¶
Anexe un evento al atributo lifecycle_events de este objeto, y también registre opcionalmente el evento en log_level.Los eventos
son momentos importantes durante la vida del objeto, como «modelo creado», «modelo guardado», «modelo cargado», etc.
El atributo lifecycle_events se conserva en las operaciones save()
y load()
del objeto. No tiene ningún impacto en el uso del modelo,pero es útil durante la depuración y el soporte.
Establecer uno mismo.lifecycle_events = None para deshabilitar este comportamiento. Las llamadas a add_lifecycle_event () no registrarán eventos en self.eventos de ciclo de vida entonces.
Parámetros
-
event_name (str) – Nombre del evento. Puede ser cualquier etiqueta, por ejemplo, «creado»,» almacenado», etc.
-
evento (dict)-
Asignación de clave y valor para anexar a uno mismo.eventos de ciclo de vida. Debe ser serializable con JSON, así que sea sencillo.Puede estar vacío.
Este método agregará automáticamente los siguientes valores de clave al evento, para que no tenga que especificarlos:
-
datetime: la fecha actual & tiempo
-
gensim: el actual Gensim versión
-
python: la actual versión de Python
-
plataforma: la plataforma actual
-
evento: el nombre de este evento
-
-
log_level (int) – También registramos el evento complete dict, en el nivel de registro. Establezca False para no iniciar sesión en absoluto.
bound
(corpus, gamma=None, subsample_ratio=1.0)¶
Estimar el encuadernado variacional de documentos del corpus como E_q – E_q.
Parámetros
-
corpus (iterable de lista de (int, float), opcional): flujo de vectores de documentos o matriz dispersa de forma (num_documents, num_terms) utilizada para estimar los límites variables.
-
gamma (numpy.ndarray, opcional) – Parámetros variacionales de peso de tema para cada documento. Si no se suministra, se deducirá del modelo.
-
subsample_ratio (float, opcional) – Porcentaje de todo el corpus representado por el argumento corpus pasado (en caso de que se trate de una muestra).Se establece en 1.0 si se ha pasado todo el corpus.Esto se utiliza como factor multiplicativo para escalar adecuadamente la probabilidad.
Devuelve
La puntuación de encuadernación variacional calculada para cada documento.
Tipo de retorno
numpy.ndarray
clear
()¶
Borra el estado del modelo para liberar algo de memoria. Utilizado en la implementación distribuida.
diff
(other, distance= ‘kullback_leibler’, num_words = 100, n_ann_terms=10, diagonal=False, anotación=True, normed=True)¶
Calcule la diferencia en las distribuciones de temas entre dos modelos: self y other.
Parámetros
-
otros (
LdaModel
) – El modelo que se comparará con el objeto actual. -
distancia ({‘kullback_leibler’, ‘hellinger’, ‘jaccard’, ‘jensen_shannon’}) – La métrica de distancia con la que calcular la diferencia.
-
num_words (int, opcional) – El número de palabras más relevantes utilizadas si distance == ‘jaccard’. También se usa para anotar temas.
-
n_ann_terms (int, opcional) – Número máximo de palabras en intersección/diferencia simétrica entre temas. Se usa para anotación.
-
diagonal (bool, opcional) – Si necesitamos la diferencia entre temas idénticos (la diagonal de la matriz de diferencias).anotación
-
(bool, opcional) – Si se debe devolver la intersección o diferencia de palabras entre dos temas.
-
normed (bool, opcional) – Si la matriz debe normalizarse o no.
Devuelve
-
numpy.ndarray-Una matriz de diferencias. Cada elemento corresponde a la diferencia entre los dos temas,forma (self.num_topics, otros.num_topics)
-
numpy.ndarray, matriz de Anotación opcional donde para cada par incluimos la palabra de la intersección de los dos temas,y la palabra de la diferencia simétrica de los dos temas. Solo se incluye si anotación = = True.Forma (auto.num_topics, other_model.num_topics, 2).
Ejemplos
Obtener las diferencias entre cada par de temas inferidos por dos modelos
>>> 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
(fragmento, estado=Ninguno)¶
Realizar inferencias en un fragmento de documentos, y acumule las estadísticas suficientes recopiladas.
Parámetros
-
chunk (list of list of (int, float)) – El fragmento de corpus en el que se realizará el paso de inferencia.
-
estado (
LdaState
, opcional): El estado que se actualizará con las estadísticas suficientes recientemente acumuladas. Si no hay ninguno, el modelo también.estado actualizado.
Devuelve
parámetros gamma que controlan los pesos de los temas, la forma (len(trozo), uno mismo.num_topics).
Tipo de retorno
numpy.ndarray
do_mstep
(rho, other, extra_pass=False)¶
Paso de maximización: utilice la interpolación lineal entre los temas existentes y las estadísticas suficientes recopiladas en otros para actualizar los temas.
Parámetros
-
rho (float) – Tasa de aprendizaje.
-
otro (
LdaModel
) – El modelo cuyas estadísticas suficientes se utilizarán para actualizar los temas. -
extra_pass (bool, opcional) – Si este paso requiere un paso adicional sobre el corpus.
get_document_topics
(bow, minimum_probability=None, minimum_phi_value=None, per_word_topics=False)¶
Obtener la distribución de temas para el documento dado.
Parámetros
-
bow (corpus: lista de (int, float)) – El documento en formato BOW.
-
probabilidad mínima (flotante): Se descartarán los temas con una probabilidad asignada inferior a este umbral.
-
minimum_phi_value (float) –
Si per_word_topics es True, esto representa un límite inferior en las probabilidades de término que se incluyen.
Si se establece en Ninguno, se usa un valor de 1e-8 para evitar 0s.
-
per_word_topics (bool) – Si es Verdadero, esta función también devolverá dos listas adicionales como se explica en la sección «Devoluciones».
Devuelve
-
lista de distribución de temas (int, float) para todo el documento. Cada elemento de la lista es un par del id de un tema y la probabilidad que se le asignó.
-
lista de (int, lista de (int, float), opcional – Temas más probables por palabra. Cada elemento de la lista es un par del id de una palabra, y una lista de temas ordenados por su relevancia para esta palabra. Solo se devuelve si per_word_topics se establece en True.
-
lista de (int, lista de valores flotantes), valores de relevancia Phi opcionales, multiplicados por la longitud de la entidad, para cada combinación de palabra y tema.Cada elemento de la lista es un par del id de una palabra y una lista de los valores phi entre esta palabra y cada tema. Solo se devuelve si per_word_topics se establece en True.
get_term_topics
(word_id, minimum_probability=None)¶
Obtener los temas más relevantes para la palabra dada.
Parámetros
-
word_id (int) – La palabra para la que se calculará la distribución de temas.
-
probabilidad mínima (flotante, opcional): Los temas con una probabilidad asignada por debajo de este umbral se descartarán.
Devuelve
Los temas relevantes representados como pares de su ID y su probabilidad asignada, clasificados por relevancia para la palabra dada.
tipo de Retorno
lista de (int, float)
get_topic_terms
(topicid, topn=10)¶
Obtener la representación de un único tema. Palabras los ID de enteros, constrast ashow_topic()
que representa las palabras por las cadenas reales.
Parámetros
-
topicid (int): IDENTIFICADOR del tema para ser devueltos
-
topn (int, opcional) – Número de las palabras más significativas que están asociados con el tema.
Devuelve
pares ID de palabra – probabilidad para las palabras más relevantes generadas por el tema.
Return type
list of (int, float)
get_topics
()¶
Obtenga la matriz término-tema aprendida durante la inferencia.
Devuelve
La probabilidad de cada palabra en cada tema, forma (num_topics, vocabulary_size).
Tipo de retorno
numpy.ndarray
inference
(chunk, collect_sstats=False)¶
Dado un fragmento de vectores de documento dispersos, estime gamma (parámetros que controlan los pesos de los temas)para cada documento en el fragmento.
Esta función no modifica el modelo Se supone que todo el fragmento de entrada del documento encaja en la RAM;el segmentación de un corpus grande debe hacerse antes en la canalización. Evita calcular el parámetro de variación de phi directamente utilizando la optimización presentada en inLee, Seung: Algoritmos para factorización de matrices no negativas».
Parámetros
-
chunk (list of list of (int, float)) – El fragmento de corpus en el que se realizará el paso de inferencia.
-
collect_sstats (bool, opcional)-Si se establece en True, también recopila (y devuelve) las estadísticas necesarias para actualizar las distribuciones de palabras de tema del modelo.
Devuelve
El primer elemento siempre se devuelve y corresponde a la matriz gamma de estados. El segundo elemento solo se devuelve si collect_sstats = = True y corresponde a las estadísticas suficientes para el paso M.
Tipo de retorno
(numpy.ndarray, numpy.ndarray, None})
init_dir_prior
(prior, name)¶
Inicializar los antecedentes de la distribución Dirichlet.
Parámetros
-
anterior ({str, lista de flotadores, numpy.ndarray de flotador, flotador})-
Creencia a priori en la probabilidad de la palabra. Si name = = ‘ eta ‘ entonces el prior puede ser:
-
escalar para una probabilidad simétrica previa sobre tema/palabra,
-
vector de longitud num_words para denotar una probabilidad asimétrica definida por el usuario para cada palabra,
-
matriz de forma (num_topics, num_words) para asignar una probabilidad para cada combinación de palabra p>
-
la cadena ‘auto’ para aprender el prior asimétrico de los datos.
If nombre == ‘alfa’, entonces el previo puede ser:
-
una 1D array de longitud igual a la cantidad de temas,
-
‘simétrico’: Utiliza una fija simétrica antes de cada tema,
-
‘asimétrica’: Utiliza un fijo normalizado asimétrica antes de 1.0 / (topic_index + sqrt(num_topics)),
-
‘auto’: Aprende un asimétrica antes del corpus.
-
-
nombre ({‘alfa’, ‘eta’}) – Si el anterior es parametrizada por el alfa vector (1 parámetro por tema)o por la eta (1 parámetro por único término en el vocabulario).
método de clase load
(fname, *args, **kwargs)¶
Cargue un archivo gensim.models.ldamodel.LdaModel
guardado previamente.
Véase también
save()
Guardar el modelo.
Parámetros
-
fname (str) – Ruta al archivo donde se almacena el modelo.
-
*args – argumentos Posicionales propaga a
load()
. -
**kwargs-Argumentos de palabras clave propagados a
load()
.
Ejemplos
Los arrays grandes se pueden recuperar de memmap como de solo lectura (memoria compartida) configurando 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)¶
Calcule y devuelva un enlace de probabilidad por palabra, utilizando un fragmento de documentos como corpus de evaluación.
También muestra las estadísticas calculadas, incluida la perplejidad = 2^(- bound), para registrar a nivel de información.
Parámetros
-
chunk (list of list of (int, float)) – El fragmento de corpus en el que se realizará el paso de inferencia.
-
total_docs (int, opcional) – Número de documentos utilizados para evaluar la perplejidad.
Devuelve
La puntuación de encuadernación variacional calculada para cada palabra.
Tipo de retorno
numpy.ndarray
print_topic
(topicno, topn=10)¶
Obtener un solo tema como una cadena formateada.
Parámetros
-
topicno (int) – Id de tema.
-
topn (int) – Número de palabras del tema que se utilizarán.
Devuelve
Una representación de cadena del tema, como ‘-0.340 *» categoría «+ 0.298 * «M M +» + 0.183 * «álgebra»+…’.
tipo de Retorno
str
print_topics
(num_topics=20, num_words=10)¶
Obtener los temas más significativos (alias para show_topics() método).
Parámetros
-
num_topics (int, opcional) – El número de temas a ser seleccionado, si -1 – todos los temas estarán en resultado (ordenadas por importancia).
-
num_words (int, opcional) – El número de palabras a ser incluido por temas (ordenadas por importancia).
Devuelve la secuencia
con (topic_id,).
Tipo de retorno
list of (int, list of(str, float))
save
(fname, ignore=(‘state’, ‘dispatcher’), separately=None, *args, **kwargs)¶
Guarde el modelo en un archivo.
Las matrices internas grandes pueden almacenarse en archivos separados, con nombrefijo.
Notas
Si tiene la intención de usar modelos en versiones Python 2/3, hay algunas cosas que debe tener en cuenta:
Los diccionarios Python encapsulados no funcionarán en todas las versiones de Python
El método save no guarda automáticamente todas las matrices numpy por separado, solo aquellas que exceden el límite de sep_ establecido en
save()
. La preocupación principal aquí es la matriz alfa si, por ejemplo, se usa alpha = ‘auto’.
Consulte la sección recetas de la wiki para ver un ejemplo sobre cómo solucionar estos problemas.
Véase también
load()
modelo de Carga.
Parámetros
-
fname (str) – Ruta al archivo del sistema donde se conservará el modelo.
-
ignorar (tupla de str, opcional): Los atributos con nombre de la tupla se dejarán fuera del modelo en escabeche. La razón por la que el estado interno es ignorado por defecto es que utiliza su propia serialización en lugar de la única proporcionada por este método.
-
por separado ({lista de str, Ninguno}, opcional) – Si no hay ninguno-detecta automáticamente numpy/scipy grandes.matrices dispersas en el objeto que se está almacenando, y almacenarlas en archivos separados. Esto evita errores de memoria de pepinillos y permite mmap’ing de arreglos grandes de vuelta en carga de manera eficiente. Si la lista de atributos str – this se almacena en archivos separados, la comprobación automática no se realiza en este caso.
-
*args – argumentos Posicionales propaga a
save()
. -
**kwargs-Argumentos de palabras clave propagados a
save()
.
show_topic
(topicid, topn=10)¶
Obtener la representación de un único tema. Las palabras aquí son las cadenas reales, constrast aget_topic_terms()
que representa las palabras por su ID de vocabulario.
Parámetros
-
topicid (int): IDENTIFICADOR del tema para ser devueltos
-
topn (int, opcional) – Número de las palabras más significativas que están asociados con el tema.
Devuelve
pares Palabra – probabilidad para las palabras más relevantes generadas por el tema.
Tipo de retorno
lista de (str, float)
show_topics
(num_topics=10, num_words=10, log=False, formatted=True)¶
Obtener una representación de los temas seleccionados.
Parámetros
-
num_topics (int, opcional) – Número de temas a devolver. A diferencia de LSA, no hay un orden natural entre los temas en LDA.Por lo tanto, el subconjunto de temas devueltos de todos los temas es arbitrario y puede cambiar entre dos ejecuciones de LDAtraining.
-
num_words (int, opcional) – Número de palabras que se presentan para cada tema. Estas serán las palabras más relevantes (se les asignará la mayor probabilidad para cada tema).
-
log (bool, opcional) – Si la salida también está registrada, además de ser devuelta.
-
formateado (bool, opcional): Si las representaciones de temas deben formatearse como cadenas. Si es Falso, se devuelven como 2 tuplas de (palabra, probabilidad).
Devuelve
una lista de temas, cada uno representado como una cadena (con el formato == True) o pares de probabilidades de palabra.
Tipo de retorno
list of {str, tupla of(str, float)}
sync_state
(current_Elogbeta=None)¶
Propaga las probabilidades de temas de estados al atributo del objeto interno.
Parámetros
current_Elogbeta (numpy.ndarray) – Probabilidades posteriores para cada tema, opcional.Si se omite, obtendrá Elogbeta del estado.
top_topics
(corpus=None, texts=None, dictionary=None, window_size=None, coherence=’u_mass’, topn=20, processes=-1)¶
Obtenga los temas con la puntuación de coherencia más alta la coherencia para cada tema.
Parámetros
-
corpus (iterable de lista de (int, float), opcional) – Corpus en formato de arco.
-
textos (lista de lista de str, opcional) – Textos tokenizados, necesarios para modelos de coherencia que utilizan ventanas corredizas (p. ej. estimador de probabilidad coherence=`c_something`).diccionario
-
(
Dictionary
, opcional) – Mapeo de palabras de identificación del diccionario Gensim para crear corpus.Si el modelo.id2word está presente, esto no es necesario. Si se proporcionan ambos, se utilizará el diccionario aprobado. -
window_size (int, opcional): Es el tamaño de la ventana que se utilizará para las medidas de coherencia que utilizan la ventana deslizante booleana como estimador de probabilidad. Para ‘u_mass’ esto no importa.Si no hay ninguno, se utilizan los tamaños de ventana predeterminados que son: ‘c_v’ – 110, ‘c_uci’ – 10, ‘c_npmi’ – 10.
-
la coherencia ({‘u_mass’, ‘c_v’, ‘c_uci’, ‘c_npmi’}, opcional) – Coherencia medida que se utiliza.Método más rápido – ‘u_mass’,’ c_uci ‘ también conocido como c_pmi.Para el corpus’ u_mass ‘ se debe proporcionar, si se proporcionan textos, se convertirá a corpusus utilizando el diccionario. Para’ c_v’, deben proporcionarse textos’ c_uci ‘y’ c_npmi ‘ (no es necesario el corpus)
-
topn (int, opcional) – Entero correspondiente al número de palabras principales que se extraerán de cada tema.
-
procesos (int, opcional) – Número de procesos a usar para la fase de estimación de probabilidad, cualquier valor menor a 1 se interpretará como num_cpus-1.
Devuelve
Cada elemento de la lista es un par de una representación de tema y su puntuación de coherencia. Las representaciones temáticas son distribuciones de palabras, representadas como una lista de pares de ID de palabras y sus probabilidades.
Tipo de retorno
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)¶
Entrena el modelo con nuevos documentos, iterando EM sobre el corpus hasta que los temas converjan, o hasta que se alcance el número máximo de iteraciones permitidas. corpus debe ser iterable.
En el modo distribuido, el paso E se distribuye en un clúster de máquinas.
Notas
Esta actualización también admite la actualización de un modelo ya entrenado con documentos nuevos; los dos modelos se fusionan en proporción al número de documentos antiguos frente a nuevos. Esta característica todavía es experimental para flujos de entrada no estacionaria. Para la entrada estacionaria (sin deriva de temas en documentos nuevos), por otro lado, esto equivale a la actualización en línea de Matthew D. Hoffman, David M. Blei, Francis Bach:»Aprendizaje en línea para NIPS de Asignación de Dirichlet Latentes’10».y está garantizado que convergen para cualquier decaimiento (0.5, 1.0). Además, para tamaños de corpus más pequeños, un desplazamiento de aumento puede ser beneficioso (consulte la Tabla 1 en el mismo documento).
Parámetros
-
corpus (iterable de lista de (int, float), opcional): flujo de vectores de documentos o matriz dispersa de forma (num_documents, num_terms) que se utiliza para actualizar el modelo.
-
tamaño del fragmento (int, opcional): Número de documentos que se utilizarán en cada fragmento de formación.
-
decay (flotante, opcional) –
Un número entre (0,5, 1] para ponderar qué porcentaje del valor lambda anterior se olvida cuando se examina cada nuevo documento. Corresponde a Kappa fromMatthew D. Hoffman, David M. Blei, Francis Bach: «Aprendizaje en línea para Asignación de Dirichlet Latente NIPS ’10».
-
offset (flotante, opcional)-
Hiperparámetro que controla cuánto ralentizaremos los primeros pasos de las primeras iteraciones.Corresponde a Tau_0 de Matthew D. Hoffman, David M. Blei, Francis Bach: «Aprendizaje en línea para NIPS de Asignación de Dirichlet Latentes ’10».
-
pases (int, opcionales) – Número de pases por el corpus durante el entrenamiento.
-
update_every (int, opcional) – Número de documentos a iterar para cada actualización.Se establece en 0 para el aprendizaje por lotes, > 1 para el aprendizaje iterativo en línea.
-
eval_every (int, opcional) – La perplejidad del registro se estima cada tantas actualizaciones. Establecer esto en uno ralentiza el entrenamiento en ~2 veces.
-
iteraciones (int, opcional): Número máximo de iteraciones a través del corpus al inferir la distribución de temas de un corpus.
-
gamma_threshold (flotante, opcional) – Cambio mínimo en el valor de los parámetros gamma para continuar iterando.
-
chunks_as_numpy (bool, opcional) – Si cada fragmento pasado al paso de inferencia debe ser un numpy.ndarray o no. Numpy puede en algunos ajustes convertir los ID de término en flotadores, estos se convertirán de nuevo en enteros en inferencia, lo que incurre en un golpe de rendimiento. Para la computación distribuida, puede ser deseable mantener los trozos como numpy.ndarray.
update_alpha
(gammat, rho)¶
Actualizar parámetros para el Dirichlet anterior en los pesos de tema por documento.
Parámetros
-
gammat (numpy.ndarray) – Tema anterior parámetros de peso.
-
rho (flotador) – Tasa de aprendizaje.
Devuelve
Secuencia de alfa parámetros.
Tipo de retorno
numpy.ndarray
update_eta
(lambdat, rho)¶
Actualizar parámetros para el Dirichlet anterior en los pesos de palabras por tema.
Parámetros
-
lambdat (numpy.ndarray) – Parámetros lambda anteriores.
-
rho (flotador) – Tasa de aprendizaje.
Devuelve
Los parámetros eta actualizados.
Tipo de retorno
numpy.ndarray
class gensim.models.ldamodel.
LdaState
(eta, shape, dtype=< class ‘numpy.float32’>)¶
Bases: gensim.utils.SaveLoad
Encapsular la información para la computación distribuida de LdaModel
objetos.
Los objetos de esta clase se envían a través de la red, así que intente mantenerlos ajustados para reducir el tráfico.
Parámetros
-
eta (numpy.ndarray – – Las probabilidades previas asignadas a cada término.
-
forma (tupla de (int, int)) – Forma de las estadísticas suficientes: (número de temas a encontrar, número de términos en el vocabulario).
-
dtype (type) – Anula los tipos predeterminados de la matriz numpy.
add_lifecycle_event
(event_name, log_level = 20, **event)¶
Anexe un evento al atributo lifecycle_events de este objeto, y también registre opcionalmente el evento en log_level.Los eventos
son momentos importantes durante la vida del objeto, como «modelo creado», «modelo guardado», «modelo cargado», etc.
El atributo lifecycle_events se conserva en las operaciones save()
y load()
del objeto. No tiene ningún impacto en el uso del modelo,pero es útil durante la depuración y el soporte.
Establecer uno mismo.lifecycle_events = None para deshabilitar este comportamiento. Las llamadas a add_lifecycle_event () no registrarán eventos en self.eventos de ciclo de vida entonces.
Parámetros
-
event_name (str) – Nombre del evento. Puede ser cualquier etiqueta, p. ej. «creado», «almacenados», etc.
-
evento (dict)-
Asignación de clave y valor para anexar a uno mismo.eventos de ciclo de vida. Debe ser serializable con JSON, así que sea sencillo.Puede estar vacío.
Este método, se agrega automáticamente a la siguiente clave-valor para el evento, así que usted no tiene que especificar ellos:
-
datetime: la fecha actual & tiempo
-
gensim: el actual Gensim versión
-
python: la actual versión de Python
-
plataforma: la plataforma actual
-
evento: el nombre de este evento
-
-
log_level (int) – También registramos el evento complete dict, en el nivel de registro. Establezca False para no iniciar sesión en absoluto.
blend
(rhot, other, targetsize=None)¶
Combine el estado actual con otro utilizando un promedio ponderado para las estadísticas suficientes.
El número de documentos se extiende en ambos objetos de estado, de modo que son de magnitud comparable.Este procedimiento corresponde a la actualización del gradiente estocástico de Hoffman et al. : «Aprendizaje en línea para la Asignación de Dirichlet Latente», ver ecuaciones (5) y (9).
Parámetros
-
rhot (flotador) – Peso del otro estado en la media calculada. Un valor de 0.0 significa que otheris completamente ignorado. Un valor de 1.0 significa que self es completamente ignorado.
-
other (
LdaState
) – El objeto de estado con el que se fusionará el actual. -
targetsize (int, opcional) – El número de documentos para estirar ambos estados.
blend2
(rhot, other, targetsize=None)¶
Combine el estado actual con otro utilizando una suma ponderada para obtener estadísticas suficientes.
A diferencia de blend()
, las estadísticas suficientes no se escalan antes de la agregación.
Parámetros
-
rhot (flotador) – Sin usar.
-
other (
LdaState
) – El objeto de estado con el que se fusionará el actual. -
targetsize (int, opcional) – El número de documentos para estirar ambos estados.
get_Elogbeta
()¶
Obtener las probabilidades de registro (posteriores) para cada tema.
Devuelve
probabilidades Posteriores para cada tema.
Tipo de retorno
numpy.ndarray
get_lambda
()¶
Obtiene los parámetros de la parte posterior sobre los temas, también conocidos como «los temas».
Devuelve
Parámetros de la probabilidad posterior sobre temas.
Tipo de retorno
numpy.método de clase ndarray
load
(fname, *args, **kwargs)¶
Cargar un estado almacenado previamente desde el disco.
Anulaload
aplicando el parámetro dtype para garantizar la compatibilidad con versiones anteriores.
Parámetros
-
fname (str) – Ruta de acceso al archivo que contiene el objeto necesario.
-
args (objeto) – Parámetros posicionales que se propagarán a la clase:~gensim.utils.Carga salvada.carga
-
kwargs (objeto)-Parámetros de palabra clave que se propagarán a la clase:~gensim.utils.Carga salvada.load
Devuelve
El estado cargado desde el archivo dado.
Tipo de retorno
LdaState
merge
(otro)¶
Combinar el resultado de un paso E de un nodo con el de otro nodo (resumiendo estadísticas suficientes).
La fusión es trivial y después de fusionar todos los nodos del clúster, tenemos el mismo resultado exacto que si el cálculo se ejecutara en un solo nodo (no aproximación).
Parámetros
otros (LdaState
) – El objeto de estado con el que se fusionará el actual.
reset
()¶
Preparar el estado para una nueva iteración EM (restablecer estadísticas suficientes).
save
(nombre_or_handle, separately=None, sep_limit=10485760, ignore=frozenset ({}), pickle_protocol=4)¶
Guarde el objeto en un archivo.
Parámetros
-
nombre_or_handle (str o similar a un archivo): Ruta al archivo de salida o al objeto similar a un archivo ya abierto. Si el objeto es un manejador de archivo,no se realizará ningún manejo especial de matriz, todos los atributos se guardarán en el mismo archivo.
-
por separado (lista de str o Ninguno, opcional) –
Si no hay ninguno, detecta automáticamente numpy/scipy grande.matrices dispersas en el objeto que se está almacenando, y almacenarlas en archivos separados. Esto evita errores de memoria para objetos grandes, y también permite mapear la memoria de los arreglos grandes para una carga eficiente y compartir los arreglos grandes en RAM entre varios procesos.
If lista de str: almacene estos atributos en archivos separados. La comprobación de tamaño automatizada no se realiza en este caso.
-
sep_limit (int, opcional) – No almacene matrices más pequeñas que esta por separado. En bytes.
-
ignorar (frozenset de str, opcional): Atributos que no se deben almacenar en absoluto.
-
pickle_protocol (int, opcional) – Número de protocolo para pickle.
Véase también
load()
el objeto de Carga de archivo.
gensim.models.ldamodel.
update_dir_prior
(prior, N, logphat, rho)¶
Actualice un prior determinado utilizando el método de Newton, descrito como inJ. Huang: «Estimación de Máxima Verosimilitud de los Parámetros de Distribución de Dirichlet».
Parámetros
-
prior (lista de elementos flotantes): El anterior para cada posible resultado en la iteración anterior (que se actualizará).
-
N (int) – Número de observaciones.
-
logphat (lista de variables flotantes) – Probabilidades de registro para la estimación actual, también llamada «estadísticas suficientes observadas».
-
rho (flotador) – Tasa de aprendizaje.
Devuelve
La actualización antes.
tipo de Retorno
lista de float