在WordCloud for LDA模型中列出超出范围

时间:2019-08-25 21:50:15

标签: python lda

我正在尝试为我的LDA结果创建一个词云。在代码中,用于以下行:

fig, axes = plt.subplots(1, 2, figsize=(10,10), sharex=True, sharey=True)

我尝试将其更改为(9,2),然后为所有18个主题打印出词云,但其中只有10个可以出现,而Jupiter笔记本出现的列表超出了范围。我不知道是怎么回事。如果有人可以帮助我,那就太好了!非常感谢。

from matplotlib import pyplot as plt
from wordcloud import WordCloud, STOPWORDS
import matplotlib.colors as mcolors

cols = [color for name, color in mcolors.TABLEAU_COLORS.items()]  #more colors: 'mcolors.XKCD_COLORS'

cloud = WordCloud(stopwords=stop_words,
              background_color='white',
              width=1000,
              height=800,
              max_words=10,
              colormap='tab10',
              color_func=lambda *args, **kwargs: cols[i],
              prefer_horizontal=1.0)

topics = lda_model.show_topics(formatted=False)

fig, axes = plt.subplots(1, 2, figsize=(10,10), sharex=True, sharey=True)

for i, ax in enumerate(axes.flatten()):
    fig.add_subplot(ax)
    topic_words = dict(topics[i][1])
    cloud.generate_from_frequencies(topic_words, max_font_size=300)
    plt.gca().imshow(cloud)
    plt.gca().set_title('Topic ' + str(i), fontdict=dict(size=16))
    plt.gca().axis('off')


plt.subplots_adjust(wspace=0, hspace=0)
plt.axis('off')
plt.margins(x=0, y=0)
plt.tight_layout()
plt.show()

0 个答案:

没有答案