LatentDirichletAllocationEstimator Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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. |