首页 > 其他分享 >主题建模 (2)

主题建模 (2)

时间:2022-09-02 08:44:43浏览次数:75  
标签:LDA 主题 矩阵 建模 单词 文档

主题建模 (2)

Abhinav Jhanwar,人工智能团队

在一个 上一篇文章 我们回顾了主题建模的示例和应用。这次我们将回顾流行的主题建模方法。

主题建模方法

1.潜在语义分析(LSA)

它基于所谓的分布假设,该假设指出,可以通过查看单词出现的上下文来掌握单词的语义。换句话说,在这个假设下,如果两个单词的语义倾向于发生在类似的情况下。

也就是说,LSA 计算单词在文档和整个语料库中出现的频率,并假设相似的文档包含某些单词的大致相同的词频分布。在这种情况下,句法信息(例如词序)和语义信息(例如给定词的多重含义)被忽略,每个文档被视为一个词袋。

计算词频的标准方法是所谓的 tf-idf。该方法计算频率时不仅考虑了给定文档中单词的频率,还考虑了所有文档语料库中单词的频率。在完整语料库中频率较高的单词将比频率较低的单词更适合文档表示,无论它们在单个文档中出现多少次。因此,tf-idf 表示比只考虑文档级别的词频的表示要好得多。

一旦计算了 tf-idf 频率,我们就可以创建一个 Document-term 矩阵,它显示给定文档中每个术语的 tf-idf 值。该矩阵将为语料库中的每个文档提供行,并为所考虑的每个术语提供列。

通过使用奇异值分解 (SVD),可以将该文档项矩阵分解为 3 个矩阵的乘积 (USV)。 U 矩阵称为 Document-topic 矩阵,V 矩阵称为 Term-topic 矩阵:

线性代数保证 S 矩阵是对角的,LSA 将考虑每个奇异值,即矩阵 S 的主对角线中的每个数字,作为在文档中找到的潜在主题。

现在,如果我们将最大的 t 个奇异值与 U 的前 t 列和 V 的前 t 行保持在一起,我们可以获得在原始 Document-term 矩阵中找到的 t 个更频繁的主题。我们称之为截断 SVD,因为它不会保留原始矩阵的所有奇异值,并且为了将其用于 LSA,我们必须将 t 的值设置为超参数。

通过分别查看构成 U 和 V 矩阵的向量,可以通过不同的技术评估每个文档的主题分配质量和分配给每个主题的术语的质量。

2. 潜在狄利克雷分配(LDA)

潜在狄利克雷分配 (LDA) 和 LSA 基于相同的基本假设:分布假设(即相似主题使用相似词)和统计混合假设(即文档讨论多个主题)决定。 LDA 的目的是将我们语料库中的每个文档映射到一组主题,这些主题涵盖了文档中的大量单词。

为了将文档映射到主题列表,LDA 所做的是将主题分配给单词排列,例如 n-gram,例如与体育相关的主题的最佳球员。这源于这样的假设,即文档是用文字排列编写的,并且这些排列决定了主题。再

换句话说,LDA 假设主题和文档如下所示:

而且,当 LDA 为新文档建模时,它的工作方式如下:

LSA 和 LDA 的主要区别在于 LDA 假设文档中的主题分布和主题中的单词分布是狄利克雷分布。 LSA 不假设任何分布,因此会导致主题和文档的向量表示更加不透明。

有两个控制文档和主题相似度的超参数,分别称为 alpha 和 beta。较低的 alpha 值将为每个文档分配较少的主题,而较高的 alpha 值将产生相反的效果。较低的 beta 值将使用较少的词来模拟主题,而较高的值将使用更多的词,从而使主题之间更加相似。

实现 LDA 时必须设置第三个超参数,即算法将检测到的主题数,因为 LDA 无法自行决定主题数。

该算法的输出是一个向量,其中包含正在建模的文档的每个主题的覆盖范围。它看起来像这样 [0.2, 0.5, etc.],其中第一个值显示第一个主题的覆盖范围,依此类推。如果进行适当比较,这些向量可以让您深入了解语料库的主题特征。

3. 使用 BERT 进行主题建模

Transformers 的双向编码器表示是 Google 开发的一种用于自然语言处理预训练的技术。使用 BERT 进行主题建模所涉及的步骤如下所述。

一个。嵌入

