一、主题模型解决了哪些问题

1、主题模型的概念:主题模型是提取文本 抽象主题相似度 的一种统计模型,自动分析每个文档,统计文档内词语,根据统计的信息判断当前文档包含哪些主题以及各个主题所占比例各为多少(将原来 文档-单词 的高维特征数组 >>>>> 文档-主题 的低维数组,因此主题模型可以起到降维的作用)
2、传统判断文本相似度方法缺点:传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少(词袋法(单词的个数),TF-IDF等方法),但是这种做法有两个缺点:① 法没有考虑到文字背后的语义关联 ② 在两个文档共同出现的单词很少甚至没有
3、主题模型解决的问题:① 考虑到文字背后的语义关联,提取了文本之间主题的相似度,克服了相似内容文本却 含有较少相同词汇 的文本相似度判断问题。用这个主题相似度去做文本分类/聚类。③ 原来 文档-单词 的高维特征数组 >>>>> 文档-主题 的低维数组,因此主题模型可以起到降维的作用
4、主题模型的最终目的:提取每一个文本 各个抽象主题的概率有多高。后续利用提取的主题相似度来进行文本分类、文本聚类。
5、主题模型(LSA、NMF、LDA)应用场景:① 提取文本的关键信息特征(主题相似度)② 降维(将 文档-单词  >>>> 文档-主题)③ 做推荐   

二、主题模型的基本思想

• 主题模型是对文本中隐含主题的一种建模方法,每个主题其实是词表上单词的概率分布; 

     如图:

  •     主题模型公式:

三、常见的三种主题模行

1、LSA 潜在语义分析(Latent Semantic Analysis, LSA)

1、LSA的思想:LSA用的是纯 SVD矩阵分解的思想,但它并没有获取分解后 u singma v 三个矩阵所有的数据,仅仅截取了奇异值较大的那一部分数据,目的:在信息损失较小的情况下减少大量的计算量。
2、LSA优缺点:优点:① 原理简单,一次SVD分解即可得到主题模型,可以同时解决词义的问题。 缺点:① SVD计算量很大,在数据量较大的情况下计算有些困难② LSA用的是纯SVD分解,SVD分解后的矩阵存在负值,这对后面计算有不好的影响。③ LSA用的是SVD分解,它不是一个概率统计模型,缺乏统计基础,结果难以直观的解释。④ LSA 主题 数量的选取对于结果的影响非常大,很难选择合适的k值;
3、LSA应用场景:数据规模比较小,而且希望快速的粗粒度的找出一 些主题分布关系,否则我们一般不会使用LSA主题模型
4、LSA transform 结果是矩阵分解的结果(文档-主题),并不是概率值;后续可以会根据欧几里得距离、余弦相似度... 判断相似度。

(1)SVD矩阵分解截取

(2)LSA 矩阵解参数

  •      LSA案例

题目:LSA 主题提取

结果:

2、NMF 非负矩阵分解

1、NMF模型的思想: NMF虽然和SVD一样都是矩阵分解,但是NMF不同的是:它的目标希望是 将矩阵分解成为两个子矩阵,两个子矩阵中所有的值均大于等于0。
2、NMF模型的使用场景:常用于矩阵分解、降维、主题模型等应用场景
3、NMF优缺点:优点:缺点:
参考:https://www.csie.ntu.edu.tw/~cjlin/papers/pgradnmf.pdf
4、NMF transform 结果是矩阵分解的结果(文档-主题),并不是概率值;后续可以会根据欧几里得距离、余弦相似度... 判断相似度。

(1)NMF理论公式

(2)NMF模型参数推导

          1)基本模型

         2)基本模型 + 正则化项

  • 坐标轴下降法优化  基本模型 + 正则化项

                                参考:常见模型参数优化方法

3、LDA  隐含狄利克雷分布(Latent Dirichlet Allocation, LDA)

(1)分布 基础知识:

  • 概率知识

  • 分布

           1)二项分布

                    2)多项分布

3)Beta分布

1、Beta分布是二项分布的共轭分布,是指一组定义在(0,1)区间的 连续概率分布,Beta分布是二项分布的推广, Dirichlet分布是 Beta分布的推广

 

                    4)Dirichlet分布

(2)LDA 基础知识

• 隐含狄利克雷分布(Latent Dirichlet Allocation, LDA)是一种基于贝叶斯算 法模型,利用先验分布对数据进行似然估计并最终得到后验分布的一种方式。 LDA是一种比较常用的主题模型。
• LDA的一个假设:假设文档主题是多项分布,多项分布的参数(先验概率分布)是服从Dirichlet 分布,其实LDA是一种三层的贝叶斯模型。
1、LDA transform 结果是矩阵分解的结果(文档-主题),是概率值,不同于NMF、LSA的矩阵分解结果,LDA是一种基于贝叶斯公式的概率模型;

  •    LDA主题模型图解: 

  •     LDA主题模型执行过程

四、主题模型API

