LatentDirichletAllocationEstimator 类

定义

LDA 转换实现 LightLDA,这是 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)
继承
LatentDirichletAllocationEstimator
实现

注解

估算器特征

此估算器是否需要查看数据来训练其参数?
输入列数据类型 Single 的向量
输出列数据类型 Single 的向量
可导出到 ONNX

Latent Dirichlet Allocation 是一种众所周知 的主题建模 算法,它从文本数据推断语义结构,最终有助于回答有关“本文档的内容?”的问题。 它可用于将任何文本字段特征化为低维主题向量。 LightLDA 是 LDA 的极其高效的实现,其中包含许多优化技术。 通过 LDA 转换,ML.NET 用户可以训练主题模型,以在 10 亿个令牌文档中生成 100 万个单词词汇的 100 万个主题,通常 (一台计算机,LDA 在此规模上需要几天时间,并且需要大型群集) 。 最重要的创新是一个超高效的$O (1) 美元。 Metropolis-Hastings 采样算法,其运行成本与模型大小无关,因此可以比其他 Gibbs 采样器快近一个数量级。

在 ML.NET 管道中,此估算器需要一些预处理的输出作为其输入。 在文本上运行的典型管道需要文本规范化、标记化和生成 n 元语法才能提供给 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

有关更多技术详细信息,可查阅以下论文。

有关使用示例的链接,请查看“另请参阅”部分。

方法

Fit(IDataView)

火车并返回一个 LatentDirichletAllocationTransformer

GetOutputSchema(SchemaShape)

返回 SchemaShape 由转换器生成的架构。 用于管道中的架构传播和验证。

扩展方法

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

将“缓存检查点”追加到估算器链。 这将确保针对缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。

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

给定估算器后,返回将调用委托的 Fit(IDataView) 包装对象。 估算器通常必须返回有关拟合情况的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一系列估算器,以便我们要获取转换器的估算器被埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加调用一次将调用的委托。

适用于

另请参阅