LDA 算法

第1关:LDA 算法

任务描述

本关任务:根据所学有关 LDA 算法原理的知识,完成基于 gensim 模块进行 LDA 关键词提取的程序编写并通过所有测试用例。

相关知识

为了完成本关任务,你需要掌握:

  1. LDA 算法的原理;

  2. 基于 gensim 模块进行 LDA 关键词提取。

import jieba
import jieba.analyse as analyse
import gensim
from gensim import corpora, models, similarities
# 停用词表加载方法
def get_stopword_list():
    # 停用词表存储路径,每一行为一个词,按行读取进行加载
    # 进行编码转换确保匹配准确率
    stop_word_path = './stopword.txt'
    stopword_list = [sw.replace('\n', '') for sw in open(stop_word_path, encoding='utf-8').readlines()]
    return stopword_list
# 停用词
stop_word = get_stopword_list()
text = input()
# 分词
sentences = []
segs = jieba.lcut(text)
segs = list(filter(lambda x: x not in stop_word, segs))
sentences.append(segs)
# 构建词袋模型
dictionary = corpora.Dictionary(sentences)
corpus = [dictionary.doc2bow(sentence) for sentence in sentences]
result = ""
# 任务:使用gensim模块中的函数构造LDA模型,得出最佳主题词的分析结果保存到result变量中。
lda = models.LdaModel(corpus,id2word=dictionary, num_topics=1)
for result in lda.print_topics(num_words=1):
    print(result[1].split('*')[1],end="")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值