LatentDirichletAllocationEstimator Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die LDA-Transformation implementiert LightLDA, eine hochmoderne 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
Schätzeigenschaften
| Muss dieser Schätzer die Daten untersuchen, um seine Parameter zu trainieren? | Yes |
| Eingabespaltendatentyp | Vektor von Single |
| Ausgabespaltendatentyp | Vektor von Single |
| Exportierbar in ONNX | No |
Latent Dirichlet Allocation ist ein bekannter Themenmodellierungsalgorithmus, der die semantische Struktur aus Textdaten ableiten kann und letztendlich hilft, die Frage zu beantworten, worum es bei diesem Dokument geht. Es kann verwendet werden, um Textfelder als tiefdimensionale Topvektoren 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-Dokumentensatz zu erstellen,ein einzelner Computer in wenigen Stunden(normalerweise dauert LDA in dieser Größenordnung Tage und erfordert große Cluster). Die wichtigste Innovation ist eine supereffiziente $O(1)$. Metropolis-Hastings Samplingalgorithmus, dessen laufende Kosten agnostisch für die Modellgröße sind, sodass sie fast eine Größenordnung schneller konvergieren als andere Gibbs-Sampler.
In einer ML.NET Pipeline erfordert dieser Schätzer die Ausgabe einiger Vorverarbeitungen als Eingabe. Eine typische Pipeline, die auf Text ausgeführt wird, würde eine Textnormalisierung, Tokenisierung und die Herstellung von n-Gramm erfordern, um den LDA-Schätzwert zu liefern. Die Beispielverwendung 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 Themen verwenden, die auf 3 festgelegt sind, würden wir die Ergebnisse in der folgenden Tabelle anzeigen. Beispieldokumente:
- Ich mag Bananen essen.
- Ich esse Bananen jeden Tag.
- Erstmals im Jahr 1970 gefeiert, umfasst der Earth Day jetzt Ereignisse in mehr als 193 Ländern/Regionen, die jetzt global vom Earth Day Network koordiniert werden.
Beachten Sie die Ähnlichkeit in Werten der ersten und zweiten Zeile im Vergleich zum dritten, und sehen Sie, wie diese Werte auf Ähnlichkeiten zwischen diesen beiden (kleinen) Textkörpern hinweisen.
| Thema 1 | Thema 2 | 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 Artikeln.
Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView) |
Züge und Gibt einen LatentDirichletAllocationTransformer. |
| GetOutputSchema(SchemaShape) |
Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemaverteilung und Überprüfung in einer Pipeline verwendet. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird. |