次の方法で共有


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
実装

注釈

推定特性

このエスティメーターは、パラメーターをトレーニングするためにデータを確認する必要がありますか? はい
入力列のデータ型 Single のベクター
出力列のデータ型 Single のベクター
ONNX にエクスポート可能 いいえ

潜在的な Dirichlet の割り当ては、テキスト データからセマンティック構造を推測する既知の トピック モデリング アルゴリズムであり、最終的には "このドキュメントとは何か" に関する質問に答えるのに役立ちます。 任意のテキスト フィールドを低次元の局所ベクトルとして特徴付けるために使用できます。 LightLDA は、多数の最適化手法を組み込んだ LDA の非常に効率的な実装です。 LDA 変換を使用すると、ML.NET ユーザーはトピック モデルをトレーニングして、10 億個のトークン ドキュメント セットに 100 万語のボキャブラリを含む 100 万語のトピックを数時間で作成できます (通常、このスケールの LDA には数日かかり、大規模なクラスターが必要です)。 最も重要なイノベーションは、超効率的な$O(1)$です。 メトロポリス-Hastings サンプリング アルゴリズム。その実行コストはモデル サイズに依存せず、他の ギブス サンプラーよりもほぼ 1 桁高速に収束できます。

ML.NET パイプラインでは、このエスティメーターでは、何らかの前処理の出力を入力として必要とします。 テキストで動作する一般的なパイプラインでは、テキストの正規化、トークン化、LDA 推定に提供する n グラムの生成が必要になります。 使用法の提案については、「See Also」セクションの使用例を参照してください。

次の 3 つのテキストの例をデータ ポイントとして使用し、トピックの数を 3 に設定して LDA 変換を使用すると、次の表に結果が表示されます。 ドキュメントの例:

  • バナナを食べるのが好きです。
  • バナナは毎日食べます。
  • 1970年に初めて祝われるアースデーには、現在、地球の日ネットワークによって世界的に調整されている193カ国以上のイベントが含まれています。

1 行目と 2 行目の値が 3 行目と比較して類似していることに注目し、それらの値がテキストの 2 つの (小さい) 本文間の類似性をどのように示しているかを確認します。

[Topic1] [Topic2] トピック 3
0.5714 0.0000 0.4286
0.5714 0.0000 0.4286
0.2400 0.3200 0.4400

技術的な詳細については、次の論文を参照してください。

使用例へのリンクについては、「参照」セクションを参照してください。

メソッド

Fit(IDataView)

をトレーニングして返します LatentDirichletAllocationTransformer

GetOutputSchema(SchemaShape)

SchemaShapeトランスフォーマーによって生成されるスキーマの値を返します。 パイプラインでのスキーマの伝達と検証に使用されます。

拡張メソッド

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

エスティメーター チェーンに 'キャッシュ チェックポイント' を追加します。 これにより、ダウンストリームエスティメーターがキャッシュされたデータに対してトレーニングされます。 複数のデータを受け取るトレーナーが渡す前にキャッシュ チェックポイントを設定すると便利です。

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

エスティメーターを指定すると、デリゲートを 1 回 Fit(IDataView) 呼び出すラップ オブジェクトが呼び出されます。 多くの場合、エスティメーターが適合した内容に関する情報を返すことが重要です。そのため Fit(IDataView) 、メソッドは一般的 ITransformerなオブジェクトではなく、具体的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> 多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得するエスティメーターがこのチェーンのどこかに埋もれる場所を介して EstimatorChain<TLastTransformer> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください