三国演义词云图

您所在的位置:网站首页 找出三国人物游戏名字 三国演义词云图

三国演义词云图

2024-07-04 04:47| 来源: 网络整理| 查看: 265

实验五:三国演义词云图

在这里插入图片描述 “词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出, 形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网 页者只要一眼扫过文本就可以领略文本的主旨。 实验目的:

熟悉文件的读取熟悉中文分词及词频统计理解数据清洗熟练使用词云进行文本信息的展示理解文本处理、文本分析、文本可视化的基本思想 实验内容: 编写程序,找出《三国演义》这本小说的人物关键词,并对“关键词渲染” 形成词云图。 实验要求: 在提供的文本中选择其中的一个文本,提取关键词,并对“关键词渲染” 形成词云图。 import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud txt = open('threekingdoms.txt', 'r', encoding='utf-8').read()#记得放在目代码同一路径的文件夹 print(txt) words = jieba.lcut(txt)#返回一个列表类型txt表示变量名 counts = {} for word in words: if len(word) == 1:#只有一个字就不是人名,所以排除 continue elif word == "诸葛亮" or word == "孔明曰": rword = "孔明" elif word == "关公" or word == "云长": rword = "关羽" elif word == "玄德" or word == "玄德曰": rword = "刘备" elif word == "孟德" or word == "丞相": rword = "曹操" else: rword = word counts[rword] = counts.get(rword, 0) + 1#自增1 excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此"}#剔除影响排序的词 for word in excludes: del counts[word] items = list(counts.items())#这是个二位列表 c = list() items.sort(key=lambda x: x[1], reverse=True)#根据键值的大小即出场频率降序排 for i in range(50):#取词频率前50 word, count = items[i] print("{0:5}".format(word, count))#右对齐左补0、左对齐右补零 c.append(word) text = " ".join(c)#join函数是一个可迭代的对象 font_path = 'simkai.ttf'#我是从问里面拷贝了一个字体样式 w = WordCloud(width=600, height=400,font_path=font_path, background_color="white", max_words=50) w.generate(text) # 生成词云 w.to_file('res.png') plt.imshow(w) #用词云图片 plt.axis('off') #不显示坐标 plt.show() #显示生成的词云图w.to_file("threekingdoms.png") #保存到本地

在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3