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

简介: 【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. 主程序调用:定义文件路径和人物列表,生成词云和人物关系图。


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


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

相关文章
|
5天前
|
数据采集 传感器 数据可视化
利用Python进行数据分析与可视化
【9月更文挑战第11天】在数字化时代,数据已成为企业决策和科学研究的关键。本文将引导读者了解如何使用Python这一强大的工具进行数据分析和可视化,帮助初学者理解数据处理的流程,并掌握基本的可视化技术。通过实际案例,我们将展示如何从原始数据中提取信息,进行清洗、处理,最终以图形方式展现结果,使复杂的数据变得直观易懂。
|
19天前
|
JSON 数据可视化 BI
我常用的5个Python可视化库
我常用的5个Python可视化库
|
19天前
|
Ubuntu Linux 数据安全/隐私保护
使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
本文介绍了在Linux系统(Ubuntu 18.04)下将Python源代码(`.py文件`)加密为`.so文件`的方法。首先安装必要的工具如`python3-dev`、`gcc`和`Cython`。然后通过`setup.py`脚本使用Cython将`.py文件`转化为`.so文件`,从而实现源代码的加密保护。文中详细描述了从编写源代码到生成及调用`.so文件`的具体步骤。此方法相较于转化为`.pyc文件`提供了更高的安全性。
31 2
|
20天前
|
数据可视化 前端开发 JavaScript
利用Python开发七普数据在线可视化看板
利用Python开发七普数据在线可视化看板
|
21天前
|
数据可视化 搜索推荐 定位技术
plotly | python可视化进阶之路
plotly | python可视化进阶之路
|
25天前
|
测试技术 Python
python自动化测试中装饰器@ddt与@data源码深入解析
综上所述,使用 `@ddt`和 `@data`可以大大简化写作测试用例的过程,让我们能专注于测试逻辑的本身,而无需编写重复的测试方法。通过讲解了 `@ddt`和 `@data`源码的关键部分,我们可以更深入地理解其背后的工作原理。
22 1
|
1月前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
20天前
|
存储 JSON 数据可视化
纯Python轻松开发实时可视化仪表盘
纯Python轻松开发实时可视化仪表盘
|
20天前
|
算法 关系型数据库 程序员
程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
这篇文章是关于如何使用Python的`pyautogui`库来控制鼠标和键盘进行各种操作,包括移动、点击、滚轮控制以及键盘的按键和快捷键输出,并介绍了如何结合图像处理和计算机视觉技术来扩展其应用。
|
自然语言处理 Python
手把手教你用Python绘制词云
手把手教你用Python绘制词云
385 0
手把手教你用Python绘制词云