相关文章推荐
爱热闹的作业本  ·  机器学习:随机森林算法的Stata实现_St ...·  1 年前    · 
开心的炒饭  ·  刷新和预热CDN节点的缓存资源_CDN(CD ...·  1 年前    · 
冷静的毛豆  ·  Details of the policy ...·  1 年前    · 
听话的小刀  ·  商户证书序列号有误。请使用签名私钥匹配的证书 ...·  2 年前    · 
刀枪不入的皮带  ·  用sed命令在文本的行尾或行首添加字符-阿里 ...·  2 年前    · 
Code  ›  NLP系列(二)LDA主题模型开发者社区
主题模型 lda nlp
https://cloud.tencent.com/developer/article/1450096
耍酷的便当
1 年前
作者头像
致Great
0 篇文章

NLP系列(二)LDA主题模型

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 程序生活 > NLP系列(二)LDA主题模型

NLP系列(二)LDA主题模型

作者头像
致Great
发布 于 2019-06-24 09:55:12
2.7K 0
发布 于 2019-06-24 09:55:12
举报

LDA模型是NLP中很基础也是大家广为熟知的模型,在面试过程也经常遇到。本文简单讲述下其大致流程。

1 LDA 简介

首先,我们来感受下LDA是什么,

什么是LDA模型?

看来,不同人在不同场景下对LDA的认识,那我们看下百科的解释:

LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层 贝叶斯 概率模型,包含词、主题和文档三层结构。 所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到 。文档到主题服从多项式分布,主题到词服从多项式分布。

看到这里我们只需要先记住: LDA的目的就是要识别主题,即把文档—词汇矩阵变成文档—主题矩阵(分布)和主题—词汇矩阵(分布)

2 LDA模型构建过程

2.1 LDA生成流程

对于语料库中的每篇文档,LDA定义了如下生成过程(generativeprocess): 1.对每一篇文档,从主题分布中抽取一个主题; 2.从上述被抽到的主题所对应的单词分布中抽取一个单词; 3.重复上述过程直至遍历文档中的每一个单词。

语料库中的每一篇文档与T(通过反复试验等方法事先给定)个主题的一个多项分布 (multinomialdistribution)相对应,将该多项分布记为θ。每个主题又与词汇表(vocabulary)中的V个单词的一个多项分布相对应,将这个多项分布记为φ。

2.2 LDA 整体流程

  • 2.2.1 相关定义
  1. 先定义一些字母的含义:文档集合D,主题(topic)集合T

D中每个文档d看作一个单词序列<w1,w2,...,wn>,wi表示第i个单词,设d有n个单词。(LDA里面称之为wordbag,实际上每个单词的出现位置对LDA算法无影响)

  1. D中涉及的所有不同单词组成一个大集合VOCABULARY(简称VOC),LDA以文档集合D作为输入,希望训练出的两个结果向量(设聚成k个topic,VOC中共包含m个词)
  2. 对每个D中的文档d,对应到不同Topic的概率θd<pt1,...,ptk>,其中,pti表示d对应T中第i个topic的概率。计算方法是直观的,pti=nti/n,其中nti表示d中对应第i个topic的词的数目,n是d中所有词的总数。
  3. 对每个T中的topict,生成不同单词的概率φt<pw1,...,pwm>,其中,pwi表示t生成VOC中第i个单词的概率。计算方法同样很直观,pwi=Nwi/N,其中Nwi表示对应到topict的VOC中第i个单词的数目,N表示所有对应到topic的单词总数。

LDA的核心公式如下: p(w|d)=p(w|t)*p(t|d)

 
推荐文章
爱热闹的作业本  ·  机器学习:随机森林算法的Stata实现_Stata连享会_新浪博客
1 年前
开心的炒饭  ·  刷新和预热CDN节点的缓存资源_CDN(CDN)-阿里云帮助中心
1 年前
冷静的毛豆  ·  Details of the policy definition structure - Azure Policy | Microsoft Learn
1 年前
听话的小刀  ·  商户证书序列号有误。请使用签名私钥匹配的证书序列号 java_heeyaaa的博客-CSDN博客
2 年前
刀枪不入的皮带  ·  用sed命令在文本的行尾或行首添加字符-阿里云开发者社区
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号