lda

gensim.interfaces.TransformedCorpus - How use?

守給你的承諾、 提交于 2020-04-10 03:31:49
问题 I'm relative new in the world of Latent Dirichlet Allocation. I am able to generate a LDA Model following the Wikipedia tutorial and I'm able to generate a LDA model with my own documents. My step now is try understand how can I use a previus generated model to classify unseen documents. I'm saving my "lda_wiki_model" with id2word =gensim.corpora.Dictionary.load_from_text('ptwiki_wordids.txt.bz2') mm = gensim.corpora.MmCorpus('ptwiki_tfidf.mm') lda = gensim.models.ldamodel.LdaModel(corpus=mm,

Is it possible to compute Document similarity for every document in an LDA corpus?

假如想象 提交于 2020-03-21 05:12:29
问题 I am going through this Notebook about LDA and Document Similarity: https://www.kaggle.com/ktattan/lda-and-document-similarity In this Notebook the Document similarity for a small set of documents gets computed however I want to compute the similarity for the whole corpus. Instead of using test_df like in the Notebook: new_bow = dictionary.doc2bow(test_df.iloc[random_article_index,7]) new_doc_distribution = np.array([tup[1] for tup in lda.get_document_topics(bow=new_bow)]) I want to use train

Understanding parameters in Gensim LDA Model

久未见 提交于 2020-03-18 05:32:04
问题 I am using gensim.models.ldamodel.LdaModel to perform LDA, but I do not understand some of the parameters and cannot find explanations in the documentation. If someone has experience working with this, I would love further details of what these parameters signify. Specifically, I do not understand: random_state update_every chunksize passes alpha per_word_topics I am working with a corpus of 500 documents which are roughly around 3-5 pages each (I unfortunately cannot share a snapshot of the

基于LDA的SRDA算法

☆樱花仙子☆ 提交于 2020-03-04 17:27:25
LDA 线性判别分析 (LDA)是一种常用的保持类别可分性的特征提取方法。LDA的投影函数通常是通过 最大化类间协方差和同时最小化类内协方差 得到的。它被广泛应用于信息处理的许多领域,如机器学习、数据挖掘、信息检索和模式识别等。然而,LDA的计算涉及到密集矩阵的特征分解,这在时间和内存上都很昂贵。具体来说,LDA具有O(m n t+t3)时间复杂度,需要O(m n+mt+nt)内存,其中m是样本数,n是特征数,t=min(m,n)。当m和n都较大时,应用LDA是不可行的。 基于统计分析的子空间方法 分析人脸识别的主流方法是基于统计分析的子空间方法 人脸的图像维数通常很大,而其在高维空间分布很不紧凑,不利于分类,而且计算复杂度很大,因此通常将图像投影到低维的子空间进行判别。 子空间方法是根据一定目标来找线性或者非线性的变换,使原始信号压缩到一个低维的子空间中,让数据在该子空间的分布更加紧凑为数据的描述提供更好的手段,并且使其计算复杂度降低。 子空间有向图嵌入 用一个低维向量来表示图上的点,此向量保持了数据点间的相似度,此相识度可通过具有数据点集统计或者几何性的相似矩阵来描述。 点的向量表达式由一定约束条件下拉普拉斯矩阵的主要特征值对应的特征向量确定。 谱方法理论 谱方法是数学领域里一种经典的分析和代数方法,在高维数据的低维表示和聚类问题中有着广泛的应用。

PCA与LDA

我们两清 提交于 2020-03-03 11:48:00
PCA: “最能代表原始数据”希望降维后的数据不能失真,也就是说,被PCA降掉的那些维度只能是那些噪声或是冗余的数据。 1:冗余,就是去除线性相关的向量(纬度),因为可以被其他向量代表,这部分信息量是多余的。 2:噪声,就是去除较小特征值对应的特征向量。 因为特征值的大小就反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,换句话说这个方向上的元素更分散。 LDA: Fisher判别分析的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、不同类样例的投影点尽可能远离。在对新样本进行分类时,将其投影到同样的这条直线上,再根据新样本投影点的位置来确定它的类别。 ——周志华《机器学习》 PCA vs LDA LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。 首先我们看看相同点: 1、两者均可以对数据进行降维 2、两者在降维时均使用了矩阵特征分解的思想 3、两者都假设数据符合高斯分布 我们接着看看不同点: 1、LDA是有监督的降维方法,而PCA是无监督的降维方法 2、LDA降维最多降到类别数k-1的维数,而PCA没有这个限制 3、LDA除了可以用于降维,还可以用于分类 4、LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向 来源: CSDN 作者:

使用LDA进行数据降维与分类

青春壹個敷衍的年華 提交于 2020-02-25 22:48:07
LDA是一种以目标: 类重心点距离最大 类内点距离小 但是对于情况:两个类重心点很近,但是各个点距离很远的情况,适用性不好。下面举个例子。 1、数据生成 首先建立一个函数 %生成一系列园点 function [x1,y1] = creat_circle(r1 , r1_ratio,sita_ratio) sita = 0:0.05:2*pi; all_num = size(sita); all_num = all_num(1,2); %rand : sita sita_p = randperm(all_num,floor(sita_ratio*all_num)); %rand : r r_p = rand(1,floor(sita_ratio*all_num))*r1*r1_ratio; r1_p = repmat(r1,1,floor(sita_ratio*all_num)); r1_p = r1_p - r_p; x1 = r1_p.*cos(sita_p); y1 = r1_p.*sin(sita_p); scatter(x1,y1) 然后使用程序(matlab) clear;clc;close all; [x1,y1] = creat_circle(3,0.05,0.95); [x2,y2] = creat_circle(5,0.05,0.95); [x3,y3] =

LDA主题模型学习相关的书籍介绍

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-25 15:33:05
关于LDA主题模型,一度是NLP领域一个非常火的模型,后来深度学习大放异彩,它的热度才慢慢降了下来。 由于数学基础很差,一直没有理解LDA的整个核心。到目前为止,也只是理解了皮毛。记录一下关于LDA主题模型相关的学习资料。 LDA主题模型属于编码简单,但是数学功底要求较高的一个机器学习模型,在搜索引擎和广告领域有用到。按照《LDA 数学八卦》作者靳志辉老师的说法,是一个比较简单的模型,前提是需要数学功底扎实。如果统计学基础扎实,理解LDA主题模型基本是一马平川。 理解LDA主题模型,其实包含4大块的内容: 微积分基础,概率论与数理统计基础, 随机模拟算法, 文本建模思路。LDA数学八卦讲解的思路就是微积分-分布函数-随机模拟-文本建模这条主线的。个人认为,如果数学基础比较差的话,光靠《LDA数学八卦》是很难理解清楚LDA主题模型的。出于弥补数学短板的目的,也是出于兴趣,我前后看了一些书。如下的书籍我觉得还是不错的。 微积分基础 《普林斯顿微积分读本》 这本书从高中数学的基本函数开始,到微积分的各种技巧。讲解细致,学习曲线平缓。 如果这本书觉得枯燥,可以配合如下的4本科普入门。 《数学悖论与三次数学危机》 《天才引导的历程:数学中的伟大定理》 《微积分的历程:从牛顿到勒贝格》 《简单微积分 : 学校未教过的超简易入门技巧》 这几本书下来,不敢说理解微积分了

LDA Mallet CalledProcessError

痴心易碎 提交于 2020-02-24 10:14:39
问题 I am trying to implement the following code: import os os.environ.update({'MALLET_HOME':r'c:/mallet-2.0.8/'}) mallet_path = 'C:\\mallet-2.0.8\\bin\\mallet' ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=bow, num_topics=20, id2word=dictionary) However, I keep getting this error: CalledProcessError: Command 'C:\mallet-2.0.8\bin\mallet import-file --preserve-case --keep-sequence --remove-stopwords --token-regex "\S+" --input C:\Users\Joshua\AppData\Local\Temp\98094d_corpus.txt

