模型进行主题分析"/>
机器学习实战篇:利用LDA模型进行主题分析
1、简介
本文讲解利用LDA模型,建立一个主题分析模型案例。LDA具体内容请读者参考其他资料。
2、案例
### 案例通过对自己造的5个文档进行LDA建模,这里主题数量为3个。具体如下:
# from nltk import stopwords
import nltk
# nltk.download()
from nltk.corpus import stopwords
from nltk.stem.wordnet import WordNetLemmatizer
import string
from gensim import modelsdoc1 = "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]stop = set(stopwords.words('english'))
exclude = set(string.punctuation)
lemma = WordNetLemmatizer()def clean(doc):stop_free = " ".join([i for i in doc.lower().split() if i not in stop])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 normalizeddoc_clean = [clean(doc).split() for doc in doc_complete]from gensim import corpora
# 创建语料的词语词典,每个单独的词语都会被赋予一个索引
dictionary = corpora.Dictionary(doc_clean)# 使用上面的词典,将转换文档列表(语料)变成 DT 矩阵
doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]# 使用 gensim 来创建 LDA 模型对象
Lda = 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))
3、实验结果
[(0, '0.065*"driving" + 0.065*"pressure" + 0.064*"doctor"'),
(1, '0.135*"sugar" + 0.054*"like" + 0.054*"consume"'),
(2, '0.072*"sister" + 0.072*"father" + 0.041*"better"')]
更多推荐
机器学习实战篇:利用LDA模型进行主题分析
发布评论