LatentDirichletAllocationEstimator Třída

Definice

Transformace LDA implementuje LightLDA, nejmodernější implementaci 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)
Dědičnost
LatentDirichletAllocationEstimator
Implementuje

Poznámky

Charakteristiky odhadu

Potřebuje tento estimátor podívat se na data, aby se natrénovala jeho parametry? Yes
Datový typ vstupního sloupce Vektor Single
Datový typ výstupního sloupce Vektor Single
Exportovatelný do ONNX No

Latent Dirichlet Allocation je dobře známý algoritmus modelování témat , který odvozuje sémantickou strukturu z textových dat a nakonec pomáhá odpovědět na otázku "co je tento dokument o?". Dá se použít k featurizaci všech textových polí jako nízkorozměrných lokálních vektorů. LightLDA je mimořádně efektivní implementace LDA, která zahrnuje řadu technik optimalizace. S transformací LDA můžou uživatelé ML.NET trénovat model tématu tak, aby vytvořil 1 milion témat se slovníkem 1 milion slov na 1 miliardu tokenů, který nastavil jeden počítač během několika hodin (obvykle LDA v tomto měřítku trvá dny a vyžaduje velké clustery). Nejdůležitější inovace je superefektivnější $O(1)$. Metropolis-Hastings vzorkovací algoritmus, jehož provozní náklady jsou nezávislé na velikosti modelu, což umožňuje konvergovat téměř řádově rychleji než ostatní vzorkovací rutiny Gibbs.

V kanálu ML.NET tento odhad vyžaduje jako vstup výstup některých předzpracování. Typický kanál, který pracuje s textem, by vyžadoval normalizaci textu, tokenizaci a vytváření n-gramů, aby mohl poskytnout estimátoru LDA. Podívejte se na ukázkové využití v části Viz také návrhy využití.

Pokud máme následující tři příklady textu, jako datové body a použijeme transformaci LDA s počtem témat nastavených na 3, získáme výsledky zobrazené v následující tabulce. Ukázkové dokumenty:

  • Rád bych jíst banány.
  • Jíst banány každý den.
  • Poprvé oslavován v roce 1970, Země den nyní zahrnuje události ve více než 193 zemích, které jsou nyní koordinované globálně službou Earth Day Network.

Všimněte si podobnosti hodnot prvního a druhého řádku ve srovnání se třetím řádkem a podívejte se, jak tyto hodnoty ukazují na podobnosti mezi těmito dvěma (malými) body textu.

Téma 1 Téma 2 Téma 3
0.5714 0.0000 0.4286
0.5714 0.0000 0.4286
0.2400 0.3200 0.4400

Další technické podrobnosti najdete v následujících dokumentech.

V části Viz také najdete odkazy na příklady použití.

Metody

Fit(IDataView)

Vlaky a vrátí LatentDirichletAllocationTransformerhodnotu .

GetOutputSchema(SchemaShape)

SchemaShape Vrátí schéma, které bude vytvořen transformátorem. Používá se k šíření a ověřování schématu v kanálu.

Metody rozšíření

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

Připojte k řetězci odhadu kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby se podřízené estimátory natrénovaly na data uložená v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

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

Pokud získáte odhadátor, vraťte obtékání objektu, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně zadaný objekt, a ne jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec odhadovačů prostřednictvím EstimatorChain<TLastTransformer> toho, kde je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, uložen někde v tomto řetězu. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po volání fit.

Platí pro

Viz také