gensim_主题提取

# https://blog.csdn.net/whzhcahzxh/article/details/17528261
# gensim包中引用corpora,models, similarities,分别做语料库建立,模型库和相似度比较库

from gensim import corpora, models, similarities
import jieba
sentences = ["我喜欢吃土豆","土豆是个百搭的东西","我不喜欢今天雾霾的北京"]
words=[]
for doc in sentences:
words.append(list(jieba.cut(doc)))


#得到的分词结果构造词典
dic = corpora.Dictionary(words)

# 词典生成好之后,就开始生成语料库了
corpus = [dic.doc2bow(word) for word in words]

#TF-IDF变换
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]


# 训练LSI模型,假定三句话属于2个主题,
print('>>>>>>LSI>>>>>>>')
lsi = models.LsiModel(corpus_tfidf, id2word=dic, num_topics=2)
## 建立的两个主题模型内容
## lsiout=lsi.print_topics(2)
# 将文章投影到主题空间中
corpus_lsi = lsi[corpus_tfidf]
for doc in corpus_lsi:
print(doc)

'''
[(0, -0.70861576320682107), (1, 0.1431958007198823)]
[(0, -0.42764142348481798), (1, -0.88527674470703799)]
[(0, -0.66124862582594512), (1, 0.4190711252114323)]

'''
print('>>>>>>LDA>>>>>>>')
# 接着训练LDA模型,假定三句话属于2个主题,
lda = models.LdaModel(corpus_tfidf, id2word=dic, num_topics=2)
## 建立的两个主题模型内容
## ldaOut=lda.print_topics(2)
# 将文章投影到主题空间中
corpus_lda = lda[corpus_tfidf]
for doc in corpus_lda:
print(doc)

# 输入一句话,查询属于LSI得到的哪个主题类型,先建立索引:

index = similarities.MatrixSimilarity(lsi[corpus])
query = "雾霾很严重"
query_bow = dic.doc2bow(list(jieba.cut(query)))
query_lsi = lsi[query_bow]
print('query_lsi',query_lsi)


# 比较和第几句话相似,用LSI得到的索引接着做,并排序输出

sims = index[query_lsi]
sort_sims = sorted(enumerate(sims), key=lambda item: -item[1])
print('sort_sims',sort_sims)