Calculating topic distribution of an unseen document on GenSim

雨燕双飞 提交于 2020-02-22 08:48:48
问题 I am trying to use LDA module of GenSim to do the following task "Train a LDA model with one big document and keep track of 10 latent topics. Given a new, unseen document, predict probability distribution of 10 latent topics". As per tutorial here: http://radimrehurek.com/gensim/tut2.html, this seems possible for a document in a corpus, but I am wondering if it it would be possible for an unseen document. Thank you! 回答1: From the documentation you posted it looks like you can train your model

也说说LDA(Latent Dirichlet Allocation)——理论篇

ぃ、小莉子 提交于 2020-02-12 05:43:50
[本文链接: http://www.cnblogs.com/breezedeus/archive/2013/01/20/2868930.html ,转载请注明出处。] LDA是个generative model,它首先从Dirichlet分布Dir(β)中抽取每个topic对应的参数 ,然后语料集D中第j篇文档 的产生方式如下: 1. 选择文档长度: N ~ Poission(ξ) ; 2. 选择文档参数: θ ~ Dir(α) ; 3. 按照以下方式选取文档中的每个词 : (a) 选择一个topic: (b) 从W个词中选取出此词: LDA的图表示如下,其中z、θ和Φ为隐藏变量,α和β为超参数。 利用上面LDA的产生假设,可以得到x、z、θ和Φ的联合分布为: 其中 , 和 。 为了最大化 ,常用的方法就是基于Variational Bayes(简称 VB ,也叫Variational EM)的mean field近似方法,这也是LDA最初提出时作者使用的求解方法[1]。这种方法在Graphical models用的很多,不熟悉的同学可以参考我在学校时写的一个 介绍pdf 。记z、θ和Φ的后验分布的mean fields近似为: 其中 为Multinomial分布,而 都是Dirichlet分布。容易验证下面的不等式成立: 其中 。 VB通过最小化variational free