lda python代码_主题模型 LDA 入门(附 Python 代码)

原文:https://blog.csdn.net/selinda001/article/details/80446766

原文代码需要一点点调整才能跑通

from nltk.stem.wordnet import WordNetLemmatizer

import string

import pandas as pd

import gensim

from gensim import corpora

doc1 = "Sugar is bad to consume. My sister likes to have sugar, but not my father."

doc2 = "My father spends a lot of time driving my sister around to dance practice."

doc3 = "Doctors suggest that driving may cause increased stress and blood pressure."

doc4 = "Sometimes I feel pressure to perform well at school, but my father never seems to drive my sister to do better."

doc5 = "Health experts say that Sugar is not good for your lifestyle."

# 整合文档数据

doc_complete = [doc1, doc2, doc3, doc4, doc5]

#加载停用词

stopwords=pd.read_csv('stopwords.txt',index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')

stopwords=stopwords['stopword'].values

exclude = set(string.punctuation)

lemma = WordNetLemmatizer()

def clean(doc):

stop_free = " ".join([i for i in doc.lower().split() if i not in stopwords])

punc_free = ''.join(ch for ch in stop_free if ch not in exclude)

normalized = " ".join(lemma.lemmatize(word) for word in punc_free.split())

return normalized

doc_clean = [clean(doc).split() for doc in doc_complete]

# 创建语料的词语词典,每个单独的词语都会被赋予一个索引

dictionary = corpora.Dictionary(doc_clean)

# 使用上面的词典,将转换文档列表(语料)变成 DT 矩阵

doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]

# 使用 gensim 来创建 LDA 模型对象

Lda = gensim.models.ldamodel.LdaModel

# 在 DT 矩阵上运行和训练 LDA 模型

ldamodel = Lda(doc_term_matrix, num_topics=3, id2word = dictionary, passes=50)

# 输出结果

print(ldamodel.print_topics(num_topics=3, num_words=3))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值