Język

LatentDirichletAllocationEstimator Klasa

Definicja

Transformacja LDA implementuje LightLDA, najnowocześniejsze wdrożenie utajnianej 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? Yes
Typ danych kolumny wejściowej Wektor Single
Typ danych kolumny wyjściowej Wektor Single
Możliwość eksportowania do ONNX No

Opóźniona alokacja dirichletu to dobrze znany algorytm modelowania tematów , który wywnioskuje strukturę semantyczną z danych tekstowych, a ostatecznie pomaga odpowiedzieć na pytanie "o co chodzi w tym dokumencie?". Może służyć do wyczynowania dowolnych pól tekstowych jako niskowymiarowych wektorów tematowych. LightLDA to niezwykle wydajna implementacja LDA, która obejmuje szereg technik optymalizacji. Dzięki przekształceniu LDA użytkownicy ML.NET mogą wytrenować model tematu, aby wygenerować 1 milion tematów ze słownictwem 1 miliona słów na jednym zestawie dokumentów tokenów o wartości 1 miliarda 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)$. Metropolis-Hastings algorytm próbkowania, którego koszt działania jest niezależny od rozmiaru modelu, co pozwala na zbieżność niemal o wiele 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 następujące trzy 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/regionach, które są obecnie koordynowane globalnie przez Sieć Dzień Ziemi.

Zwróć uwagę na podobieństwo w wartościach pierwszego i drugiego wiersza w porównaniu z trzecim i zobacz, jak te wartości wskazują 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

Nazwa Opis
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

Nazwa Opis
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 z buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejdą 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ólne ITransformer. Jednak w tym samym czasie IEstimator<TTransformer> są często 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 będzie wywoływany po wywołaniu dopasowania.

Dotyczy

Zobacz też