Udostępnij za pośrednictwem


LatentDirichletAllocationEstimator Klasa

Definicja

Transformacja LDA implementuje lightLDA, najnowocześniejsze wdrożenie opóźnianej alokacji Dirichlet.

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)
Dziedziczenie
LatentDirichletAllocationEstimator
Implementuje

Uwagi

Charakterystyka narzędzia do szacowania

Czy ten narzędzie do szacowania musi przyjrzeć się danym, aby wytrenować jego parametry? Tak
Typ danych kolumny wejściowej Wektor Single
Typ danych kolumny wyjściowej Wektor Single
Eksportowanie do pliku ONNX Nie

Opóźniona alokacja Dirichlet jest dobrze znanym algorytmem modelowania tematów , który wywnioskuje strukturę semantyczną z danych tekstowych, a ostatecznie pomaga odpowiedzieć na pytanie "co to jest ten dokument?". Może służyć do wyczynowania dowolnych pól tekstowych jako wektorów tematowych o niskim wymiarach. LightLDA to niezwykle wydajna implementacja LDA, która obejmuje szereg technik optymalizacji. Dzięki transformacji LDA użytkownicy ML.NET mogą wytrenować model tematu, aby wygenerować 1 milion tematów ze słownictwem 1 miliona słów na 1 miliardach tokenów dokumentu ustawionym na jedną maszynę w ciągu kilku godzin (zazwyczaj LDA w tej skali zajmuje kilka dni i wymaga dużych klastrów). Najważniejszą innowacją jest superwydajna $O(1)$. Algorytm próbkowania Metropolis-Hastings, którego koszt działania jest niezależny od rozmiaru modelu, co pozwala na zbieżność niemal rzędu wielkości szybciej niż inne próbkatory Gibbs.

W potoku ML.NET ten narzędzie do szacowania wymaga danych wyjściowych niektórych przetwarzania wstępnego jako danych wejściowych. Typowy potok działający na tekście wymaga normalizacji tekstu, tokenizacji i produkcji n-gramów w celu dostarczenia do narzędzia do szacowania LDA. Zobacz przykładowe użycie w sekcji Zobacz również, aby uzyskać sugestie dotyczące użycia.

Jeśli mamy trzy następujące przykłady tekstu, jako punkty danych i użyjemy przekształcenia LDA z liczbą tematów ustawionych na 3, uzyskamy wyniki wyświetlane w poniższej tabeli. Przykładowe dokumenty:

  • Lubię jeść banany.
  • Jem banany codziennie.
  • Po raz pierwszy obchodzony w 1970 roku, Dzień Ziemi obejmuje teraz wydarzenia w ponad 193 krajach, które są obecnie koordynowane na całym świecie przez Sieć Dni Ziemi.

Zwróć uwagę na podobieństwo wartości pierwszego i drugiego wiersza w porównaniu do trzeciego i zobacz, jak te wartości wskazują na podobieństwa między tymi dwoma (małymi) treściami tekstu.

Temat1 Temat2 Temat 3
0.5714 0.0000 0.4286
0.5714 0.0000 0.4286
0.2400 0.3200 0.4400

Aby uzyskać więcej informacji technicznych, zapoznaj się z następującymi dokumentami.

Zapoznaj się z sekcją Zobacz również, aby uzyskać linki do przykładów użycia.

Metody

Fit(IDataView)

Trenuje i zwraca wartość LatentDirichletAllocationTransformer.

GetOutputSchema(SchemaShape)

SchemaShape Zwraca schemat, który zostanie wygenerowany przez transformator. Służy do propagacji schematu i weryfikacji w potoku.

Metody rozszerzania

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Dołącz punkt kontrolny buforowania do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane względem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejmą wiele danych.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który wywoła delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólną ITransformerwartość . Jednak w tym samym czasie IEstimator<TTransformer> często są tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania za pośrednictwem EstimatorChain<TLastTransformer> miejsca, w którym narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania.

Dotyczy

Zobacz też