主题模型

python专业方向 | 文本相似度计算

拥有回忆 提交于 2019-12-04 21:05:07
作者系浙江大学生物医学工程专业的硕士在读;专注于 自然语言处理 iOS开发。 步骤 1、分词、去停用词 2、词袋模型向量化文本 3、TF-IDF模型向量化文本 4、LSI模型向量化文本 5、计算相似度 理论知识 两篇中文文本,如何计算相似度?相似度是数学上的概念,自然语言肯定无法完成,所有要把文本转化为向量。两个向量计算相似度就很简单了,欧式距离、余弦相似度等等各种方法,只需要中学水平的数学知识。 那么如何将文本表示成向量呢? 词袋模型 最简单的表示方法是词袋模型。把一篇文本想象成一个个词构成的,所有词放入一个袋子里,没有先后顺序、没有语义。 例如: John likes to watch movies. Mary likes too. John also likes to watch football games. 这两个句子,可以构建出一个词典,key为上文出现过的词,value为这个词的索引序号 {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10} 那么,上面两个句子用词袋模型表示成向量就是: [1, 2, 1, 1, 1, 0, 0, 0, 1, 1] [1, 1,1, 1, 0, 1, 1, 1,

python文本相似度计算

落爺英雄遲暮 提交于 2019-12-04 21:01:47
步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识 两篇中文文本,如何计算相似度?相似度是数学上的概念,自然语言肯定无法完成,所有要把文本转化为向量。两个向量计算相似度就很简单了,欧式距离、余弦相似度等等各种方法,只需要中学水平的数学知识。 那么如何将文本表示成向量呢? 词袋模型 最简单的表示方法是词袋模型。把一篇文本想象成一个个词构成的,所有词放入一个袋子里,没有先后顺序、没有语义。 例如: John likes to watch movies. Mary likes too. John also likes to watch football games. 这两个句子,可以构建出一个词典,key为上文出现过的词,value为这个词的索引序号 {“John”: 1, “likes”: 2,”to”: 3, “watch”: 4, “movies”: 5,”also”: 6, “football”: 7, “games”: 8,”Mary”: 9, “too”: 10} 那么,上面两个句子用词袋模型表示成向量就是: [1, 2, 1, 1, 1, 0, 0, 0, 1, 1] [1, 1,1, 1, 0, 1, 1, 1, 0, 0] 相对于英文,中文更复杂一些,涉及到分词。准确地分词是所有中文文本分析的基础

用户画像

ε祈祈猫儿з 提交于 2019-12-03 04:34:31
原文链接: https://blog.csdn.net/zw0Pi8G5C1x/article/details/83964888 导读:用户画像将产品设计的焦点放在目标用户的动机和行为上,从而避免产品设计人员草率地代表用户。产品设计人员经常不自觉的把自己当作用户代表,根据自己的需求设计产品,导致无法抓住实际用户的需求。往往对产品做了很多功能的升级,用户却觉得体验变差了。 在大数据领域,用户画像的作用远不止于此。用户的行为数据无法直接用于数据分析和模型训练,我们也无法从用户的行为日志中直接获取有用的信息。而将用户的行为数据标签化以后,我们对用户就有了一个直观的认识。 同时计算机也能够理解用户,将用户的行为信息用于个性化推荐、个性化搜索、广告精准投放和智能营销等领域。 作者:马海平 于俊 吕昕 向海 本文摘编自《Spark机器学习进阶实战》,如需转载请联系我们 01 概述 用户画像的核心工作就是给用户打标签,标签通常是人为规定的高度精炼的特征标识,如年龄、性别、地域、兴趣等。这些标签集合就能抽象出一个用户的信息全貌,如图10-1所示是某个用户的标签集合,每个标签分别描述了该用户的一个维度,各个维度之间相互联系,共同构成对用户的一个整体描述。 ▲图10-1 用户标签集合 02 用户画像流程 1. 整体流程 我们对构建用户画像的方法进行总结归纳,发现用户画像的构建一般可以分为目标分析

lda主题模型python实现篇

匿名 (未验证) 提交于 2019-12-02 22:54:36
个人博客地址: http://xurui.club/ 最近在做一个动因分析的项目,自然想到了主题模型LDA。这次先把模型流程说下,原理后面再讲。 lda实现有很多开源库,这里用的是gensim. 大概说下文本的样子,LDA是无监督模型,也就是说不需要标签,只要传入文本就好。LDA要学习文档-主题分布和主题-词分布,所以我们把一个人的数据join在一起作为一条文档。对文档进行分词,使用的jieba分词工具包。注意,这里要做去停用词处理,包括标点和一些没用的词,如“呵呵”,“哈哈”。做项目时,第一版没有去无用词,最后提出的主题都是“你”“我”“他”“你好”这样的东西,去掉之后可以较好提高结果质量。 即将所有文档数表示成m*n的矩阵D,m表示有m篇文档,n表示这篇文档有n个词,n不定长。 用gensim.corpora.Dictionary包 这个包讲下吧 from gensim.corpora import Dictionary text = [['我', '想吃', '大龙虾', '和', '烤猪蹄']] dictionary = Dictionary(text) print ((dictionary)) doc = dictionary.doc2bow([ '我' , '想吃' , '大龙虾' , '和' , '我' , '你' , '烤猪蹄' ]) print (doc) ###

Python之LDA主题模型算法应用

匿名 (未验证) 提交于 2019-12-02 22:51:30
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 ( Creative Commons ) 在这篇文章中,我将介绍用于Latent Dirichlet Allocation(LDA)的lda Python包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。然而,这个模型的主要参考,Blei etal 2003可以在线免费获得,我认为将语料库(文档集)中的文档分配给基于单词矢量的潜在(隐藏)主题的主要思想是相当容易理解的而这个例子(来自lda)将有助于巩固我们对LDA模型的理解。那么,让我们开始...... 安装lda 在之前的帖子中,我介绍了使用 pip virtualenwrapper 安装Python包,请参阅帖子了解更多详细信息: 在Ubuntu 14.04上安装Python包 在Ubuntu 14.04上的virtualenv和virtualenvwrapper 简而言之,我将提到两种方法: 方法1 : 我将以用户身份安装lda $ pip install --user lda 这也将安装所需的 pbr 包。现在我将 在一个设置中提供lda,其中包含我之前安装的所有其他软件包(再次参见上文)。使用此方法,您应该在安装后得到类似的内容: $ pip show lda --- 名称:lda 版本:0.3.2 位置:/home

机器学习-LDA主题模型笔记

左心房为你撑大大i 提交于 2019-12-01 02:05:22
LDA常见的应用方向:   信息提取和搜索(语义分析);文档分类/聚类、文章摘要、社区挖掘;基于内容的图像聚类、目标识别(以及其他计算机视觉应用);生物信息数据的应用; 对于朴素贝叶斯模型来说,可以胜任许多文本分类问题,但无法解决语料中一词多义和多词一义的问题--它更像是词法分析,而非语义分析。如果使用词向量作为文档的特征,一词多义和多词一义会造成计算文档间相似度的不准确性。LDA模型通过 增加“主题” 的方式,一定程度的解决上述问题:   一个词可能被映射到多个主题中,即,一词多义。多个词可能被映射到某个主题的概率很高,即,多词一义。 LDA涉及的主要问题 1)共轭先验分布 2)Dirichlet分布 3)LDA模型   Gibbs采样算法学习参数 共轭先验分布   由于x为给定样本,P(x)有时被称为“证据”,仅仅是归一化因子,如果不关心P(θ|x)的具体值,只考察θ取何值时后验概率P(θ|x)最大,则可将分母省去。         在贝叶斯概率理论中,如果后验概率P(θ|x)和先验概率p(θ)满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。 Dirichlet分布   在学习Dirichlet分布之前先复习以下二项分布的最大似然估计:   投硬币试验中,进行N次独立试验,n次朝上,N-n次朝下。假定朝上的概率为p

