python数据分析之基情的择天记

简介: 人一生都可能无法逆天改命,但你却是要去奋斗一把本文章主要通过最简单的共线性关系,利用gephi工具绘制择天记的人物关系图。准备工作在网上下载《择天记》小说以及创建小说人物的txt。

人一生都可能无法逆天改命,但你却是要去奋斗一把

本文章主要通过最简单的共线性关系,利用gephi工具绘制择天记的人物关系图。

准备工作

  • 在网上下载《择天记》小说以及创建小说人物的txt。


  • jieba库
  • 需要下载gephi软件
    注意:安装路径不能有中文字;需要安装java环境,不然无法使用gephi。

定义数据结构

import jieba
names = {}
relationships = {}
linenames = []
all_names = []

names用于存入小说人物和出场次数;relationships保存人物关系的有向边,该字典的键为有向边的起点,值为一个字典edge,edge的键是有向边的终点,值是有向边的权值,代表两个人物之间联系的紧密程度;linenames存入每行小说出现的人物;all_names是小说所有人物。

添加人名到jieba词库中

jieba库分词可能并不能把小说的人物都切开,我们需要把这些人名添加到词库中,以便成功分词。

f1 = open('names.txt',encoding='utf-8')
for line in f1.readlines():
    all_names.append(line.strip().strip('\ufeff'))
for name in all_names:
    jieba.add_word(name)

统计出场人数

f2 = open('择天记.txt',encoding='utf-8')
for line in f2.readlines():
    seg_list = jieba.cut(line)
    linenames.append([])
    for i in seg_list:
        if i in all_names:
            linenames[-1].append(i)
            if names.get(i) is None:
                names[i] = 0
                relationships[i] = {}
            names[i] +=1

通过图可以看出,陈长生作为主角,出场最多,而他的好基友是排第二的,而他的女票徐有容却是排到第五,这与一些玄幻小说不一样,注定了这是一部基情的小说。

人物关系及写入文件

for line in linenames:
    for name1 in line:
        for name2 in line:
            if name1 == name2:
                continue
            if relationships[name1].get(name2) is None:
                relationships[name1][name2]=1
            else:
                relationships[name1][name2] += 1

import codecs
with codecs.open('tian_node.txt','w','utf-8') as f:
    f.write("Id Label Weight\r\n")
    for name, times in names.items():
        f.write(name + ' ' + name + ' ' + str(times) + '\r\n')
        
with codecs.open('tian_edge.txt', 'w', "utf-8") as f:
    f.write("Source Target Weight\r\n")
    for name, edges in relationships.items():
        for v, w in edges.items():
            if w > 3:
                f.write(name + ' ' + v + " " + str(w) + "\r\n")

绘制人物关系图

最后利用gephi绘制人物关系图。


相关文章
|
19天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
341 1
|
20天前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
223 0
|
1月前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
125 3
|
2月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
245 1
|
2月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
1月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
1月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
109 0
|
4天前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
12天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
21天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。

推荐镜像

更多