我们要做的第一步是将文档转换为数字数据。我们为此使用 BERT,因为它根据单词的上下文提取不同的嵌入。不仅如此,还有很多 预训练模型 可随时使用。

湾。聚类

我们希望确保具有相似主题的文档聚集在一起,以便我们可以在这些集群中找到主题。 HDBSCAN 是一种基于密度的聚类算法,它与 UMAP 配合得非常好,因为 UMAP 即使在低维空间中也能保持大量的局部结构。此外,HDBSCAN 不会将数据点强制到集群,因为它认为它们是异常值。

笔记 :如果您使用可以处理高维的聚类算法(如基于余弦的 k 均值),则可以跳过降维步骤。

C。主题创作

为了从集群文档中获取主题,我们可以使用基于类的 TF-IDF 变体 (c-TF-IDF),这将允许提取使每组文档与其他文档相比独一无二的原因。

应用基于类的 TF-IDF:

基于类的 TF-IDF,通过在一个类中加入文档,其中为每个类 i 提取每个单词 t 的频率,然后除以单词总数 w。这个动作可以看作是对类中的常用词进行正则化的一种形式。接下来,未连接的文档总数 m 除以所有类别 n 中单词 t 的总频率。

现在,我们为集群中的每个单词都有一个单独的重要性值,可用于创建主题。如果我们在每个集群中取前 10 个最重要的词,那么我们将得到一个集群的良好表示,从而得到一个主题。

笔记 :类是无监督的集群

在一个 上一篇文章 在这篇文章中,我们回顾了符号、用例、应用和流行的方法。我们将在下一篇文章中回顾流行的库用于主题建模的用法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/10938/36430208

标签:LDA,主题,矩阵,建模,单词,文档
From: https://www.cnblogs.com/amboke/p/16648529.html

相关文章

  • 9/1 准备数学建模大赛
    9/1日16:45决定参加数学建模大赛,已经找到了一名队友,还缺一名论文写手。我在数学建模大赛中担任编程员,但我也想去学习数学建模的知识。感慨,上大学后可以自由支配的时间变......
  • 博客园主题第二弹
    页面定制css点击查看代码#cnblog-nava:nth-child(1)span:before{display:none;color:#f27474!important;}#cnblog-nava:nth-child(2)span:before{......
  • React + Antd实现动态切换主题功能
    本文摘自【前端早茶】React+Antd实现动态切换主题功能前言最近去antdesign官网查阅资料,发现antdesign最新版本已经更新到了4.17.x,于是比较粗略的看了一下最近几......
  • Hexo+next主题美化
    前言需要在Hexo下配置next主题Hexo配置next主题教程:更改配置以后使用素质三连:hexoclean&&hexog&&hexos即可本地看到效果。hexoclean&&hexog&&hexos注:......
  • Story shopify主题模板配置修改
    shopifystory主题是一个旨在发展你的品牌和建立客户信任的主题,非常适用于珠宝和饰品、食品和饮料、服装、家居和装饰、电子产品、书籍、音乐和视频、健康和美容、运动和娱......
  • Shopify主题Lorenza模板配置修改
    Lorenza是为时尚零售商提供的一个精品shopify主题,有了一个大型的导航和先进的产品过滤,Lorenza现在非常适合大中型产品目录。Lorenza背后的指导思想是使用不对称性和编辑功......
  • C# net PDMan/CHINER/元数建模 生成SqlSugar 代码生成器模板
    C#netPDMan/CHINER/元数建模生成SqlSugar代码生成器模板C#netPDManCHINER元数建模生成SqlSugar代码生成器模板 在版本>=4.0.0版本中增加分类 代码生成器......
  • 软件工程 统一建模语言(Unified Modeling Language UML) 第4篇随笔
    4.1、统一建模语言(UnifiedModelingLanguageUML)是一种可视化的语言规约系统的制品构造系统的制品建立系统制品的文档UML应用范围可用于对象方法和构件方法可......
  • python3 常用内建模块
    datetime:处理日期和时间的标准库 获取指定日期和时间 str转换为datetimefromdatetimeimportdatetimecday=datetime.strptime('2015-6-118:19:59','%Y-%m-%d%H:......
  • MAUI + Masa Blazor 开发界面跟随系统主题切换的App
    1、安装MasaBlazor参考:MASABlazor安装2、编写代码新建Service目录,并添加ThemeService.cs该RequestedTheme属性返回AppTheme枚举成员。AppTheme枚举定义下列......