跳转至

版本说明

v2.1.0(当前版本)

增加来源出土文献的人名、释义反查、性能优化。

对于此前版本 IDS 信息的加载不全及生僻字字体的选用问题,特此感谢黄俊亮的提示与建议。

姓名数据

增加吐蕃人名、新疆出土汉晋简牍人名、走马楼吴简第九卷人名。

吐蕃人名

来自黄布凡、马德《敦煌藏文吐蕃史文献译注》 所附人名索引,总共录入362个人名,切分为69个姓氏(不重复计次,包括无姓)、名字中95个整体构件、155个构件一、184个构件二。除了“可敦”是突厥人称呼,其它都标注为吐蕃人名。汉族、南诏、尼泊尔等人名未录。吐蕃人名较长,能切分的名字尽量对照音节和意思(如有)切成了两部分,切作两份是为了保持整体姓名处理方式的兼容性,有更好的做法,不过目前这样效果尚可。

新疆出土汉晋简牍人名

来自韩厚明《新疆出土汉晋简牍集释》中的人名索引表,合计301个人名,魏晋281个,两汉20个,两汉的不多,所以不做时期拆分。魏晋时期的简牍记录有记姓不记名的做法,与汉简有所不同,但结合姓氏用字与简文内容,容易区分。

走马楼吴简系列丛书的第九卷。

所处时期基本是整齐一致的单名。该丛书有很多卷,优先录这卷,一是因为篇幅较短,二是第五卷和第九卷网上没有,这是我去图书馆拍的。

西域其余的汉文与非汉文出土文书的人名,没有资源和时间,所以人名标注将长期或者永远处于 beta 版。

东周人名可能可以加入,但短期之内不会更新。

基础功能

增加释义反查,释义反查有两种模式:智能语义匹配、字符串模糊匹配。注意:输入释义后,鼠标点击或触屏点击输入框外部的其它区域,退出聚焦输入框的状态后才会启动查询。

智能语义匹配

使用语义向量模型、基于英文释义构建的匹配功能,支持中英文短语。输入中文将自动识别并翻译为英文。预处理数据集与程序均部署在 Hugging Face,基于地区限制可能需要设置网络代理。消耗额外的网络流量,耗时长。长期无人使用,该功能将处于睡眠状态,如能正常访问,请先发起一次查询请求等待功能被唤醒,或在 Hugging Face 页面唤醒该功能。

模型完全基于语义,能够理解并处理:“豪放不羁”、“新生的植物”、“某某、某某和某某”、“某某或某某或某某”等语义,或者说是意象,并返回语义接近的字。但不能处理词性的限定(“动词、名词”);也不能准确理解或者过于佶屈聱牙的表述,如“渊懿美茂”;也不要添加与释义无关的内容,全部翻译结果都会参与近似度匹配,如“请为我返回与鸟类有关的用字”,会匹配释义与全句“Please return to the bird-related words for me”而非与 bird 类似的用字。

程序内已做了针对模型主观倾向或偏见的预处理与后处理,但模型自动翻译可能仍然不准或有偏见。如输入中文,可在查看返回的翻译结果后,调整为合适的英文表述。 该功能的一个副产品是:古汉语语义关系图谱

基于英文释义的字符串模糊匹配

仅支持英文释义及中文单字反查。使用 Fuse.js 实现英文释义的模糊匹配查询。部署在网页内,即时返回,但字符串近似度与语义近似度有所区别,亦需要用户具有适应此版本所用英文释义(Unihan与《上古汉语新构拟》词表)的、较好的英文概括能力。

性能优化

增加拼音显示,拼音功能由第三方 js 库 pinyin-pro 提供(包含姓氏读音判断)。语言设置为英文时,同步勾选概览区的拼音标注;也可以在配置 > 标注拼音处手动勾选。 修复了开屏logo懒加载的问题。 修复了没有载入全部IDS信息的问题,改为直接读入ids_lv2.txt。 修复了收藏夹菜单栏总是被翻译成英文的问题。 修复了切韵注音选择为“msoeg 擬音 V8” 时因设置而不能正常加载详情页的问题。 优化详情页展示,具体优化了哪里忘记了。 考虑到出土文献中大量Unicode CJK扩展区汉字的存在,对这些生僻字设置文津宋体作为fallback字体(备用字体),应能解决手机设备上缺乏全字库字体而将这部分字显示为□的问题。为保持风格一致,同步修改原来的主要字体Noto Sans(黑体)为 Noto Serif(宋体)。网页中加载的是文津宋体在扩展区的子集,常见汉字仍渲染为 Noto Serif。

v2.0.0(历史版本)

姓名数据

出土文献

本次更新中工作量最大的一部分。

特别感谢李洪财教授授予许可使用其著作的《肩水金关汉简校释》一书所附人名索引。

增加三个时期、四批出土简牍、七份资料的人名:

  • 里耶秦简
  • 居延汉简
  • 肩水金关汉简
  • 走马楼吴简