安装lda, eg: pip install lda                   ------- python包

scikit-learn LDA主题模型:sklearn.decomposition.LatentDirichletAllocation属性方法参考:https://www.cnblogs.com/pinard/p/6908150.html  

主题模型LDA、NMF、LSA相关推荐

  1. 主题模型 LDA,Dirichlet分布 和朴素贝叶斯算法

    主题模型 主题模型(topic model)是以非监督学习的方式对文集的隐含语义结构(latent semantic structure)进行聚类(clustering)的统计模型. 主题模型主要被用 ...

  2. python主题建模_在PYTHON中进行主题模型LDA分析

    原文链接:在PYTHON中进行主题模型LDA分析​tecdat.cn 主题建模是一种在大量文档中查找抽象主题的艺术方法.一种作为监督无的机器学习方法,主题模型不容易评估,因为没有标记的"基础 ...

  3. 狄利克雷分布主题模型LDA

    狄利克雷分布主题模型LDA 文章目录 狄利克雷分布主题模型LDA 1.整体把握LDA 2.前提知识 2.1 gamma函数 2.2 四个分布 2.2.1 二项分布 2.2.2 多项分布 2.2.3 B ...

  4. 主题模型 LDA 入门(附 Python 代码)

    一.主题模型 在文本挖掘领域,大量的数据都是非结构化的,很难从信息中直接获取相关和期望的信息,一种文本挖掘的方法:主题模型(Topic Model)能够识别在文档里的主题,并且挖掘语料里隐藏信息,并且 ...

  5. 主题模型对比:LSA、pLSA、LDA

    LSA 潜语义模型,通过矩阵分解SVD的方式将词和文档映射到潜在语义空间 应用:计算相似度,可以进行 1)词汇/文档分类  2)检索 缺点:1)尽管LSA的U和V矩阵每一列可以看作一个话题,但是无法解 ...

  6. lda主题模型应用java_主题模型LDA及在推荐系统中的应用

    1 关于主题模型 使用LDA做推荐已经有一段时间了,LDA的推导过程反复看过很多遍,今天有点理顺的感觉,就先写一版.隐含狄利克雷分布简称LDA(latent dirichlet allocation) ...

  7. 系统学习NLP(二十二)--主题模型LDA

    转自:https://blog.csdn.net/kisslotus/article/details/78427585 原文更详细,这里删减了不少 1. 简介 在机器学习领域,LDA是两个常用模型的简 ...

  8. NLP自然语言处理—主题模型LDA案例:挖掘人民网留言板文本数据

    全文链接:tecdat.cn/?p=2155 随着网民规模的不断扩大,互联网不仅是传统媒体和生活方式的补充,也是民意凸显的地带.领导干部参与网络问政的制度化正在成为一种发展趋势,这种趋势与互联网发展的 ...

  9. lda主题模型 python_主题模型LDA

    主题模型,说实话之前学的时候还真没见过,所以看到这一章的时候感觉很是疑惑,不知道主题模型是要干什么.看完后感觉这个主题模型应该是nlp中的一种特殊的聚类方式,可以通过对文档提取主题,然后根据不同的主题 ...

最新文章

  1. 采用个hook技术对writefile函数进行拦截(2)
  2. sql server中的varchar和Nvarchar有什么区别?
  3. linux下移除环境变量及mkdir命令介绍
  4. jquery 获取同级元素_如何在jQuery中获取元素的同级
  5. DaleCloud(原NFine)介绍二:系统菜单及菜单按钮权限控制
  6. vista任务管理器_为什么我的Windows Vista资源管理器发送到菜单挂起或打开缓慢?...
  7. html5前端图片压缩,大小可配置
  8. Android WebView 无法下载文件的问题
  9. 自建KMS激活服务器
  10. excel 合并单元格筛选
  11. python 绘制三维图
  12. HDFS--Secondary NameNode
  13. openssl下载与安装
  14. Outlook 2013 pst/ost邮件数据文件迁移实现
  15. 计算机我要学到什么水平?
  16. 国内PLM用户满意度调研完整版
  17. 【ZYNQ】裸机 PS + PL 双网口实现之 lwip 库文件修改
  18. C语言-构造数据类型
  19. 实现原理 扫描枪_扫描枪的工作原理
  20. 弹性工作制让企业留得住人

热门文章

  1. 如何将mp4转换成gif?教你一招实现视频转gif高清转换
  2. insmod 加载模块过程、modprobe 与 insmod的区别 、lsmod命令
  3. php 两种递归方法
  4. 哪有计算机课程,计算机基础课程的目标有以下哪几个( ? ?)
  5. xilinx vivado 2019 cordic ip 计算sin cos
  6. oppo手机怎么查计算机记录,oppo怎样查通话记录(oppo手机怎么查以前的通话记录)...
  7. python.exe: No module named pip以及pycharm下载插件失败等问题
  8. POJO、JavaBean和EJB的区别
  9. 比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!
  10. Python特殊运算符号(幂运算,除法运算)