gensim 之 td-idf和lsi模型

gensim官方文档:
http://radimrehurek.com/gensim/tut2.html

gensim可以将语料库转换为td-idf和lsi模型
td-idf模型上文已介绍:
http://blog.csdn.net/m0_37681914/article/details/73781494

gensim的LSI模型训练建立在td-idf之上,用来解决潜在语义,详情可以参考
https://en.wikipedia.org/wiki/Latent_semantic_indexing
以下几篇不错的对LSI中奇异值分解算法的讲解博客:
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
http://blog.csdn.net/redline2005/article/details/24100293
http://blog.csdn.net/redline2005/article/details/24095405

#将corpus语料库转换为tf-idf模型
model = models.TfidfModel(corpus, normalize=True)
#将tf-idf模型转为lsi模型,词库为dictionary,话题为300个
model = models.LsiModel(tfidf_corpus, id2word=dictionary, num_topics=300)

何为lsi的话题数?

如有以下语料库:
这里写图片描述
进行3个话题的奇异值分解后的矩阵如下:
这里写图片描述
这3个话题可以理解为三维空间,表示三个不同类别,比如book的坐标为: 0.15,-0.27,0.04
T1的坐标为: 0.35,-0.32,-0.41
把这些点进行聚类,可以得到下图:
这里写图片描述
聚在一起的具有一定的相关性.比如”stock股票”和”market市场”比较相关.

总结: 话题数并没有真实现实意义,只是一个空间维度概念,维度约高聚类越精确,计算效率越低下,所以gensim官方文档推荐话题数为200-500个.

LSI的训练

LSI训练是独一无二的,我们可以随时继续“训练”,只需提供更多的训练文件。这通过在一个称为在线训练的过程中对底层模型进行增量更新来完成。由于这个特征,输入文档流甚至可能是无限的 - 只要在LSI新文档到达的同时保持供应,同时使用计算的转换模型作为只读的!

model.add_documents(another_tfidf_corpus)
#将一些新文档转换为LSI空间,而不影响模型
lsi_vec=model[tfidf_vec] 
1.Random Projections, RP

随机投影,RP旨在减少矢量空间维数。这是非常有效(内存和CPU友好的)方法,通过投掷一点随机性来近似文档之间的TfIdf距离。根据您的数据集,推荐的目标维度再次成百上千。

 model = models.RpModel(tfidf_corpus, num_topics=500)
2.Latent Dirichlet Allocation, LDA

潜在的Dirichlet分配,LDA 是另一个从袋字数到低维度的主题空间的转变。LDA是LSA(也称为多项式PCA)的概率扩展,因此LDA的主题可以被解释为词的概率分布。这些分布与LSA一样,从训练语料库自动推断出来。文件又被解释为这些主题的(软)混合物(再次,就像LSA)。

 model = models.LdaModel(corpus, id2word=dictionary, num_topics=100)
3.Hierarchical Dirichlet Process, HDP

分层Dirichlet过程,HDP 是一个非参数的贝叶斯方法(注意缺少的请求主题数):
model = models.HdpModel(corpus, id2word=dictionary)
HDP模型是gensim的新添加剂,并且在其学术边缘上仍然很粗糙 - 谨慎使用。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值