详见资料来源。各项来源互不重复。

CBDB

工作量也很大……作者在制作人名生成器初期就知道此数据库,但是嫌烦没有弄。CBDB在某几个时期上的人物资料规模远多于知识图谱,但同样也有更多不整齐、杂乱的数据。基于其20250520的SQLite版本处理,此版本有大约65万名人物资料,海量清洗后保留了574459个人名,其中有:

类别 数目
女性人名 8516
汉名僧人 2947
女真人名 313
契丹人名 539
蒙古人名 2067
满族人名 10019
回鹘人名 337
回回人名 47
党项人名 136
鲜卑人名 106
突厥人名(广义) 662
暂不收录的分类 103

比较了人物的重合度,知识图谱与CBDB各自仍然具有相当规模的独有数据,详见资料来源的图表。当然,两个来源的数据格式也是不一样的,这意味着提取人名的程序基本从头又写了一个。

基于CBDB的数据,扩大了特殊人名的类别。请注意,当前的类别判定依然是宽泛不严谨的。

尽管加入了更多女性人名,但性别比例相对之前的版本更加悬殊,因此调高了女性人名的权重。

女性人名

此前计划的从闺媛典中提取的人名,很早就加入了,各朝代共计2736个人名,大部分集中在明朝和清朝。。

从齐秋老师宋辽金元女子名录的补充更新(2025.5)中增加611个。详情如下:

时期 新增数量 备注
北宋 128
南宋 203 多为各行业女性
142
27
16
金/元 17 两个时期各记一次
宋/元 44 两个时期各记一次
元/明 1 两个时期各记一次
北方蒙古时期 33 暂时算在元朝

出土文献中的女性人名未做标注和加权。

基础功能

  • 姓氏与构件详情页,包括字音、字义(古代、古代&现代的英文翻译)、来源、频次、备注、性别偏度估计、高频次常用名提示。
  • 优化了姓名规则的判定。
  • 增加了按拼音和姓名类型(民族、类别)筛选。
  • 提高了算法效率。
  • 增加了保存与载入环境配置、收藏及管理、导出功能。

交互

  • 优化了界面和排版,在一小部分地方使用了 Material Design 的元素与设计准则。
  • 优化了概览区姓名的显示样式、异步显示机制,增加排序功能。
  • 优化了提示。
  • 优化了语言切换;增加英文界面。
  • 修改了图标。

其它

  • 删除之前装载在页面之中的说明,改为提供可读性更高的手册。
  • 修正了若干表述,包括但不限于:强调生成器仅提供汉名及音译为汉语的人名、统一网络称呼与真实称呼。

计划

打算更新的:

  • 缓慢补充已知可补充但尚未补充的人名资料;
  • 根据英文释义反查。此功能或可增加不同构件字义上的关联。有心之人或能发现反查功能已经在其它地方实现了。
  • 将生成人名的功能封装为 Javascript 库。

以上内容的更新速度都会很慢,奇慢无比。

不太想要更新的:

  • 高级检索。可以写但没空写。
  • 其它人提出的增加功能的需求。

Warning

历史版本中原载于网页的图片尚未同步放置在本页面中。

v1.3.0(历史版本)

姓名数据

宋、金、元时期女名

宋、金、元时期的女名新增100个,再次感谢齐秋老师的补充更新(详见原表格)。详情如下:

时期 新增数量 备注
北宋 6
南宋 75 多为各行业女性
元朝 1
金国 4
金/元 6 两个时期各记一次
宋/元 8 两个时期各记一次

知识图谱细分时期补充

增补了之前知识图谱数据有细分的时期(汉朝、晋朝、唐朝、宋朝)中遗漏的细分时期未知的人名数据。这部分人名在之前的版本中因未被归入具体的细分时期而被遗漏。下表的数字为原始姓名、有效男/女姓名的数目。

朝代 共计 男名 女名
汉朝 33 32 0
晋朝 272 268 0
唐朝 1818 1796 1
宋朝 5230 5225 4

西夏人名

扩充了西夏时期的人名。参考书目:佟建荣. (2013). 西夏姓氏辑考 中国历史. 宁夏人民出版社。从书中提取了589个姓名,其中蕃姓人名226个,汉姓人名363个。姓氏中蕃姓218个(包括无具体姓名和汉姓蕃名的),汉姓74个。书中另有西夏文的蕃姓、汉姓辑考,已远远超出以我目前的业余学识和学术能力能够学习和总结的范围,故此不做展开。

另外参考论文:张琰玲. (2014). 党项与西夏女性人物汇考. 西夏研究, (3), 49-61。作者搜集整理了136名党项与西夏女性(包括嫁入党项与西夏家庭的)。遗憾的是,历史记录中留有完整名字的屈指可数,所以暂无法构建西夏时期的女性人名数据。

