一个能够生成随机中文姓名的python包

几个月以前,作者在对一个中学的数据库进行测试时,需要用到大量随机姓名,发现似乎缺少能满足这一需求的包,因而展开了这个项目。

安装

此包已经上传到pypi,源码已托管到github,因而可以简单地通过命令行下载使用。

pip install mingzi

快速开始

您可以通过控制 volume 参数来控制输出的随机姓名的数量。

from mingzi.mingzi import *
mingzi(volume=5)
>>> [['温悠', '女'], ['李嘉茵', '女'], ['孟虚', '男'], ['王俊', '男'], ['周伦', '男']]

 通过 show_gender 参数来控制是否输出姓名的性别信息。

mingzi(volume=5, show_gender=False)
>>> ['李昊惟', '邵儿', '朱奕', '刘宇军', '孙易']

mingzi(volume=5, show_gender=True)
>>> [['范若翰', '男'], ['邓铭锵', '男'], ['刘贝韵', '女'], ['施喆', '男'], ['陈楚悦', '女']]

通过 female_rate 参数来控制输出姓名列表中女性姓名的比例,这一参数默认为0.49,即为中国目前(2024年)人口女性比例。

mingzi(volume=5, female_rate=0.2)
>>> [['尚旭', '男'], ['任淇', '男'], ['杨鑫', '男'], ['陈素卿', '女'], ['王杭', '男']]

mingzi(volume=5, female_rate=0)
>>> [['祝泽商', '男'], ['骆奎', '男'], ['王凯泽', '男'], ['郑舱', '男'], ['孙魏', '男']]

我们知道,不同的姓氏在人口中占有不同的比例。你以我的姓氏,“李姓”为例,这个比例大概在百分之七左右,在设计这个包的时候,这一点得到了妥善的考虑:不同的姓氏在输出数据中占有的不同的比例,具体参考于当前的人口统计数据。

你能从如下测试数据中很容易地发现,这和我们的日常经验是相符的。

mingzi(volume=100, show_gender=False)
>>> ['刘灏风', '叶松', '宋恬', '赵秦齐', '何怡芬', '余伟', '唐平', '吴忆狄', '黄书', '于琪纯', '傅娴', '罗菲', '徐宇', '张风', '李雁楚', '童虞', '李虚', '陈稹', '宋语', '陈拾', '刘彰', '潘任', '孙晨纶', '汤元', '江永茂', '张生', '贾昭美', '韦科', '吴哲', '王盛', '徐娅', '朱诗', '胡鑫', '姜翠', '魏谚', '梁泽商', '王嘉茵', '孙拾', '秦艳', '傅娴', '刘菁', '周蒙', '韦曦', '李痴', '吴偌瑾', '谢雄', '李宇军', '胡佳禾', '程丽', '史鸣哲', '陈若翰', '锺宁', '史自昊', '罗书琴', '潘觅', '孙璥', '陈泽商', '舒莉', '薛聪', '张锋玮', '杨熙岩', '王泰骞', '孙娥', '楼函', '魏妮', '向珅南', '高蓝', '吴若娜', '李茂', '马群', '陈君', '王青熙', '易新菱', '叶令', '王舞', '王茂彦', '李纹窈', '陈旭平', '李万信', '孔松樱', '苗松芬', '田希嫣', '张奕', '李林', '蓝慕巧', '李觅蕴', '孔希嫣', '罗州', '马行', '汤宇', '苏晴茹', '陈阳', '杨梓琪', '陈赫', '王霄', '郭霆', '刘雅妙', '刘秦恒', '王纹窈', '马峰']

复姓人口在我国占有的比例很少,只有大概千分之一,然而你可以通过调整 com_rate 参数的大小,来调整这一比例,来提高输出数据中复姓姓名的比例,这在某些情形,你比如说为一个武侠游戏生成测试数据和素材,是很有必要的。

mingzi(volume=10, com_rate=0.9, show_gender=False)
>>> ['申屠素卿', '单于怡芬', '呼延莎', '刘清滢', '姚玥', '公良雁楚', '吴嘉茵', '夏侯凌', '公羊冰', '巫马昶']

你可以通过 single_rate 来控制输出的姓名中单字名的比例,这个变量的缺省值为0.14,即为目前统计数据显示的中国单字名在全部人口中所占的比例。

mingzi(volume=10, single_rate=0.7, show_gender=False)
>>> ['魏炫灿', '康文芝', '赵贻', '张南', '杜靖', '罗茵', '杨凯', '周燕', '谷浦宇', '陈君']

专一的功能

说到随机姓名、 python这些关键字,你可能已经听到过faker包,本包和faker包的区别在于:本包仅仅聚焦于生成随机的中文姓名这个功能,因而更加专业。

以可供随机选择的姓名数据来说,faker仅仅包含百十个随机姓名,而本包最初的版本已经包含700个单字或者双字的男女姓名,而且这一数字将会随着不断的更新而逐渐增加。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值