NLP——Topic Modelling

news2024/11/15 18:48:58

文章目录


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

主题建模(Topic Modeling)是一种统计模型,用于在一组文档中发现抽象的"主题"。主题可以看作是一种潜在的变量,能够捕获文档中的主要讨论点。

比如,你有一堆新闻文章,通过主题建模,可能可以发现一些主题,如"国际政治",“经济”,“体育”,“娱乐"等。每个主题都由一组与之相关的关键词定义。例如,“体育”主题可能包括"篮球”,“足球”,"奥运会"等词语。

最常见的主题建模方法是潜在Dirichlet分配(LDA),它假设每个文档都是从多个主题的混合体中生成的,而每个主题则是从一组特定的词语分布中生成的。

主题建模在文本挖掘、自然语言处理和信息检索等领域有广泛的应用,可以用来探索大规模文本集合的隐藏结构,帮助我们更好地理解和解释文本数据。

A Brief History of Topic Models

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Latent Dirichlet Allocation (LDA)潜在狄利克雷分布

  • 一种用于主题模型的生成概率模型,通过对文档中的词汇进行概率分布分析,从而发现文档中的潜在主题。
    在这里插入图片描述

核心思想

在这里插入图片描述
Latent Dirichlet Allocation(LDA)是一种主题模型,它允许观察到的一组文档可以被解释为潜在主题的集合。 这是一种无监督的生成模型,使我们能够确定由哪些主题生成了一篇特定的文档,并能确定每个主题的词分布。

LDA的基本思想是:

  • 每一篇文档都可以被看作是一系列主题的混合,而每一个主题又可以被看作是一系列词的混合。 例如,如果我们有一个关于体育的文档,那么可能的主题包括"篮球"、“足球”、“棒球"等,每个主题都有各自的词汇,如"投篮”、“射门”、"跑垒"等。

  • LDA算法通过反复迭代来学习 主题-词分布文档-主题 分布,最终可以为每个文档提供一个主题分布(告诉我们这篇文档关于哪些主题)并为每个主题提供一个词分布(告诉我们每个主题包含哪些关键词)。

LDA广泛用于自然语言处理、信息检索和机器学习等领域,用于文档分类、情感分析、推荐系统等任务。

在这里插入图片描述

LDA input

在这里插入图片描述

LDA output

在这里插入图片描述

LDA 如何学习

在这里插入图片描述

Sampling-based mothods 基于采样的方法

在这里插入图片描述

  • 蓝色的表格用于统计 topic-word 共同出现的情况
  • 绿色的表格用于统计 document-topic 共同出现的情况
  • 蓝色的表格中的数据一开始都被初始化为 0.01,绿色的则都是 0.1
  • 这些初始化的数据被称为 prior 先验
  • 之所以以这样的方式初始化,是因为我们为了 smooth 结果,避免在计算的过程中出现 0
  • 看蓝色表格左上角的 mouse-t11.01 其实 1.01 = 1 + 0.01,除了初始值之外,因为在橙色的表格中, mouset1 共同出现了 1 次,所以这里得到了 1.01
  • 同样的 moust-t3=2.01
  • 其他的表格单元也都如法炮制
  • 填完了蓝色和绿色的表格之后,进行下一步
  • 那就是遍历所有的 word token 然后 sample 一个新的 topic,这个步骤是根据这两个表格来决定的:
    在这里插入图片描述
  • 其中 P ( t i ∣ w ) P(t_i|w) P(tiw) 是从蓝色表格计算出来的, P ( t i ∣ d ) P(t_i|d) P(tid) 是根据绿色表格计算出来的
  • 需要注意的是:需要在采样前取消当前主题分配并更新共现矩阵