UI

  • 优化了名字显示。
  • 现支持动态修改样式,生成结果后可以即时修改(突出显示姓的)样式而不影响数据。
  • 可以查看性别偏度。有两处显示:一个是生成的结果中每个姓名下的背景颜色和花纹,接近底色则表示没有明显性别倾向,红色/绿色越多分别表示男性/女性化程度可能越高,条纹的明显程度也代表了性别化的程度;另外点击每个姓名所在的方块,在生成和复制按钮的右侧也会显示滑动条和具体的性别偏度数值。
  • 增加了生成人名互不重复的判断(之前是每个姓名随机独立生成,可能有重复内容)。可用范围未显著大于要求生成的数目时可能不能生成足够的人名。
  • 现支持自定义生成个数(大于100可能会卡一会),上限5000,自动取整。
  • 增加了特殊人名的标注种类和范围。增加西夏人名的标注符号。原来的“外来佛教人士”一项暂时修改为更为广义的“可能受宗教影响的名字+宗教人士”。

其它

修正了若干问题:一部分错误的姓名分割,西汉秦末人士的归类。

v1.2.0(历史版本)

筛选方式

增加字形结构和切韵(暂限声母、韵母、声调)上的限制。目前限定具体字、部件、结构、切韵这四种限制条件同时最多只能选择一个。选择切韵时声母、韵母、声调这三种属性的约束是“与/AND/交集/∩”的关系,不需要全部选上(全部选上后的可选字也很少)。另外现在调整限制时,会同步更新显示姓名各部分可用字的数量。

姓名数据

数据集及朝代扩充

扩充了数据集和朝代。主要姓名数据集改用知识图谱提供的人物数据。同时参考知识图谱,对部分朝代进行了细分。

此版本和上一版本的姓氏、人名一(包括单名和双名中的第一部分)、人名二各部分可以通过熵值量化对比。简而言之,熵值越高,表明从数据中抽取姓、名的不确定性越大,生成的结果多样性越高。从数值上看,各部分的熵都增加了,是符合扩充数据集的预期的。

就是很简单地套公式计算了一下。

项目 v1.2(现版本) v1.1(上版本)
名字一(包括单名) 10.12 > 10.03
名字一(单名) 10.76 > 10.29
名字二 9.92 > 9.26
姓氏 7.21 > 7.08

另附现版本各时期的姓名熵值变化。由于数据规模不同,差别很大。 [img] 此版本的缺点是由于下文所述的对女性姓名做了非常朴素的过采样,而导致部分偏向于女性用字的字频率比直觉要高,占据高频字的前列。但其实这类高频字的计数远不如姓氏,因此与低频字的差距也远不如姓氏,过采样后的分布还是没有太离谱的。熵值中亦可以看出,姓氏的概率分布更集中在高频姓氏上。附姓氏, 名字一(单名)、名字一(非单名), 名字二的各朝代高频字的凹凸线图(为控制网页的大小,尺寸较大的原图请见开发日志,此处仅放送姓氏的缩略图)。除了姓氏看起来比较合理以外,其它折线图都不足以代表真实的古代人名高频字,仅供说明本网页所用姓名数据的一种变化趋势。

女性人名

扩充了女性姓名(进行中)。当前的女性姓名数据来源详见参考资料。由于部分数据的朝代暂未细分(主要是唐朝),归入细分姓名时暂时采取了复制若干份的做法;由于各朝代原姓名数目(所有性别)和收集到的女性姓名数目相差过大,目前暂时依旧采用对女性姓名重复计数的方法来稍微抵消差距,重复计数的次数不超过10次。大多数朝代因为比例相差远超过十倍,重复计数的影响不大,但后期仍需要用更好的方法替换。另外字、号、幼名等之类看起来像名字的也一并列入了。

原数据集(维基百科,wiki)、现主要数据集(知识图谱,cnkgraph)和单独收集的女性姓名数目比较如下(粗略计数,不准确,仅能体现大概,请悬停或点按放大查看): [img]

知识图谱的姓名数目与女性名字数目的比例(注:唐朝看上去差别不大是因为偷懒给唐朝的四个时期各复制了一份,实际比例需要大概乘以四,但是知识图谱中标注的女名绝大多数来源于明清两代,唐朝的计数不是很多,而其他朝代比例相差过于悬殊,故提取成网页所用数据之前的完整原始姓名数据中男女姓名比差不多大概是柱状图中的数据(远大于十的部分)除以十。另外为方便与旧有数据比较,合并了部分时期朝代): [img]

采样方式

优化了姓名各部分遵守现实分布和均匀采集的规则。

UI

优化了界面,增加了若干交互功能,如可用姓、名的实时数目更新,快速选择朝代等,不一一列举。实时更新可用规模里没有考虑单双名的限制,虽然但是懒得加了就这么发吧!

v1.1(历史版本)

更换数据为维基百科的人物列表。朝代范围扩充到汉朝到明朝(除去元朝)。优化交互。

v1.0(历史版本)

基于二十四史目录文本处理姓名数据。从东汉到唐朝。