python3 LDA主题模型以及TFIDF实现

import codecs  #主题模型
from gensim import corpora
from gensim.models import LdaModel
from gensim import models
from gensim.corpora import Dictionary
te = []
fp = codecs.open('input.txt','r')
for line in fp:
    line = line.split(',')
    te.append([ w  for w in line ])
print ('输入文本数量:',len(te)) 
dictionary = corpora.Dictionary(te)
corpus = [ dictionary.doc2bow(text) for text in te ]
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]
print(list(corpus_tfidf))#输出词的tfidf
print(list(corpus))#输出文本向量空间
lda = LdaModel(corpus=corpus, id2word=dictionary, num_topics=20,passes=100) 
doc_topic = [a for a in lda[corpus]]
topics_r = lda.print_topics(num_topics = 20, num_words =20)
topic_name = codecs.open('topics_result3.txt','w')
for v in topics_r:
    topic_name.write(str(v)+'\n')
fp2 = codecs.open('documents_result.txt','w')
for t in doc_topic:
    c = []
    c.append([a[1] for a in t])
    print(t)
    m = max(c[0])
    
    for i in range(0, len(t)):
        if m in t[i]:
            #print(t[i])
            fp2.write(str(t[i][0]) + '  ' + str(t[i][1]) + '\n')#输出模型类和概览
            break

 

转载于:https://www.cnblogs.com/oikoumene/p/9798259.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值