主题模型

通俗理解LDA主题模型

回眸只為那壹抹淺笑 提交于 2020-02-12 04:57:22
通俗理解LDA主题模型 0 前言 印象中,最開始听说“LDA”这个名词,是缘于rickjin在2013年3月写的一个LDA科普系列,叫LDA数学八卦,我当时一直想看来着,记得还打印过一次,但不知是由于这篇文档的前序铺垫太长( 如今才意识到这些“铺垫”都是深刻理解LDA 的基础,但假设没有人帮助刚開始学习的人提纲挈领、把握主次、理清思路,则非常easy陷入LDA的细枝末节之中 ),还是由于当中的数学推导细节太多,导致一直没有完整看完过。 2013年12月,在我组织的Machine Learning读书会 第8期 上,@夏粉_百度 讲机器学习中排序学习的理论和算法研究。@沈醉2011 则讲主题模型的理解。又一次碰到了主题模型,当时貌似仅仅记得沈博讲了一个汪峰写歌词的样例。依旧没有理解LDA究竟是怎样一个东西(但理解了LDA之后。再看沈博主题模型的 PPT 会非常赞)。 直到昨日下午。 机器学习班 第12次课上,邹讲完LDA之后,才真正明确LDA原来是那么一个东东!上完课后,趁热打铁,再次看LDA数学八卦,发现曾经看不下去的文档再看时居然一路都比較顺畅。一口气看完大部。看完大部后,思路清晰了。知道理解LDA。能够分为下述5个步骤: 一个函数:gamma函数 四个分布:二项分布、多项分布、beta分布、Dirichlet分布 一个概念和一个理念:共轭先验和贝叶斯框架 两个模型:pLSA

贝叶斯机器学习路线图

