【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】



一、设计要求

功能点及设计需求

该项目的设计旨在生成《人民的名义》文本的词云和人物关系图,通过分析文本和可视化结果,展示主要人物的关联和词频情况。具体功能点和设计需求如下:

  1. 文本读取与处理

    • 读取文本文件:从指定路径读取《人民的名义》文本内容,确保文件编码为 gbk
    • 读取停用词文件:从指定路径读取停用词列表,文件编码为 utf-8
  2. 中文分词

    • 分词处理:使用 jieba 对读取的文本进行分词,处理中文字符以生成单词列表。
    • 去除停用词:过滤掉单词列表中的停用词,确保词云中只包含有效信息。
  3. 词云生成

    • 生成词云:利用 WordCloud 库生成词云图,设置词云图的字体、尺寸和背景颜色,确保中文字符显示正确。
    • 词云显示:使用 matplotlib 显示生成的词云图,图像清晰,标签正确。
  4. 人物关系图绘制

    • 创建无向图:使用 networkx 创建人物关系的无向图,定义主要人物为节点。
    • 添加关系边:假设每个人物之间都有直接关系,添加边连接所有节点。
    • 图形绘制:使用 matplotlib 绘制人物关系图,设置节点位置、颜色、大小和标签,确保图形美观且易于理解。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈


二、设计思路

设计目的是生成一部电视剧《人民的名义》的词云和人物关系图。代码主要分为三个部分:生成词云、绘制人物关系图和主程序调用。以下是详细的设计思路分析:

1. 导入必要的库

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
import networkx as nx
  • matplotlib.pyplot:用于绘制词云和人物关系图。
  • WordCloud:用于生成词云。
  • jieba:用于中文分词。
  • networkx:用于创建和绘制人物关系图。

2. 配置 Matplotlib 以正常显示中文和负号

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
  • font.sans-serif 设置为 SimHei(黑体),确保能够显示中文字符。
  • axes.unicode_minus 设置为 False,确保负号可以正常显示。

3. 生成词云的函数

功能描述:读取文本文件并生成词云。

def generate_wordcloud(text_file, stopwords_file):
    # 读取文本文件
    with open(text_file, 'r', encoding='gbk') as f:
        text = f.read()

   	# 代码略(至少十行)... 
	# 代码略(至少十行)...
	 

    # 去除停用词
    words = [word for word in words if word not in stopwords]


   	# 代码略(至少十行)... 
	# 代码略(至少十行)...
	 
    # 显示词云
    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

  • 读取文本文件:使用 open 函数读取指定编码的文本文件内容。
  • 读取停用词文件:读取停用词文件并将其转换为集合。
  • 分词:使用 jieba.lcut 对文本进行分词。
  • 去除停用词:过滤掉停用词。
  • 生成词云:使用 WordCloud 类生成词云,并设置中文字体文件路径、宽度、高度和背景颜色。
  • 显示词云:使用 matplotlib 显示词云。
    在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

4. 绘制人物关系图的函数

功能描述:绘制电视剧人物之间的关系图。

def plot_character_graph(characters):
    # 创建无向图
    G = nx.Graph()

   	# 代码略(至少十行)... 
	# 代码略(至少十行)...
	 
    # 绘制图形
    plt.figure(figsize=(10, 8))
    pos = nx.spring_layout(G)
    nx.draw(G, pos, with_labels=True, node_color='skyblue', node_size=3000, font_size=12, font_weight='bold', edge_color='gray')
    plt.show()
  • 创建无向图:使用 networkx 创建无向图 G
  • 添加节点:将每个人物作为节点添加到图中。
  • 添加边:假设每个人物之间都有直接关系,添加边。
  • 绘制图形:使用 matplotlib 绘制图形,设置节点位置、标签、颜色、大小、字体和边颜色。
    在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

5. 主程序调用

功能描述:读取文件路径和人物列表,生成词云和人物关系图。

# 文件路径
text_file = '人民的名义.txt'
stopwords_file = 'stop_words.txt'

# 人物列表
characters = [
    "李达康",
    "侯亮平",
    "高育良",
    "陈岩石",
    "祁同伟",
    "赵东来",
    "沙瑞金",
    "丁义珍",
    "季昌明",
    "吴慧芬"
]


   	# 代码略(至少十行)... 
	# 代码略(至少十行)...
	 
  • 文件路径:定义文本文件和停用词文件的路径。
  • 人物列表:定义电视剧中的人物列表。
  • 生成词云:调用 generate_wordcloud 函数,生成并显示词云。
  • 绘制人物关系图:调用 plot_character_graph 函数,绘制并显示人物关系图。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

在这里插入图片描述

总结

  1. 导入必要的库:引入词云生成、中文分词和图形绘制所需的库。
  2. 配置 Matplotlib:确保能够正确显示中文字符和负号。
  3. 生成词云:读取文本和停用词文件,进行中文分词,生成并显示词云。
  4. 绘制人物关系图:创建无向图,添加节点和边,绘制并显示人物关系图。
  5. 主程序调用:定义文件路径和人物列表,生成词云和人物关系图。

该设计实现了一个简单的文本分析和可视化工具,可以对《人民的名义》文本进行词频分析,并展示主要人物之间的关系。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 人民 ” 获取,拿来即用。👈👈👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值