转载于:https://www.cnblogs.com/hapyygril/p/9970160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LDA模型的理解对很多人是一种挑战,尤其是参数估计部分。本文档详细给出了TOTLDA和LDA两个主题概率模型的参数估计需要用到的后验概率的推导过程,并采用了两种方法,对主题概率模型研究人员具有很好的启发意义!Gibbs Sampling Derivation for LDA and ToT, Han Xiao, Ping luo Gibbs sampling:为了对x进行佔计,一般我们要从 P(X)≡P 中进行抽样。如果P(X)不易求得,我们可以通过对所有的P(x|X_)进行抽样来近似 其步骤如下 1.随机初始化X0)=(x10,x20)…,x 2.重复进行T轮抽样, 在每轮抽样中,对于=1…N,每个xP从P(xPx9,…2x1,x(+1…,x)抽样 3.当 Burn-in之后,可以通过几轮抽样计算P(X) 为了不失一般性,下面对ToT的 Gibbs sampling过稈进行推导 1.在TOT的 Gibbs sampling中,我们要求 P( zdilw,t,zdt,a,β,V) 然后才能跟据它,对生成wd,td的zd进行抽样估计。因为zd是隐减变量,一旦抽样估计完成,对丁每个wa它生成 自的 topIC就变成已知;对于每个 document,它包含的 topiCS也变成已知。那么对于 document-topics分布0d和 topic-words上的分布中2也就可以非常容易的破拟合出来。 Step1:根据 )=P(z) 和贝叶斯公式可以得到 P(zawt,z_dt,ax,β,V) P(W,tz,c,β,甲)P(w,t,zcB, P(wtzd,a,阝,乎P(w, t, z-dil,β,v 根据 Graphical Model,wda,ta都是由za生成的,如果不考虑zd则无法考虑wd,td。从而得到 P(zdw,t,z_di,x,βv)∝ P(Z,,t]a,B,p) t β,V) 2.由上式可知,在 Gibbs sampling中关键是要求出如下的联合概率 (w,t, zla, B, p) step1:根据 Graphical Model,咯去Φ,6,可以将联合概率拆开 P(w,t,zaB,)=P(w|z,β)P(t平,z)P(za) step2:引入Φ,θ,对Φ,回进行积分。再根据 Graphical Model,可以写出 P(w,t, zla,B,)=P(t!, 2) P(wlz, p)P(pIB)da P(zle)P(ela)do step3:对于整个 corpus,拆开所有黑体和大写,条件概率中的条件,z可以写做ψ;ZΦ写做中 N N plai P(中2|β)d中2 JITE P(zdi led)prelude Z=1 Step4:由于从第zd个 topic中抽去wd是满足多项式分布中2,的,因此 N d i 同理由于从第d个 document中抽取zu也是满足多项分布θa的,因此 P(zdi led) d d=1i=1 d=1z=1 将两式带入(2.3)中可以得到, Gibbs Sampling Derivation for LDa and ToT, Han Xiao, Ping Luo P(中2|β)d ed P(eala)de 7 d=1i=1 d=1z=1 step5:根据 dirichlet的后验分布,可以将P(中2|B)和P(Oda)开,得到 N 心!G T d=1i=1 r(β) 3-1)d中 11(ax)2=5 de step6:由于mCx18)与中无关,C叫2与无关,可以将它们提出,得: N P(tai lvz 2=1pv T r(a 1e()(心!(门 -1 d6, step7:由于不同的 topictopic-words分布是独立的(比如φ1与中2是独立的,可以通过d- separation判定),因此 连乘的积分可以写作积分的连乘;同理,不同 document的 document-topics分布也是独立的(01与02是独立的) 因此可以上式可以写为: r:)(21门(÷*a)(U nd, tarded 11(a dz d=11=1 step8:根据欧拉积分 I= r(1a) 对(27)式中后面两项使用欧拉积分可得 D C P(wt,za,β,)= r(nzy+阝) T(ndz +az) Ilv= r(Bv) d=1i=1 r(a)/ir(zv-1nz +Bv)d-r(zI-1ndz+a2) 3.* full conditional probability Step1:将(28)中的式子代入,可以得到 P(zW,ta,B平 t-di|a,阝, D -v=1 r(n2+β)mDT=r(naz+ 2n八(正=1r(民) r(a2) r(Ev=1n,y +Bv d-r(zi=1(nd z +ar)) 四1lepe(tdb)(( r(z=1a2) Iv-r(nz,y+By)rd Ilz-1r(ndz+ Ilv-1r(Bv)(2-1 T, r(a2/ v=tzv +β Σ=(na2+a2) -di step2:此时,要留意所有角标与di有关的nc2和n2x,由于不考虑zd,因此watd不用考虑(因为它们没有被牛成), 也就是说在考虑 topic Z和 word的所有共现次数时(即n2xy),我们忽略了这一次z与w的共现,这仅仅会让nda减 1,而对于其他的n2w并无影响:同样的,这也会使ndx减1,而并不会使其他的n发生改变。注意:MTD的 大小并没有发生改变 将上式拆成3部分来看,可以得到如下二式 P(taizu) Gibbs Sampling Derivation for LDA and ToT, Han Xiao, Ping luo v=1 Z=1 Ilv-ir(Bv)/\21r(az ) +0 3) nd, z tuz r(n Step3:关键是对(32.3式的化简),首先看其前一部分的分母 n,, (n2awa+阝wa-1)×m=1IV=r(n2x+B3) rCw=1nx+)T(C=(n+)-1)xr(=(2+B Step4:看前一部分的分子 (n+β) rInza wa d e,V 1r(x-(2+,)T((l2a+.)x(2=1(2+B) step5:(3.4)/(33),借助r(x+1)=xr(x)可以得到 (n2+阝 r(=1(n2+ +阝 ∑=1(n+B)-1 (xy=1(n2+阝 step6:看后一部分的分母 ∏z=1T(n ndg+ d diz )×TB=1I=1r(nd2+a2 Z z(叫2+c)=rCxm(ndna+a)-1)xm出,r(xm=(a+a2) step7:看后一部分的分子 Isr(ndz+ r(nd di, zdi )×[=1m=1r(naz+a2)d (2z_(nd. +a2))r(2z1nduix+ai)xIlad r(2T-(ndz +a2)) step8:(3.7)/(3.6},借助『(x+1)=xr(x)可得 ILs, r(ndz d=Ir(st (ndz+ n dinz di r(ndz ta 1d 1 n Step9:将(3.8)(35)(3.2)代入到(3.1)可得 P(zw,t,z-di,a阝,平)∝ P(z-di, W-di t-di a,B, y)P(tail zd )xyyatBwdi--1 P(Z,w, ta,B, p) =1(na+)-1∑=1(nx+)-1 (1-td) di“dt-1 nz,a, wui nd,ji, z i (nax+阝)-1 其中B(β) r(axr(β) 我们可以利用上式对每个zd进行抽样,当迭代次数足够大时,抽样结果趋丁稳定 r(a+β) LDA中 Gibbs Sampling中P(adw,zd,.,B)+a-1+2(adz+ nu, ldi 对比 LDA Gibbs Sampling发现,模型中加入时间信息后,对zd抽样时依据的概率分布做∫一些改变,相当于在LDA 的基础上增加了一个因子。 Gibbs Sampling Derivation for LDA and TOT, Han Xiao, Ping lut 当对zd的抽样完成后,我们可以方便的根据n2x和naz对中2与04进行计 例如,对于第z个 topICtopic-words分布,可以用 中2 n2+阝-1 (n2x+β) 求得中2=( D. Quick Derivation 对于TOT的 Gibbs Sampling,我们要求的是 P(zd1Wtz-dt,,阝平) 根据 Bayes rule,上式可以写作: P(zdi lw, t, z-di, a,B, P(w,tz,ax,阝,) P(wt,Z,a,阝,Y 根据 Graphical Model,wa,t都是山z生成的,如果不考虑za则无法考虑wd,td,因此: P(w,tZ,,β P(wtz|o,阝乎 P(edi lw, t, z-di, a, B,)ople-diw-di, t-di,a,B, y)P(z_di w aul-di/, B,Y) 根据 d-sperate可以判定对于不同的:zd,watd与zd,wd,td在条件a,β甲下是独立的。因此,上式右边可以拆为 各项连乘的形式,分子分母消去公共项,只剩P(zd,wd,tax,B,V),即 P(d|W,tzdi,,β,甲)∝P(ai,wd,tail,阝,甲) 又由于z,wd,td与z,w,td实际上在条件,,a,平下也是独立的,同理可得 P(zd|w,tzd中,,c,β,)∝P(z 中,e,x,β,甲) 根据 Graphical Mode|P(dwa,td|,e,a,,甲)可以写作 P(z 仲中6,,阝,)=P( wailed,中β)P y)P(zdi le, a) 山于抽wd和抽zd都满足多项式分布,批tG满足beta分布,于是有 P(wailed,,β)=、y ∑v=1(n2x+凤 n P(zdi le, a n di P(tai lzdi, p) (1-td B(中-1,中-1) 于是得到P(dw,txd,B甲)a(1t)帅t甲- B(山d-1,a-1)x +radix nd di di 对于LDA,推导过程同上,只是我们无需考虑td,于是P( dili, zdi a,B.甲)=2dym+B=x n Zdi.+Pv E。 References [1D Blei, A Ng, and m. Jordan Latent dirichlet allocation Journal of machine Learning research, 3: 993-1022, 2003 [2 Xuerui Wang, Andrew McCallum. Topics over Time: A Non-Markov Continuous-Time Model of Topical Trends. KDD06 August 20-23, 2006, Philadelphia, Pennsylvania, USA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值