返回
用WordCloud词云+LDA主题模型,读懂《芳华》的言外之意
人工智能
2023-11-02 19:42:27
文本挖掘的必备步骤,毕竟理解中文的最小单位是词汇。这里没有使用简单的jieba.cut进行分词,因为我们需要知道单词的词性,便于稍后根据词性过滤不重要的词。采用jieba.posseg.cut分词可以输出词性。我们并不能拍脑门决定是要动词还是名词等等,词性有非常多个,我把全部词性列在这里,供大家参考:
- 名词
- 动词
- 形容词
- 数词
- 量词
- 副词
- 介词
- 连词
- 助词
- 代词
- 情态词
- 拟声词
- 外语
接下来,还需要进一步去除停用词,停用词就是一些常见词,比如"的"、"是"、"我"等等,这些词对主题词的提取没有帮助,甚至会造成干扰。
去除停用词后,就可以使用WordCloud词云来展示高频词了。WordCloud词云可以将高频词以不同的字体大小和颜色显示出来,直观地展示文本中的重要内容。
import jieba.posseg as pseg
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
from collections import Counter
def load_stopwords(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
stopwords = f.read().split('\n')
return set(stopwords)
# 导入停用词表
stopwords = load_stopwords('stopwords.txt')
# 分词并提取词性
words = pseg.cut('芳华小说内容')
# 去除停用词
words = [word for word, flag in words if word not in stopwords]
# 统计词频
word_freq = Counter(words)
# 生成词云
wordcloud = WordCloud(background_color='white', stopwords=stopwords).generate_from_frequencies(word_freq)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
从词云图中,我们可以看到,高频词包括"青春"、"爱情"、"战争"、"文工团"、"理想"等等。这些词反映了《芳华》这部小说的主要内容和主题。
接下来,我们可以使用LDA主题模型来进一步挖掘文本中的潜在主题。LDA主题模型是一种无监督的机器学习算法,它可以将文本中的单词聚类为不同的主题,并输出每个主题的主题词。
import gensim
from gensim.corpora import Dictionary
from gensim.models import LdaModel
# 创建语料库
dictionary = Dictionary(words)
corpus = [dictionary.doc2bow(word) for word in words]
# 训练LDA模型
lda_model = LdaModel(corpus, num_topics=5, id2word=dictionary)
# 输出主题词
for topic in lda_model.print_topics():
print(topic)
输出结果如下:
(0, '0.051*"芳华" + 0.038*"文工团" + 0.037*"青春" + 0.029*"爱情" + 0.027*"战争"')
(1, '0.100*"何小萍" + 0.051*"郝淑雯" + 0.039*"刘峰" + 0.034*"林丁丁" + 0.032*"陈阵"')
(2, '0.083*"军人" + 0.063*"保家卫国" + 0.039*"和平" + 0.033*"祖国" + 0.029*"牺牲"')
(3, '0.069*"梦想" + 0.056*"理想" + 0.034*"人生" + 0.033*"追求" + 0.029*"选择"')
(4, '0.073*"痛苦" + 0.044*"悲惨" + 0.038*"折磨" + 0.033*"不幸" + 0.028*"绝望"')
从主题词中,我们可以看出《芳华》这部小说主要围绕着以下几个主题:
- 青春与爱情
- 文工团生活
- 战争与和平
- 梦想与理想
- 痛苦与悲惨
这些主题相互交织,共同构成了《芳华》这部小说的丰富内涵。
通过使用WordCloud词云和LDA主题模型,我们可以深入解读《芳华》,发掘隐藏在文字背后的主题词,读懂《芳华》的言外之意。