无人久伴 提交于 2020-02-12 00:25:16
这是一份贝叶斯机器学习路线图, 正在不断更新中. 路线图由简短的介绍配以相应的学习资源组成, 读者不一定要按顺序学习, 可以直接定位到自己需要的地方. 很多时候, 我们希望自学某个领域的知识, 学习能力是不差的, 但苦于不知该学哪些, 从何学起, 看什么书/视频好? 各个概念/知识点之间是怎样的联系? 这份路线图是为解决以上问题而生的, 对于学习贝叶斯机器学习应该十分有帮助. 若您发现错漏, 欢迎评论指正! 也希望有更多的人愿意分享自己所在领域的"学习路线图"! (注意: 文中部分资源链接需要科学上网方可打开) 本文目录结构如下: 核心主题 中心问题 参数估计 模型比较 非贝叶斯方法 最大似然 正则化 EM算法 基本推断算法 MAP估计 Gibbs采样 马尔科夫链蒙特卡洛(MCMC) 变分推断(Variational inference) 模型 混合高斯 因子分析 隐马尔科夫模型(HMM) 贝叶斯模型比较 贝叶斯信息准则(Bayesian information criterion) 拉普拉斯近似(Laplace approximation) 进阶主题 模型 逻辑回归(Logistic regression) 贝叶斯网络(Bayesian networks) Latent Dirichlet allocation(LDA) 线性动态系统(Linear dynamical

消息的主题和队列

爷,独闯天下 提交于 2020-01-27 00:13:27
一、队列模型   我们常用的的生产者-消费者模式,生成者生成消息,消费者消费已有的消息。消息队列一开始也是使用这种模式称之为队列模型,生产者将消息投递到消息队列中,消费者从消息队列中取出消息,而消息就是已队列的结构存放在消息队列中。但这种模型有个缺点,当这个消息需要被多个消费者消费的时候,需要生产者发送同一条消息到不同的队列,不同的消费者到不同队列上消费到消息。现在比较多的发布-订阅模型。 二、发布-订阅模型   发布者发布消息到主题中,消费者需要提前订阅该主题,就可以接收到发送到这个主题上的消息了。发布者就是之前队列模型的生产者,主题就是队列,订阅者就是之前的消费者。 这样子一条消息需要被多个订阅者消费到就都订阅这个主题就可以了,不需要复制到多个队列上浪费资源。      现在又有一个新问题,主题中的消息为了保证有序性,同一时刻只能有一个订阅者消费,串行效率很低,如何解决这个问题呢? 三、不同MQ使用的模型 RocketMQ使用的是发布-订阅模型。为了解决上述问题,引入了队列,将主题中的消息分散到不同队列中,这样就可以并行的消费了。 Kafka和RocketMQ差不多,只是队列换了一个名称为分区,也是使用的发布-订阅模型。 而RabbitMQ使用的是队列模型,但为了解决多个消费者的问题,引入了exchange的概念。同一个消息需要被多个消费者消费

Django web编程1 -- 创建项目和应用

大憨熊 提交于 2020-01-01 07:45:56
python:3.7.2 Django:2.1.7 1、创建虚拟环境 虚拟环境是系统的一个位置,可以在其中安装包,并将其与其他python包隔离。 创建目录,命名为learning_log,并切换到这个目录下,并创建一个虚拟环境。 $ mkdir learning_log $ cd learning_log/ learning_log$ python3 -m venv ll_env 2、激活虚拟环境并安装Django learning_log$ source ll_env/bin/activate (ll_env)learning_log$ pip3 install Django 3、新建项目 在处于活动的虚拟环境的情况下(ll_env包含在括号内,以下的步骤都是在虚拟环境下),执行如下命令来新建项目: (ll_env)learning_log$ django-admin.py startproject learning_log . # 创建项目,点号是让新项目使用合适的目录结构,不能缺少。 (ll_env)learning_log$ ls # Django新建了一个名为learning_log的目录。它还创建了一个名为manage.py的文件 learning_log ll_env manage.py (ll_env)learning_log$ ls learning_log #

Python编程从入门到实践:Web应用程序 - Django入门

青春壹個敷衍的年華 提交于 2019-12-23 06:00:40
开发系统和开发IDE 开发系统: Ubuntu 16.0.4 LTS 开发IDE: Visual Studio Code 版本: 1.32.3 Python版本: Python3 依赖: Django 2.2 资料《Python编程从入门到实践》书籍 链接: https://pan.baidu.com/s/1USkqvL2dLU3Q9XplVaGQJg 提取码:zoyc GitHub: https://github.com/lichangke/Python3_Project/tree/master/learning_log 1. Django入门 Django(http://djangoproject.com/ ) Django是一个Web框架 ——一套用于帮助开发交互式网站的工具。 学习如何使用Django来开发一个名为“学习笔记”(Learning Log) 的项目, 这是一个在线日志系统, 让你能够记录所学习的有关特定主题的知识。 1.1 建立项目 阶段代码:GitHub learning_log_1.1_建立项目 不包括虚拟环境ll_env文件夹下文件 1.1.1 建立虚拟环境 虚拟环境 是系统的一个位置, 你可以在其中安装包, 并将其与其他Python包隔离,将项目的库与其他项目分离是有益的。 为项目新建一个目录, 将其命名为learning_log

【文智背后的奥秘】系列篇——文本聚类系统

感情迁移 提交于 2019-12-22 19:56:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/131 来源:腾云阁 https://www.qcloud.com/community 一.文本聚类概述 文本聚类是文本处理领域的一个重要应用,其主要目标是将给定的数据按照一定的相似性原则划分为不同的类别,其中同一类别内的数据相似度较大,而不同类别的数据相似度较小。聚类与分类的区别在于分类是预先知道每个类别的主题,再将数据进行划分;而聚类则并不知道聚出来的每个类别的主题具体是什么,只知道每个类别下的数据相似度较大,描述的是同一个主题。因此,文本聚类比较适合用于大数据中热点话题或事件的发现。 文智平台提供了一套文本聚类的自动化流程,它以话题或事件作为聚类的基本单位,将描述同一话题或事件的文档聚到同一类别中。用户只需要按照规定的格式上传要聚类的数据,等待一段时间后就可以获得聚类的结果。通过文本聚类用户可以挖掘出数据中的热门话题或热门事件,从而为用户对数据的分析提供重要的基础。本文下面先对文本聚类的主要算法作介绍,然后再具体介绍文智平台文本聚类系统的原理与实现。 二.文本聚类主要算法 文本聚类需要将每个文档表示成向量的形式,以方便进行相似度的计算。词袋模型(bag of

如何自学一个领域?这里有一份全指南

帅比萌擦擦* 提交于 2019-12-14 11:10:56
编者按:本文来自微信公众号“L先生说”(ID:lxianshengmiao),作者Lachel。 以前写过不少跟学习相关的文章,但大都是集中于某个点,欠缺系统性。 今天,我想通过这篇详细的文章,把「学习」这个问题,简单梳理一下。 当然,这是一个巨大的话题,难免挂一漏万。以后有机会,再慢慢补充,形成一整个关于学习的系列。 希望能够帮到你。 框架 不少读者朋友问过我「刚刚入门一个领域,什么都不懂,怎么学?」我的回答永远都是一样的: 一定要先从搭框架开始。 什么叫搭框架呢?简而言之,就是给你的大脑一个铺垫,让它准备好,告诉它:在未来的日子里,我们将会大量吸收这个领域的知识,请做好理解和储存它们的准备。 举个例子:当你撰写一份策划方案、报告时,你第一步是不是先有一个整体构思,列一个大纲:我先写什么,然后写什么,最后写什么 —— 接下去才开始动手? 学习也是一样的。如果缺少了框架,你所有获取的知识,就只是碎片信息而已。它们会孤零零地漂浮在记忆里,难以稳固存在,也难以被你所调用、组织、整合。 那么,如何搭建框架,令我们的学习更加体系化呢? 我建议的方法,是去搜寻这个领域相关的经典教材,大约3-5本。然后读一遍 —— 无需一字不漏地精读,这太花时间了。大致翻一遍、通读一遍,就可以。 在这个过程中,你需要思考和回答这三个问题: What:这个领域研究的对象是什么?有哪些主要流派和分支

系统学习消息队列分享(四) 消息模型:主题和队列有什么区别?

烂漫一生 提交于 2019-12-12 16:57:19
这节课我们来学习消息队列中像队列、主题、分区等基础概念。这些基础的概念,就像我们学习一门编程语言中的基础语法一样,你只有搞清楚它们,才能进行后续的学习。 如果你研究过超过一种消息队列产品,你可能已经发现,每种消息队列都有自己的一套消息模型,像队列(Queue)、主题(Topic)或是分区(Partition)这些名词概念,在每个消息队列模型中都会涉及一些,含义还不太一样。 为什么出现这种情况呢?因为没有标准。曾经,也是有一些国际组织尝试制定过消息相关的标准,比如早期的 JMS 和 AMQP。但让人无奈的是,标准的进化跟不上消息队列的演进速度,这些标准实际上已经被废弃了。 那么,到底什么是队列?什么是主题?主题和队列又有什么区别呢?想要彻底理解这些,我们需要从消息队列的演进说起。 主题和队列有什么区别? 在互联网的架构师圈儿中间,流传着这样一句不知道出处的名言,我非常认同和喜欢:好的架构不是设计出来的,而是演进出来的。 现代的消息队列呈现出的模式,一样是经过之前的十几年逐步演进而来的。 最初的消息队列,就是一个严格意义上的队列。在计算机领域,“队列(Queue)”是一种数据结构,有完整而严格的定义。在维基百科中,队列的定义是这样的: 队列是先进先出(FIFO, First-In-First-Out)的线性表(Linear List)。在具体应用中通常用链表或者数组来实现

MQ的Queue与Topic区别

只谈情不闲聊 提交于 2019-12-06 16:43:22
队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型: 1、点对点(point-to-point,简称PTP)Queue消息传递模型: 通过该消息传递模型,一个应用程序(即消息生产者)可以向另外一个应用程序(即消息消费者)发送消息。在此传递模型中,消息目的地类型是队列(即Destination接口实现类实例由Session接口实现类实例通过调用其createQueue方法并传入队列名称而创建)。消息首先被传送至消息服务器端特定的队列中,然后从此对列中将消息传送至对此队列进行监听的某个消费者。同一个队列可以关联多个消息生产者和消息消费者,但一条消息仅能传递给一个消息消费者。如果多个消息消费者正在监听队列上的消息,JMS消息服务器将根据“先来者优先”的原则确定由哪个消息消费者接收下一条消息。如果没有消息消费者在监听队列,消息将保留在队列中,直至消息消费者连接到队列为止。这种消息传递模型是传统意义上的懒模型或轮询模型。在此模型中,消息不是自动推动给消息消费者的,而是要由消息消费者从队列中请求获得。 2、发布/订阅(publish/subscribe,简称pub/sub)Topic消息传递模型: 通过该消息传递模型,应用程序能够将一条消息发送给多个消息消费者。在此传送模型中,消息目的地类型是主题

设计能力(一)

我是研究僧i 提交于 2019-12-05 02:27:14
说说概要设计 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。 概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。 你如何划分领域边界 # 【领域驱动设计】浅谈聚合的划分与设计 聚合以及聚合根是领域驱动设计中的重要概念,根据定义,聚合是针对数据变化可以考虑成一个单元的一组相关的对象。聚合使用边界将内部和外部的对象划分开来。每个聚合有一个根。这个根是一个实体,并且它是外部可以访问的唯一的对象。根可以保持对任意聚合对象的引用,并且其他的对象可以持有任意其他的对象,但一个外部对象只能持有根对象的引用。如果边界内有其他的实体,那些实体的标识符是本地化的,只在聚合内有意义(参见《领域驱动设计-精简版》第42页)。从定义上看,貌似针对特定上下文的领域模型来讲,聚合的划分与设计并不那么困难