LatentDirichletAllocationEstimator Classe

Definição

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.

Aplica-se a

Confira também