LatentDirichletAllocationEstimator Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A transformação LDA implementa o LightLDA, uma implementação de última geração da Alocação de Dirichlet Latente.
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)
- Herança
-
LatentDirichletAllocationEstimator
- Implementações
Comentários
Características do estimador
Esse estimador precisa examinar os dados para treinar seus parâmetros? | Sim |
Tipo de dados de coluna de entrada | Vetor de Single |
Tipo de dados de coluna de saída | Vetor de Single |
Exportável para ONNX | No |
A Alocação de Dirichlet latente é um algoritmo de modelagem de tópico bem conhecido que infere a estrutura semântica dos dados de texto e, por fim, ajuda a responder à pergunta sobre "sobre o que é este documento?". Ele pode ser usado para apresentar todos os campos de texto como vetores tópicos de baixa dimensão. LightLDA é uma implementação extremamente eficiente do LDA que incorpora várias técnicas de otimização. Com a transformação LDA, ML.NET usuários podem treinar um modelo de tópico para produzir 1 milhão de tópicos com vocabulário de 1 milhão de palavras em um documento de 1 bilhão de tokens definir um único computador em poucas horas(normalmente, o LDA nessa escala leva dias e requer clusters grandes). A inovação mais significativa é uma $O(1)$super eficiente. Algoritmo de amostragem Metropolis-Hastings, cujo custo de execução é agnóstico do tamanho do modelo, permitindo que ele converga quase uma ordem de magnitude mais rápido do que outros samplers Gibbs.
Em um pipeline ML.NET, esse estimador requer a saída de algum pré-processamento, como sua entrada. Um pipeline típico que opera no texto exigiria normalização de texto, tokenização e produção de n-gramas para fornecer ao estimador LDA. Consulte o uso de exemplo na seção Consulte Também para obter sugestões de uso.
Se tivermos os três exemplos de texto a seguir, como pontos de dados, e usarmos a transformação LDA com o número de tópicos definido como 3, obteremos os resultados exibidos na tabela abaixo. Documentos de exemplo:
- Gosto de comer bananas.
- Eu como bananas todos os dias.
- Celebrado pela primeira vez em 1970, o Dia da Terra agora inclui eventos em mais de 193 países, que agora são coordenados globalmente pela Rede do Dia da Terra.
Observe a similaridade nos valores da primeira e segunda linha, em comparação com a terceira, e veja como esses valores são indicativos de semelhanças entre esses dois corpos (pequenos) de texto.
Topic1 | Topic2 | Tópico 3 |
---|---|---|
0.5714 | 0,0000 | 0.4286 |
0.5714 | 0,0000 | 0.4286 |
0.2400 | 0.3200 | 0.4400 |
Para obter mais detalhes técnicos, consulte os artigos a seguir.
Verifique a seção Consulte Também para obter links para exemplos de uso.
Métodos
Fit(IDataView) |
Treina e retorna um LatentDirichletAllocationTransformer. |
GetOutputSchema(SchemaShape) |
Retorna o SchemaShape esquema que será produzido pelo transformador. Usado para propagação e verificação de esquema em um pipeline. |
Métodos de Extensão
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Acrescente um "ponto de verificação de cache" à cadeia de estimativas. Isso garantirá que os estimadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado um estimador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um estimador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário construir uma cadeia de estimadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos que o transformador seja enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado quando fit for chamado. |