語言

LatentDirichletAllocationEstimator 類別

定義

LDA 轉換實作了 LightLDA,這是潛在狄利克雷分配的先進實作。

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)
繼承
LatentDirichletAllocationEstimator
實作

備註

估算器特性

這個估計器需要查看資料來訓練參數嗎? Yes
輸入欄位資料型別 Single 向量
輸出欄位資料型態 Single 向量
可匯出至 ONNX No

潛在狄利克雷分配是一種知名的 主題建模 演算法,能從文本資料推斷語意結構,最終幫助回答「這份文件到底是什麼?」這個問題。 它可用來將任何文本欄位作為低維主題向量來特徵化。 LightLDA 是 LDA 的極為高效實作,結合了多種最佳化技術。 透過 LDA 轉換,ML.NET 使用者可以訓練主題模型,在單一機器上數小時內產生 100 萬個主題、100 萬字詞彙,涵蓋 10 億個標記文件集(通常此規模的 LDA 需耗時數天且需大型叢集)。 最重要的創新是超高效率的$O(1)$。 Metropolis-Hastings 取樣演算法的執行成本不受模型大小影響,使其收斂速度比其他 Gibbs 取樣器快近一個數量級。

在 ML.NET 管線中,這個估計器需要以某種預處理的輸出作為輸入。 一個典型的文字管線需要文字正規化、分詞化,並產生 n-gram 以供 LDA 估計器使用。 請參閱「參見」部分的範例用法建議。

如果我們有以下三個文字範例作為資料點,並使用 LDA 轉換,主題數設為 3,結果就會顯示在下表中。 範例文件:

  • 我喜歡吃香蕉。
  • 我每天都吃香蕉。
  • 地球日自1970年首次慶祝,現已涵蓋超過193個國家/地區的活動,並由地球日網絡在全球範圍內協調。

注意第一排和第二排的數值與第三排的相似性,並觀察這些數值如何反映這兩個(小)文本體之間的相似性。

主題1 主題2 主題 3
0.5714 0.0000 0.4286
0.5714 0.0000 0.4286
0.2400 0.3200 0.4400

如需更多技術細節,可參考以下論文。

請參考「參見」區塊,裡面有使用範例的連結。

方法

名稱 Description
Fit(IDataView)

訓練並返回 LatentDirichletAllocationTransformer。

GetOutputSchema(SchemaShape)

回傳 SchemaShape 由變壓器產生的結構結構。 用於結構傳播與管線驗證。

擴充方法

名稱 Description
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

在估計鏈中附加一個「快取檢查點」。 這將確保下游估計器能針對快取資料進行訓練。 在訓練師接受多次資料通行前設置快取檢查點會很有幫助。

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

給定一個估計器,回傳一個包裹物件,該物件會呼叫一次 Fit(IDataView) 代理。 估計器通常回傳擬合的資訊很重要,因此該 Fit(IDataView) 方法回傳一個特定型別的物件,而非一般 ITransformer的 。 然而,同時, IEstimator<TTransformer> 通常會被組成包含許多物件的管線,因此我們可能需要建立一條估計鏈,將 EstimatorChain<TLastTransformer> 我們想要取得變壓器的估計器埋藏在這條鏈的某處。 在這種情況下,我們可以透過此方法附加一個代理,當 fit 被呼叫時會被呼叫。

適用於

另請參閱