主题模型TopicModel:主题模型LDA的应用

夙愿已清 提交于 2019-11-28 22:46:04
http:// blog.csdn.net/pipisorry/article/details/45665779 主题模型LDA的应用 拿到这些topic后继续后面的这些应用怎么做呢: 除了推断出这些主题,LDA还可以推断每篇文章在主题上的分布。例如,X文章大概有60%在讨论“空间探索”,30%关于“电脑”,10%关于其他主题。 这些主题分布可以有多种用途: 聚类: 主题是聚类中心,文章和多个类簇(主题)关联。聚类对整理和总结文章集合很有帮助。参看Blei教授和Lafferty教授对于Science杂志的文章生成的总结。点击一个主题,看到该主题下一系列文章。 特征生成:LDA可以生成特征供其他机器学习算法使用。如前所述,LDA为每一篇文章推断一个主题分布;K个主题即是K个数值特征。这些特征可以被用在像逻辑回归或者决策树这样的算法中用于预测任务。 降维:每篇文章在主题上的分布提供了一个文章的简洁总结。在这个降维了的特征空间中进行文章比较,比在原始的词汇的特征空间中更有意义。 排序:The very best ways to sort large databases of unstructured text is to use a technique called Latent Dirichlet allocation (LDA). 皮皮blog 应用于推荐系统 在使用LDA

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

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

