lda 模型代码 python
时间: 2024-12-08 08:11:38 浏览: 13
基于python的LDA模型实现代码
5星 · 资源好评率100%
LDA(Latent Dirichlet Allocation)是一种常用的主题模型,用于从文本集合中提取潜在的主题。下面是一个使用Python实现LDA模型的示例代码,使用了gensim库:
```python
import gensim
from gensim import corpora
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
import nltk
# 下载必要的NLTK数据
nltk.download('stopwords')
nltk.download('wordnet')
# 示例文本数据
documents = [
"This is the first document.",
"This document is the second document.",
"And this is the third one.",
"Is this the first document?"
]
# 数据预处理
stop_words = set(stopwords.words('english'))
lemmatizer = WordNetLemmatizer()
processed_documents = []
for doc in documents:
# 分词
tokens = gensim.utils.simple_preprocess(doc)
# 去除停用词和词形还原
tokens = [lemmatizer.lemmatize(token) for token in tokens if token not in stop_words]
processed_documents.append(tokens)
# 创建词典
dictionary = corpora.Dictionary(processed_documents)
# 创建语料库
corpus = [dictionary.doc2bow(text) for text in processed_documents]
# 设置LDA模型参数
num_topics = 2
lda_model = gensim.models.LdaModel(corpus, num_topics=num_topics, id2word=dictionary, passes=15)
# 输出每个主题的关键词
for idx, topic in lda_model.print_topics(num_topics=num_topics):
print(f"Topic: {idx} \nWords: {topic}\n")
```
这个示例代码展示了如何使用gensim库来实现LDA模型。首先,我们对文本数据进行预处理,包括分词、去除停用词和词形还原。然后,我们创建词典和语料库,并使用这些数据来训练LDA模型。最后,我们输出每个主题的关键词。
阅读全文