在Gibbs采样中,为什么在采样前要取消当前的主题分配并更新共现矩阵呢?这是因为我们正在尝试从一个条件分布中抽取样本,即在给定其他所有单词的主题分配情况下,当前单词的主题分配。

  • 当我们尝试更新一个特定单词的主题时,我们先要**“去除”或取消这个单词当前的主题分配**,这样才能确保这个单词的新主题分配不会被它自己当前的分配影响。只有在这个单词“看不见”自己当前的主题分配的情况下,我们才能得到一个公正的抽样。
  • 同时,取消当前的主题分配也意味着我们需要更新主题-词(topic-word)和文档-主题(document-topic)的共现矩阵,因为这个单词的主题分配已经改变,所以之前基于旧的主题分配得到的共现矩阵已经不再准确。一旦我们有了更新后的共现矩阵,我们就可以基于当前其他所有单词的主题分配,从该单词的主题的条件分布中抽取新的主题标签。
  • 总的来说,这个过程确保了我们在给定其他所有变量的情况下,公正地从一个变量的条件分布中抽取样本,这是Gibbs采样的基本要求。
    在这里插入图片描述
  • 根据上面的条件,我们现在对 mouse 单词重新分配主题的时候,需要将原本属于的主题进行 de-allocate 所以在 mouse-t1 这个单元中要 -1,同样的,在 t1-doc 的矩阵中的对应位置也需要把这个值 -1(就相当于橙色的表格中这个 mousetopic=? 所以不能将 mouse 所在的 t1 再作为绿色表格的有效数据统计进去了)
    在这里插入图片描述
  • 接下来就是将 P ( t i ∣ w ) P ( t i ∣ d ) P(t_i|w)P(t_i|d) P(tiw)P(tid) 计算出来即可,例如 P ( t 1 ∣ m o u s e , d 1 ) = P ( t 1 ∣ m o u s e ) P ( t 1 ∣ d 1 ) P(t_1|mouse, d_1) = P(t_1|mouse)P(t_1|d_1) P(t1mouse,d1)=P(t1mouse)P(t1d1),我们根据这个公式可以计算出来 mouse 与 t 1 , t 2 , t 3 t_1,t_2, t_3 t1,t2,t3 哪种 topic 更加契合,然后将 mouse 分配给这种 topic
  • 重复上面的步骤,不断更新表格直到收敛
  • 再举个例子:计算 P ( t 3 ∣ m o u s e , d 1 ) P(t_3|mouse, d_1) P(t3mouse,d1)
    P ( t 3 ∣ m o u s e , d 1 ) = P ( t 3 ∣ m o u s e ) P ( t 3 ∣ d 1 ) P(t_3|mouse, d_1)=P(t_3|mouse)P(t_3|d_1) P(t3mouse,d1)=P(t3mouse)P(t3d1)
  • 原本以为应该按照下面的方式将这个 t3-mouse 也减去 1,但是事实上这样是不对的
    在这里插入图片描述
  • 因为我们现在正在对 t1-mouse 进行 reassign,所以我们只需要在 t1-mouse 相关的蓝色和 绿色格子中减去即可,至于 t3-mouse 我们正常计算即可,所以计算如下:
    在这里插入图片描述
    在这里插入图片描述

Infer Topics For New Documents

  • 在推理阶段,我们固定蓝色表格,只是更新绿色表格
    在这里插入图片描述

超参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Variational methods 变分方法

Evaluation

主题模型(例如LDA)的评估是一项重要的任务,主要有两种评估方法:内在评价(Intrinsic Evaluation)和外在评价(Extrinsic Evaluation)。

内在评价:内在评价主要通过计算模型的困惑度(Perplexity)、主题一致性(Topic Coherence)等指标来评价模型的性能。

  • 困惑度 Perplexity:困惑度是评估主题模型质量的一种常见指标。困惑度越低,模型的性能越好。困惑度基本上度量了模型对未见过的新数据的预测能力,即模型的泛化能力。

  • 主题一致性 Topic Coherence:主题一致性是另一种常用的评价指标,它度量的是一个主题内部的词语是否在语义上相互关联。主题一致性越高,说明主题模型捕捉到的主题越有意义。

外在评价:外在评价主要是看主题模型在一些下游任务上的性能,例如文档分类、文档聚类、信息检索等。 比如,我们可以使用主题模型对文档进行特征提取,然后在这些特征上训练一个分类器或者聚类算法,通过观察分类器或者聚类算法的性能来评估主题模型的质量。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java协同过滤算法的校园二手图书网站springboot vue

用户:(商品推荐算法) 1)首页主要由导航栏、图书展示页、分页所组成。访客能浏览网站上的待出售图书的信息,但是若要购买,收藏图书,查看卖家信息则会自动跳转到登录界面,已经登录的用户则可以浏…

