LatentDirichletAllocationEstimator Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La transformación LDA implementa LightLDA, una implementación de última generación de Latent Dirichlet Allocation.
public sealed class LatentDirichletAllocationEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.Text.LatentDirichletAllocationTransformer>
type LatentDirichletAllocationEstimator = class
interface IEstimator<LatentDirichletAllocationTransformer>
Public NotInheritable Class LatentDirichletAllocationEstimator
Implements IEstimator(Of LatentDirichletAllocationTransformer)
- Herencia
-
LatentDirichletAllocationEstimator
- Implementaciones
Comentarios
Características del estimador
¿Este estimador necesita examinar los datos para entrenar sus parámetros? | Sí |
Tipo de datos de columna de entrada | Vector de Single |
Tipo de datos de columna de salida | Vector de Single |
Exportable a ONNX | No |
Latent Dirichlet Allocation es un algoritmo de modelado de temas conocido que deduce la estructura semántica de los datos de texto y, en última instancia, ayuda a responder a la pregunta sobre "¿qué trata este documento?". Se puede usar para caracterizar cualquier campo de texto como vectores de temas de baja dimensión. LightLDA es una implementación extremadamente eficaz de LDA que incorpora una serie de técnicas de optimización. Con la transformación de LDA, ML.NET los usuarios pueden entrenar un modelo de tema para generar 1 millón de temas con un vocabulario de 1 millón de palabras en un conjunto de documentos de 1 mil millones de tokens en un único equipo en pocas horas (normalmente, el LDA a esta escala tarda días y requiere clústeres grandes). La innovación más importante es una $O(1)$. El algoritmo de muestreo de Metropolis-Hastings, cuyo costo en ejecución es independiente del tamaño del modelo, lo que le permite converger casi un orden de magnitud más rápido que otros muestreadores gibbs.
En una canalización de ML.NET, este estimador requiere la salida de algún preprocesamiento, como entrada. Una canalización típica que funciona en texto requeriría normalización de texto, tokenización y producción de n-gramas para suministrar al estimador de LDA. Consulte el ejemplo de uso en la sección Vea también para obtener sugerencias de uso.
Si tenemos los tres ejemplos siguientes de texto, como puntos de datos, y usamos la transformación LDA con el número de temas establecidos en 3, obtendríamos los resultados que se muestran en la tabla siguiente. Documentos de ejemplo:
- Me gusta comer plátanos.
- Yo como plátanos todos los días.
- En primer lugar celebrado en 1970, el Día de la Tierra ahora incluye eventos en más de 193 países, que ahora están coordinados globalmente por la Red del Día de la Tierra.
Observe la similitud en los valores de la primera y la segunda fila, en comparación con la tercera, y vea cómo esos valores son indicativos de similitudes entre esos dos cuerpos (pequeños) de texto.
Topic1 | Topic2 | Tema 3 |
---|---|---|
0.5714 | 0.0000 | 0.4286 |
0.5714 | 0.0000 | 0.4286 |
0.2400 | 0.3200 | 0.4400 |
Para obtener más detalles técnicos, puede consultar los siguientes documentos.
Consulte la sección Consulte también los vínculos a ejemplos de uso.
Métodos
Fit(IDataView) |
Entrena y devuelve un LatentDirichletAllocationTransformerobjeto . |
GetOutputSchema(SchemaShape) |
Devuelve el SchemaShape del esquema que generará el transformador. Se usa para la propagación y comprobación del esquema en una canalización. |
Métodos de extensión
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de bajada se entrenarán con datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) . A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador se enterró en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit. |