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 Latent.
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 avaliador
| Esse avaliador precisa examinar os dados para treinar seus parâmetros? | Yes |
| 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 latente de Dirichlet é um algoritmo de modelagem de tópico 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, definindo 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)$. Metropolis-Hastings algoritmo de amostragem, cujo custo de execução é independente do tamanho do modelo, permitindo que ele converga quase uma ordem de magnitude mais rápido do que outros samplers Gibbs.
Em um pipeline de ML.NET, esse avaliador 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 avaliador LDA. Consulte o exemplo de uso 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:
- Eu 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/regiões, que agora são coordenados globalmente pela Rede do Dia da Terra.
Observe a semelhança nos valores da primeira e da 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.
| Tópico1 | Tópico2 | 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
| Nome | Description |
|---|---|
| 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
| Nome | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Acrescente um 'ponto de verificação de cache' à cadeia do avaliador. Isso garantirá que os avaliadores 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 têm várias passagens de dados. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado um avaliador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um avaliador 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 criar uma cadeia de avaliadores por meio EstimatorChain<TLastTransformer> de onde o avaliador para o qual queremos obter o transformador está enterrado em algum lugar nessa cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado assim que o ajuste for chamado. |