消息模型:主题和队列的区别

笑着哭i 提交于 2019-11-28 12:55:24
一、消息队列的演进 1、初始阶段 最初的消息队列,就是一个严格意义上的队列。队列是一种数据结构,先进先出,在消息入队出队过程中,保证这些消息严格有序。 早期的消息队列就是按照“队列”的数据结构设计的 。 队列模型: 生产者(Producer)发消息就是入队操作,消费者(Consumer)收消息就是出队也就是删除操作,服务端存放消息的容器自然就称为“队列”。 如果有多个 生产者往 同一个队列里面发送 消息,这个队列中可以消费到的消息,就是这些生产者生产的所有消息的合集。消息的顺序就是这些生产者 发送消息的自然顺序 。 如果有 多个消费者接收同一个队列 的消息,这些消费者之间实际上是 竞争的关系 ,每个消费者只能收到队列中的一部分消息,也就是说任何 一条消息只能被其中的一个消费者收到 。 2、发布 - 订阅模型阶段 如果需要将 一份消息数据分发给多个消费者 ,要求 每个消费者都能收到全量的消息 ,例如,对于一份订单数据,风控系统、分析系统、支付系统等都需要接收消息。 这个时候,单个队列就满足不了需求,一个可行的解决方式是,为 每个消费者创建一个单独的队列,让生产者发送多份 。但是同样的一份消息数据被复制到多个队列中会 浪费资源 ,更重要的是,生产者必须知道有多少个消费者。为每个消费者单独发送一份消息,这实际上 违背了消息队列“解耦” 这个设计初衷。 为了解决这个问题

关于数据仓库的自问

て烟熏妆下的殇ゞ 提交于 2019-11-27 02:58:59
1、为什么要建设数据仓库? 为了更快更好的响应业务上的分析需求。 1.1、数据仓库建设方法? 建设流程:梳理业务主题--》ER图(ER模型)--》逻辑建模(关系模型)。其中,数据仓库建设过程即ER图到关系模型的实现过程,数仓模型也属于关系模型中的一种,只是在此基础上需要考虑几个问题: 1)哪些维度对分析主题有用? 2)如何使用当前数据建设维表? 3)用什么指标度量主题? 4)如何使用当前数据建设事实表? 2、为什么要做元数据管理? 为了更好的管理不同层级数据表的属性,以及其间的关联关系、父子关系,以实现快速追溯、核查。 3、为什么要做数据质量管理? 为了保证数据的完整性、准确性、一致性、及时性。一旦数据质量出现问题,任何用数据作支撑的业务分析都是无效的。 3.1、数据质量管理办法? 1)完整性 2)准确性 3)一致性 4)及时性 来源: https://www.cnblogs.com/sherial/p/11340159.html