WPS AI最全申请与使用手册;AIGC制作游戏音乐;便宜快捷使用完整版SD;人人都能看懂的ChatGPT原理课 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 面向虚拟世界的生成式AI市场全景图 作者在这篇文章中探讨了生成式AI在虚拟世界的应用,并绘制了 Market Map V3.0 (市场全景…

C++ 有用的资源||19道必须掌握的C++面试题

C 有用的资源 C 有用的资源 以下资源包含了 C 有关的网站、书籍和文章。请使用它们来进一步学习 C 的知识。 C 有用的网站 C Programming Language Tutorials − C 编程语言教程。C Programming − 这本书涵盖了 C 语言编程、软件交互设计、C 语言的现实生活应用。C FAQ −…

chatgpt赋能python:Python中的遍历方法详解

Python中的遍历方法详解 在Python中,遍历是处理数据的常见操作。Python提供了多种遍历方法,本文将逐一介绍这些方法的特点、适用场景及使用方法。 for循环 for循环是Python中最常用的遍历方法之一,可以遍历任何可迭代对象。 # 遍历列表 f…

栈的运用——中缀表达式[Java实现]

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现,有时候有C/C代码。 ⭐如果觉得文章写的…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图(1)位图概念介绍(2)简单模拟实现(3)位图应用 二、布隆过滤器(1)关于布隆过滤器概念及介绍(2)布隆过滤器的使用场景(3&#xff0…

干翻Mybatis源码系列之第十一篇:Mybatis拦截器获取被拦截对象的方法和参数

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

DJ4-1 网络层概述

目录 一、网络层提供的功能 二、路由和转发 三、数据平面和控制平面 四、网络层的服务模型 一、网络层提供的功能 网络层实现主机与主机之间的通信 从发送方主机传输报文段到接收方主机: 发送方主机封装报文段 (segments) 为数据报 (datagrams)接收方主机递交…

Linux常用命令——gcov命令

在线Linux命令查询工具 gcov 测试程序的代码覆盖率的工具 补充说明 gcov命令是一款测试程序的代码覆盖率的工具。 语法 gcov(选项)(参数)选项 -h:显示帮助信息; -v:显示版本信息; -a:输出所有的基本块的执行计数…

SpringMVC 中的常用注解和用法

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录 前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new projec…

PyQt学习笔记-使用通用数据库接口QtSql操作SQLite数据库

使用通用的数据库接口的好处是当数据库发生改变时,只需要修改初始化的配置即可,而不用修改对应的更多的代码。 一、QtSql类 QtSql类时的数据库操作接口类,包含如下类: QSql QSqlError QSqlQueryModel QSqlRelationalTableMo…

SQL基础入门-条件查询语句

前言 可以关注我的云原生社区:云原生社区 也可以关注我的英语社区:从零开始学英语 一. 创建数据库并写入数据 1.1 创建数据库 MySQL [school]> create database game; Query OK, 1 row affected (0.01 sec)MySQL [school]> use game Database c…

[PyTorch][chapter 40][CIFAR-10 数据集]

前言: CIFAR-10和CIFAR-100是8000万个微小图像数据集的标记子集。它们由Alex Krizhevsky、Vinod Nair和Geoffrey Hinto收集 目录: CIFAR-10数据集简介 在线下载方式 离线下载方式 一 CIFAR-10数据集简介 CIFAR-10数据集由10个类别的60000张32x32…

碳中和城市建筑能源系统(3):负荷篇(龙惟定)2022

碳中和城市建筑能源系统(3):负荷篇 摘要 本文是碳中和城市建筑能源系统系列文章的第三篇。碳中和城市能源系统要实现“两个替代”,即能源生产的可再生能源替代和能源消费的电力替代。因此有2个关键点对负荷分析提出了要求:一是建筑电气化&a…

网络安全运维-数字取证篇

Volatility使用 使用工具:Autopsy、Volatility、Wireshark 这部分可分为数据分析与取证、内存取证两块内容 一、数据分析与取证 1、wirwshark图形化 wireshark基本操作 过滤器使用 ip.src x.x.x.x 选择源ip为x.x.x.x的数据包 tcp.port xx 选择源或目标端口…

WPF开发txt阅读器13:绑定快捷键实现翻页

文章目录 绑定快捷键翻页功能跳转到首尾章节跳转 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录字体控件绑定💎前景/背景颜色书籍管理系统💎用树形图管理书籍语音播放💎播放进度显示💎快进…

python数据可视化玩转Matplotlib直方图、箱型图、密度图、正态分布、偏度和峰度

目录 1. 直方图、箱线图和密度图 1.1 直方图 1.2 箱线图 1.3 密度图 2. 正态分布 3. 偏度和峰度 结论 1. 直方图、箱线图和密度图 直方图、箱线图和密度图是数据分析中十分常用的图形。它们可以帮助我们更好地理解数据的分布情况,从而更好地进行数据分析和处…

M1和M2的剪刀差是什么意思?

Scissors difference between M1 and M2. 在市场上流通的货币的数量,用金融术语来讲叫货币供应量。 因为市场上的货币流动性各不相同,长期存款的流动性不如短期存款的强,短期存款的流动性不如现金的强。 所以在统计货币量的时候,标…

Linux优化命令之free命令

free 这里写目录标题 一、free命令描述:1.free命令的语法:2.free命令的选项:3.free命令的输出格式: 二、压力测试工具stress:1.工具简介:2.参数详解:3.下载压力测试工具: 三、模拟实…

osg环境搭建与使用

目录 环境安装 案例一: 案例二: 案例三: 案例四: 我的vs2022,window11 环境安装 看这个文章即可,博客很详细,按照这个没问题的 (5条消息) 【OSG】OSG环境部署 OSG3.6.5vs2017win10_x64(超详细&…