【NLP】文本LDA主题聚类&主题词生成&可视化
LDA主题聚类
这是NLP中常用的一类方法,一般Sklearn,genism里有可以实现。一般结果会有文档-主题model(即说明每个文档属于某类主题的概率),概率最大则说明该文档属于该类别。以及主题-词语model,可以给出每个主题的前N个词。
主要部分代码:
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
import lda
vectorizer = CountVectorizer(min_df=10, stop_words=stopwords) # 定义计数器
transformer = TfidfTransformer() # 该类会统计每个词语的tf-idf权值
tf = vectorizer.fit_transform(documents) # 计算TF
tfidf = transformer.fit_transform(tf) # fit_transform计算tf-idf,fit_transform将文本转为词频矩阵
vocab = vectorizer.get_feature_names()
model = lda.LDA(n_topics=5, n_iter=150, random_state=1)
model.fit(tf)
topic_words = model.topic_word_
# 显示每个话题的前10词
n = 10
topickey=[]
for i, t in enumerate(t