哈佛 CBDB API 接口快速入门指南社会关系数据挖掘实战

2025-06-25| 5990 阅读

? 认识哈佛 CBDB:社会关系数据的宝藏库


刚接触哈佛 CBDB 的朋友可能会好奇,到底什么是 CBDB?简单说,它就是哈佛中国历史数据库(China Biographical Database)的缩写,专门收录从秦汉到清末的中国历史人物数据。这里面的信息可太丰富了,每个人物记录平均有 30 多个字段,像姓名、生卒年、籍贯、官职、著作这些都有,更厉害的是,它详细记录了人物之间的社会关系,比如亲属关系、师生关系、同事关系等等,足足有超过 100 万条关系数据。

对于搞历史研究、社会网络分析,或者做数据挖掘的人来说,这简直就是个宝藏库。通过它的 API 接口,我们能轻松获取这些数据,然后进行各种分析。比如说,你想研究某个朝代的家族网络,看看哪些家族之间有联姻,哪些官员有师生关系,用 CBDB 的数据就能轻松实现。

? 准备工作:开启 API 之旅的第一步


注册获取 API 密钥


要使用 CBDB API,首先得去官网注册一个账号。打开哈佛 CBDB 的官方网站(https://gdm.fas.harvard.edu/cbdb/),找到注册入口,按照提示填写邮箱、用户名、密码等信息。注册成功后,登录账号,进入个人中心,就能看到 API 密钥了。这个密钥很重要,就像一把钥匙,之后调用 API 的时候都需要它,一定要保存好。

安装必要的库


接下来,我们需要在 Python 环境中安装几个必要的库。首先是requests库,它用于发送 HTTP 请求,获取 API 返回的数据。安装方法很简单,在命令行里输入pip install requests就行。另外,为了方便处理数据,我们还需要安装pandas库,用于数据清洗和分析,同样在命令行输入pip install pandas。如果后续需要进行可视化,还可以安装matplotlib或者seaborn库,不过这一步可以根据自己的需求来决定。

了解 API 基本结构


CBDB API 的端点主要有几个,常用的比如获取人物基本信息的端点是/api/person,获取社会关系的端点是/api/relation。每个端点都有不同的参数,比如person_id可以指定获取某个具体人物的信息,relation_type可以指定获取某种类型的社会关系,像 “亲属”“师生” 等。我们可以通过官方文档详细了解每个端点的参数和返回格式,这样在调用的时候才能得心应手。

? 基础调用:从 API 获取数据其实很简单


简单获取单个人物信息


现在,我们来试试用 API 获取单个人物的信息。假设我们知道一个人物的 ID 是 1000,想要获取他的基本信息,就可以使用requests库发送一个 GET 请求。代码大概是这样的:

python
import requests

api_key = '你的API密钥'
person_id = 
url = f'https://gdm.fas.harvard.edu/cbdb/api/person/{person_id}?key={api_key}'

response = requests.get(url)
data = response.json()

print(data)

运行这段代码,就能得到这个人物的详细信息,包括姓名、性别、生卒年、籍贯、官职等。返回的数据是 JSON 格式的,我们可以很方便地解析和提取需要的信息。

获取特定类型的社会关系


如果我们想获取某个人物的社会关系,比如他的亲属关系,就可以使用/api/relation端点。假设人物 ID 是 1000,关系类型是 “亲属”,代码可以这样写:

python
relation_type = '亲属'
url = f'https://gdm.fas.harvard.edu/cbdb/api/relation?key={api_key}&person_id={person_id}&relation_type={relation_type}'

response = requests.get(url)
relations = response.json()

for relation in relations:
    print(relation)

这样就能得到该人物所有的亲属关系数据,包括相关人物的 ID、姓名以及关系的具体描述。通过调整relation_type参数,我们可以获取不同类型的社会关系,比如师生关系、同事关系等。

批量获取数据


有时候我们需要批量获取多个人物的信息或者多个关系数据,这时候可以通过循环或者构建包含多个 ID 的参数来实现。比如,我们有一个人物 ID 列表person_ids = [1000, 1001, 1002],想要获取这些人物的信息,可以在循环中依次调用 API:

python
for pid in person_ids:
    url = f'https://gdm.fas.harvard.edu/cbdb/api/person/{pid}?key={api_key}'
    response = requests.get(url)
    data = response.json()
    # 处理每个人物的数据

不过要注意,API 可能会有调用频率限制,不要过于频繁地发送请求,以免被限制访问。

? 数据处理:让原始数据变 “干净” 又好用


解析 JSON 数据


从 API 获取到的数据是 JSON 格式的,虽然包含了丰富的信息,但有时候结构比较复杂,需要我们进行解析。比如,人物信息中可能包含多个字段,有些字段的值是列表或者字典,我们需要提取出我们需要的具体信息。可以使用 Python 中的字典操作来提取,比如data['name']获取人物姓名,data['birth_year']获取出生年份等。

处理缺失值


在数据中,可能会存在一些缺失值,比如某个人物的生卒年没有记录,或者某个关系的相关人物信息不完整。这时候我们需要根据具体情况进行处理。如果是重要的信息缺失,可能需要在分析时排除这些数据;如果是不太重要的,可以用默认值或者标记为未知。比如,对于生卒年缺失的人物,可以标记为 “未知”,在后续分析中注意区分。

数据清洗与转换


有时候数据中的格式可能不符合我们的需求,比如日期格式不一致,或者人物姓名有不同的写法。这时候需要进行数据清洗和转换。比如,将出生年份统一转换为整数类型,将人物姓名统一为标准写法。另外,对于社会关系数据,可能需要将关系类型进行标准化,比如将 “父亲”“母亲” 统一归类为 “亲属” 关系中的具体子类。

存储为 DataFrame


处理好的数据可以存储为pandas的 DataFrame 格式,这样方便后续的分析和操作。比如,将人物信息存储为一个 DataFrame,每一行代表一个人物,每一列代表一个字段;将社会关系数据存储为另一个 DataFrame,每一行代表一个关系,包含两个相关人物的 ID、姓名和关系类型等信息。通过 DataFrame,我们可以方便地进行数据筛选、排序、合并等操作。

? 实战案例:用社会关系数据挖掘背后的故事


案例一:挖掘古代家族的联姻网络


假设我们想研究某个朝代的一个大家族,比如王氏家族,看看他们通过联姻和哪些其他家族建立了联系。首先,我们需要获取王氏家族中所有人物的 ID,这可以通过搜索家族姓氏和籍贯等信息来获取。然后,获取这些人物的亲属关系数据,筛选出关系类型为 “配偶” 的记录,这样就能得到该家族成员的配偶信息,进而确定联姻的家族。

通过分析这些联姻数据,我们可以绘制出家族的联姻网络图,看看哪些家族之间联姻次数最多,联姻的双方在官职、地域上有什么特点。比如,可能会发现王氏家族主要和本地的几个官宦家族联姻,通过联姻巩固了家族在当地的地位。

案例二:分析学术网络中的师徒传承


我们还可以研究学术网络中的师徒关系,看看某个学派的传承脉络。比如,以宋代的理学学派为例,我们可以获取该学派代表人物的 ID,然后获取他们的师生关系数据,筛选出关系类型为 “师徒” 的记录。这样就能得到每个学者的老师和学生,构建出一个学术传承的网络。

通过分析这个网络,我们可以找出学派中的核心人物,看看他们的学生分布情况,以及学术思想是如何传播的。比如,可能会发现某个核心学者有很多知名的学生,这些学生又各自培养了自己的学生,使得该学派的影响力不断扩大。

案例三:探索官场中的同事关系网络


对于官场中的同事关系,我们可以获取同一时期、同一官职的人物信息,然后获取他们之间的同事关系数据。比如,研究某个朝代的内阁成员,看看他们之间的合作和互动情况。通过分析同事关系网络,可以找出在官场中处于核心位置的人物,他们可能与很多人有同事关系,对政策的制定和执行有重要影响。

同时,还可以结合人物的官职变动情况,看看同事关系是否对他们的职业生涯有影响,比如是否有同事推荐晋升的情况等。

❓ 常见问题:遇到这些情况别慌


API 调用失败怎么办?


如果 API 调用失败,首先检查网络连接是否正常,然后查看错误信息。常见的错误可能是 API 密钥错误、参数不正确或者调用频率过高。如果是 API 密钥错误,重新检查密钥是否正确;如果是参数不正确,仔细核对官方文档中的参数要求;如果是调用频率过高,等待一段时间后再尝试调用。

数据量太大处理不过来怎么办?


当数据量很大时,可能会遇到内存不足的问题。这时候可以采用分块处理的方法,比如使用pandasread_json函数分块读取数据,或者在获取数据时进行分页处理,每次获取一部分数据,处理完后再获取下一部分。另外,也可以考虑使用数据库来存储和管理大量数据,提高数据处理效率。

不知道如何选择合适的分析方法怎么办?


对于社会关系数据,常用的分析方法有社会网络分析(SNA),可以使用专门的库如networkx来构建和分析网络图,计算中心性、聚类系数等指标。如果是初学者,可以先从简单的统计分析开始,比如统计不同关系类型的数量、分布情况,然后再逐步深入学习复杂的分析方法。可以参考相关的教程和案例,看看别人是如何分析类似数据的。

数据中的关系描述不清晰怎么办?


有时候数据中的关系描述可能比较模糊,比如只写了 “亲属”,但没有具体说明是父子还是兄弟关系。这时候可以结合人物的生卒年、性别等信息进行推断,比如如果两个人物年龄相差较大,且性别不同,可能是父女关系;如果年龄相近,性别相同,可能是兄弟关系。如果实在无法推断,也可以在分析时注明关系的不确定性。

? 总结:开启社会关系数据挖掘的大门


通过哈佛 CBDB API,我们能够轻松获取丰富的历史人物社会关系数据,然后通过数据处理和分析,挖掘出背后的故事和规律。从认识 CBDB 到准备工作,再到基础调用、数据处理和实战案例,每一步都需要我们认真对待,遇到问题不要慌,按照常见问题的解决方法一步步来。

希望这篇指南能帮助你快速入门哈佛 CBDB API 的使用,在社会关系数据挖掘的道路上迈出坚实的一步。无论是历史研究、学术分析还是其他领域的应用,CBDB 的数据都能为你提供丰富的资源,让你发现更多有趣的现象和有价值的信息。

【该文章由dudu123.com嘟嘟 ai 导航整理,嘟嘟 AI 导航汇集全网优质网址资源和最新优质 AI 工具】

分享到:

相关文章

创作资讯2025-01-25

壹伴公众号编辑器值得付费吗?一个真实用户的深度体验报告

壹伴公众号编辑器值得付费吗?一个真实用户的深度体验报告 🛠️ 功能实测:从基础排版到高阶运营的一站式解决方案 作为一个用了三年公众号编辑器的老鸟,我得说壹伴的功能设计确实把新媒体人的痛点拿捏得死死的

第五AI
创作资讯2025-03-19

论文降重技巧:从入门到精通|如何巧用免费网站降重

要是论文重复率超标,别说顺利毕业了,还可能被质疑学术诚信,影响可不小。现在高校对论文查重越来越严格,很多学校都有明确的重复率要求,比如本科可能要求在 30% 以下,硕士则可能在 15% - 20% 之

第五AI
创作资讯2025-06-21

美剧台词 PDF 下载去哪找?英文台词社汇聚超 5.4 万部电影、11 万集美剧台词,中英文搜索 + 按难度分级助学习!

英语学习的路上,美剧台词绝对是个宝藏资源。最近有个超火的英文台词社网站,能下载到海量美剧台词 PDF,我试了试,真心觉得不错,今天就来和大家好好聊聊。 英文台词社最让我惊喜的就是它的资源库,规模大到超

第五AI
创作资讯2025-06-26

2025 升级!可旋转 3D 模型与动态光影素材助力设计师创作

可旋转 3D 模型和动态光影素材的升级,正在重塑设计师的创作方式。这些技术突破不仅提升了效率,还让作品更具沉浸感和真实感。 ? 可旋转 3D 模型:打破空间想象的边界 传统的静态 3D 模型只能展示固

第五AI
推荐2025-08-07

AI内容检测免费工具有哪些?为什么我最终选择了付费的第五AI? - AI创作资讯

🔍CopyLeaks:看似全能的免费选手​CopyLeaks算是免费AI检测工具里名气不小的。它支持Word、PDF这些常见文件格式,甚至连图片里的文字都能提取出来检测。语言方面也挺厉害,中英日韩这些主流语言都能hold住。​但免费版真的不够用,单篇检测最多就500字,稍微长点的文章就得切好几段。而且它的检测报告有点简单,就给个AI概率,具体哪里像AI写的根本标不出来,改的时候全靠瞎猜。上次我一篇公众号文章,明明自己写了大半天,它硬是判定70%是AI生成,申诉了也没下文,后来发现是里面引用了一段行业报告,可能被误判了。​🔍Originality.ai:精度还行但限制死​Originality.

第五AI
推荐2025-08-07

AI写作如何进行事实核查?确保头条文章信息准确,避免误导读者 - AI创作资讯

上周帮同事核查一篇AI写的行业报告,发现里面把2023年的用户增长率写成了2025年的预测数据。更离谱的是,引用的政策文件号都是错的。现在AI生成内容速度快是快,但这种硬伤要是直接发出去,读者信了才真叫坑人。今天就掰开揉碎了说,AI写作怎么做好事实核查,别让你的头条文章变成 误导重灾区 。​📌AI写作中事实错误的4种典型表现​AI最容易在这几个地方出岔子,你核查时得重点盯紧。​数据类错误简直是重灾区。前阵子看到一篇讲新能源汽车销量的文章,AI写 2024年比亚迪全球销量突破500万辆 ,实际查工信部数据才380多万。更绝的是把特斯拉的欧洲市场份额安到了蔚来头上,这种张冠李戴的错误,懂行的读者一

第五AI
推荐2025-08-07

10w+阅读量爆文案例拆解分析:高手都从这5个维度入手 - AI创作资讯

🎯维度一:选题像打靶,靶心必须是「用户情绪储蓄罐」做内容的都清楚,10w+爆文的第一步不是写,是选。选题选不对,后面写得再好都是白搭。高手选选题,就像往用户的「情绪储蓄罐」里投硬币,投对了立刻就能听到回响。怎么判断选题有没有击中情绪?看三个指标:是不是高频讨论的「街头话题」?是不是藏在心里没说的「抽屉秘密」?是不是能引发站队的「餐桌争议」。去年那篇《凌晨3点的医院,藏着多少成年人的崩溃》能爆,就是因为它把「成年人隐忍」这个抽屉秘密,摊在了街头话题的阳光下。你去翻评论区,全是「我也是这样」的共鸣,这种选题自带传播基因。还有种选题叫「时间锚点型」,比如高考季写《高考失利的人,后来都怎么样了》,春节

第五AI
推荐2025-08-07

现在做公众号是不是太晚了?2025年依然值得投入的3个理由与运营策略 - AI创作资讯

现在做公众号是不是太晚了?2025年依然值得投入的3个理由与运营策略一、用户粘性与私域流量的核心价值微信生态经过多年沉淀,公众号作为私域流量的核心载体,依然拥有不可替代的用户粘性。根据2025年最新数据,微信月活跃用户数稳定在13亿以上,而公众号的日均阅读量虽有所波动,但深度用户的留存率高达78%。即使在短视频盛行的今天,仍有超过1亿用户每天主动打开公众号阅读长图文,这部分用户普遍具有较高的消费能力和信息获取需求。公众号的私域属性体现在用户主动订阅的行为上。用户关注一个公众号,本质是对其内容价值的认可,这种信任关系是其他平台难以复制的。例如,某财经类公众号通过深度行业分析文章,吸引了大量高净值

第五AI
推荐2025-08-07

AI写小说能赚钱?普通人如何利用AI生成器开启副业之路 - AI创作资讯

现在很多人都在琢磨,AI写小说到底能不能赚钱?其实,只要掌握了方法,普通人用AI生成器开启副业之路,真不是啥难事。一、AI写小说赚钱的可行性分析很多人对AI写小说赚钱这事心里没底,总觉得AI生成的东西不够好。但实际情况是,AI写小说确实能赚钱。像DeepSeek这种AI写作工具,能快速生成小说框架、人物设定甚至章节内容,尤其是在玄幻、言情这类套路化、模式化的小说类型上,效率特别高。华东师范大学王峰团队用AI生成的百万字小说《天命使徒》,就是很好的例子。不过,AI写小说也不是十全十美的。AI生成的内容缺乏情感深度和原创性,同质化也很严重,而且一些小说平台对AI生成的内容审核很严格,一旦被发现,作

第五AI
推荐2025-08-07

情感故事公众号的涨粉核心:持续输出能引发共鸣的价值观 - AI创作资讯

做情感故事号的人太多了。每天打开公众号后台,刷到的不是出轨反转就是原生家庭痛诉,读者早就看疲了。但为什么有的号能在半年内从0做到10万粉,有的号写了两年还在三位数徘徊?​差别不在故事有多曲折,而在你有没有想明白——读者关注一个情感号,本质是在找一个能替自己说话的“情绪代言人”。他们要的不是猎奇,是**“原来有人和我想的一样”的认同感**。这种认同感的背后,就是你持续输出的、能引发共鸣的价值观。​🔍共鸣价值观不是猜出来的——用用户画像锚定情感锚点​别总想着“我觉得读者会喜欢什么”,要去看“读者正在为什么吵架”。打开微博热搜的情感话题评论区,去翻小红书里“有没有人和我一样”的帖子,那些被反复讨论的

第五AI
推荐2025-08-07

ChatGPT Prompt指令模板库|专为高原创度文章设计|DeepSeek用户也能用 - AI创作资讯

📚什么是Prompt指令模板库?​可能有人还在纠结,为什么写个指令还要搞模板库?其实道理很简单——就像厨师做菜需要菜谱,写Prompt也得有章法。尤其是想让AI写出高原创度的内容,不是随便敲几句就行的。​Prompt指令模板库,简单说就是把经过验证的有效指令结构整理成可复用的框架。里面包含了针对不同场景(比如写自媒体文章、产品文案、学术论文)的固定模块,你只需要根据具体需求填充细节。这样做的好处很明显:一是减少重复思考,二是保证输出质量稳定,三是更容易避开AI检测工具的识别。​现在很多人用ChatGPT写东西被判定为AI生成,问题往往出在指令太简单。比如只说“写一篇关于健身的文章”,AI自然会

第五AI
推荐2025-08-07

朱雀 AI 检测抗绕过方法:2025 最新技术解析与实测对比 - AI创作资讯

🔍朱雀AI检测抗绕过方法:2025最新技术解析与实测对比🔍在AI生成内容泛滥的今天,腾讯朱雀AI检测系统凭借其多模态分析技术和百万级数据训练,成为行业标杆。但道高一尺魔高一丈,对抗者们正通过各种技术手段挑战其检测边界。本文将深入解析2025年最新的抗绕过方法,并结合实测数据对比效果。🛠️技术架构解析:朱雀AI检测的核心防线朱雀AI检测系统采用四层对抗引擎架构,包括频域伪影定位技术和不可见内容溯源标记。其核心检测原理包括困惑度分析和突发性检测,通过分析文本的预测难度和句式规律性判断生成来源。2025年升级后,系统引入动态进化机制,每日更新10万条生成样本训练数据,模型迭代周期大幅缩短,显著提升了

第五AI
推荐2025-08-07

2025 公众号运营趋势:私域流量下的写作工具选择 - AI创作资讯

🔍2025公众号运营趋势:私域流量下的写作工具选择这几年做公众号运营,最大的感受就是平台规则变得越来越快。以前靠标题党和搬运内容就能轻松获得流量的日子已经一去不复返了。特别是2025年,微信公众号正式迈入「下沉市场」,个性化算法推荐成为主流,这对运营者的内容创作能力提出了更高的要求。在私域流量越来越重要的今天,选择合适的写作工具,不仅能提高效率,还能让你的内容在海量信息中脱颖而出。📈私域流量运营的核心趋势私域流量的本质是什么?简单来说,就是把用户「圈」在自己的地盘里,通过持续的价值输出,建立信任,最终实现转化。2025年的私域运营,有几个明显的趋势值得关注。全渠道融合已经成为标配。现在的用户不

第五AI
推荐2025-08-07

免费又好用的论文AI检测软件|和知网AI查重结果对比分析 - AI创作资讯

🔍免费又好用的论文AI检测软件|和知网AI查重结果对比分析写论文的时候,查重是躲不过的坎儿。知网虽然权威,但价格高,对学生党来说,多查几次钱包就扛不住了。好在现在有不少免费的论文AI检测软件,既能帮我们初步筛查重复率,还能省点钱。不过这些免费工具和知网的结果差距有多大呢?今天咱们就来好好唠唠。🔍主流免费论文AI检测软件大盘点现在市面上的免费论文检测工具可不少,像PaperPass、PaperFree、PaperYY、超星大雅、FreeCheck这些都挺火的。它们各有特点,咱们一个一个看。PaperPass这是很多学生的首选。它的免费版每天能查5篇论文,支持多终端使用,上传文件后系统会自动加密,

第五AI