Share via


LatentDirichletAllocationEstimator Klasse

Definition

Die LDA-Transformation implementiert LightLDA, eine state-of-the-art-Implementierung von Latent Dirichlet Allocation.

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)
Vererbung
LatentDirichletAllocationEstimator
Implementiert

Hinweise

Stimatoreigenschaften

Muss diese Schätzung die Daten untersuchen, um seine Parameter zu trainieren? Yes
Eingabespaltendatentyp Vektor von Single
Ausgabespaltendatentyp Vektor von Single
Exportierbar in ONNX No

Die latente Dirichlet-Zuordnung ist ein bekannter Themenmodellierungsalgorithmus, der die semantische Struktur von Textdaten abgeleitet und letztendlich die Frage zu "was ist dieses Dokument?" zu beantworten. Es kann verwendet werden, um alle Textfelder als niedrigdimensionale Aktuelle Vektoren zu featurieren. LightLDA ist eine äußerst effiziente Implementierung von LDA, die eine Reihe von Optimierungstechniken enthält. Mit der LDA-Transformation können ML.NET Benutzer ein Themenmodell trainieren, um 1 Millionen Themen mit 1 Millionen Wörtern Vokabular auf einem 1-Milliarden-Token-Dokument zu erstellen, das ein einzelnes Computer in einigen Stunden festgelegt hat(in der Regel dauert LDA in dieser Skalierung Tage und erfordert große Cluster). Die wichtigste Innovation ist eine super effiziente $O(1)$. Metropolis-Hastings-Stichprobenalgorithmus, dessen Laufende Kosten agnostisch von Modellgröße sind, ermöglichen es, fast eine Reihenfolge von Größe zu konvergieren, die schneller als andere Gibbs-Sampler.

In einer ML.NET Pipeline erfordert diese Schätzung die Ausgabe einiger Vorverarbeitungen als Eingabe. Eine typische Pipeline, die auf Text ausgeführt wird, erfordert die Normalisierung, tokenisierung und die Herstellung von n-Gramm, um die LDA-Stimator zu liefern. Weitere Informationen finden Sie im Abschnitt "Siehe auch" für Verwendungsvorschläge.

Wenn wir die folgenden drei Beispiele für Text als Datenpunkte haben und die LDA-Transformation mit der Anzahl der auf 3 festgelegten Themen verwenden, würden wir die Ergebnisse erhalten, die in der nachstehenden Tabelle angezeigt werden. Beispieldokumente:

  • Ich mag Bananen essen.
  • Ich essen Bananen täglich.
  • Im Jahr 1970 feierte der Earth Day nun Veranstaltungen in mehr als 193 Ländern, die jetzt global vom Earth Day Network koordiniert werden.

Beachten Sie die Ähnlichkeit in Werten der ersten und zweiten Zeile im Vergleich zu dem Dritten, und sehen Sie, wie diese Werte auf Ähnlichkeiten zwischen diesen beiden (kleinen) Textkörpern hinweisen.

Topic1 Topic2 Thema 3
0.5714 0,0000 0.4286
0.5714 0,0000 0.4286
0.2400 0.3200 0.4400

Weitere technische Details finden Sie in den folgenden Papieren.

Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.

Methoden

Fit(IDataView)

Züge und zurückgeben eine LatentDirichletAllocationTransformer.

GetOutputSchema(SchemaShape)

Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemavermehrung und Überprüfung in einer Pipeline verwendet.

Erweiterungsmethoden

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

Fügen Sie einen "Zwischenspeicherpunkt" an die Stimatorkette an. Dadurch wird sichergestellt, dass die nachgelagerten Stimatoren gegen zwischengespeicherte Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt zu haben, bevor Trainer, die mehrere Daten übergeben.

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

Geben Sie aufgrund einer Schätzung ein Umbruchobjekt zurück, das einen Stellvertretung aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist oft wichtig, dass eine Schätzung Informationen zu dem zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein spezifisches typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformer. Gleichzeitig IEstimator<TTransformer> werden jedoch oft Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von EstimatorChain<TLastTransformer> Schätzern erstellen müssen, über die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die einmal aufgerufen wird, wenn die Anpassung aufgerufen wird.

Gilt für:

Weitere Informationen