尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

PiPiName项目架构深度解析:5个Python文件如何串联完整起名流水线

PiPiName项目架构深度解析:5个Python文件如何串联完整起名流水线 PiPiName项目架构深度解析5个Python文件如何串联完整起名流水线【免费下载链接】PiPiName根据三才五格和古诗文给宝宝起名项目地址: https://gitcode.com/gh_mirrors/pi/PiPiNamePiPiName 是一款基于三才五格和古诗文的开源宝宝起名工具用 5 个 Python 文件串联起配置 → 算笔画 → 筛名字 → 出结果的完整起名流水线可以从《诗经》《楚辞》《论语》《周易》、唐诗、宋诗、宋词 7 大词库中为宝宝批量生成笔画吉利、出处典雅的名字。本文将带你看懂它的架构设计。一分钟了解PiPiName 解决什么问题 传统给宝宝起名往往要在好听、好写、出处雅致、笔画吉利之间反复权衡。PiPiName 的思路很巧妙先根据姓氏用三才五格算法反推出吉利的双字笔画组合再把这些组合去海量古诗文中匹配自动筛出笔画吻合的现成词句最终输出一份带出处、带笔画、带性别标记的候选名单方便你在 Excel 里进一步筛选。也就是说它不是随机拼字而是先定笔画、再找出处兼顾了易学与文化底蕴。快速上手3 步跑通起名流水线 ⚡git clone https://gitcode.com/gh_mirrors/pi/PiPiName cd PiPiName pip install opencc打开config.py修改几个关键参数后直接运行main.py即可name_source选择词库0 默认名字库 / 1 诗经 / 2 楚辞 / 3 论语 / 4 周易 / 5 唐诗 / 6 宋诗 / 7 宋词last_name姓氏仅支持单姓min_stroke_count/max_stroke_count名字每个字的笔画范围allow_general是否允许中吉配置开启后名字更多gender按男/女筛选需配合名字库过滤运行后候选名字会写入names.txt每行包含名字、性别、单字笔画和原文出处例如张恒寿 男 恒 寿 10 14 如月之「恆」如日之「壽」。小提醒如果不想起名而是想查验某个现成名字的吉凶配置只需把check_name填成三字姓名如周杰伦程序会直接打印五格与三才结果。项目全景5 个 Python 文件的职责分工PiPiName 的整个功能层由 5 个 Python 文件构成config.py作为参数入口单独存在文件角色一句话概括main.py流水线总控读配置、调度各模块、过滤排序、输出结果wuge.py五格算法引擎计算天/人/地/总/外五格判定大吉中吉凶反推吉利笔画组合stroke_number.py笔画数据中心加载繁体笔画表和部首拆字表按康熙字典口径计算笔画name_set.py词库筛选器遍历 7 大词库按笔画组合提取候选名并做名字库校验name.py名字数据模型用Name类统一封装名字、笔画、性别、出处支持排序去重依赖关系一目了然main.py是指挥官向下调用wuge.py和name_set.py二者又都依赖stroke_number.py取笔画、依赖name.py存数据。整条链路短而清晰非常适合新手阅读。流水线全解一个名字是如何诞生的 第一步config.py 声明我要什么样的名字config.py是整条流水线的起点所有参数集中于此改配置不改代码这也是该架构对新手最友好的一点。第二步wuge.py 反推吉利笔画组合wuge.py内置了三套核心数据笔画吉凶表33 个大吉数、10 个中吉数、35 个凶数三才五行表天、人、地三格按1/2木、3/4火、5/6土、7/8金、9/0水取五行组合成如木水水这样的三才配置共 39 种大吉、17 种中吉、67 种凶。get_stroke_list()函数会枚举 1~80 笔的所有双字组合只要人格、地格、总格、外格与三才配置全部合格就把这对笔画收入白名单。起名从此变成一道查表题。第三步stroke_number.py 提供康熙字典口径的笔画五格起名讲究康熙字典笔画stroke_number.py在启动时一次性加载两个数据文件data/stoke.dat繁体字 → 笔画数映射表data/chaizi-ft.dat汉字拆字表用于氵算水、艹算草、辶算辵、左阝算阜、右阝算邑等部首特殊折算。get_stroke_number()对单字查表累加再按部首规则修正保证笔画口径与五格体系一致。第四步name_set.py 在 7 大词库中按笔画捕鱼 这是全项目数据量最大的环节。name_set.py根据name_source选择词库默认名字库data/Chinese_Names.dat约 19 万条现成名字诗经data/诗经.json、楚辞data/楚辞.txt、论语data/论语.json、周易data/周易.txt唐诗data/唐诗/58 个分片文件每 1000 首一片、宋诗data/宋诗/255 个分片、宋词data/宋词/22 个分片。核心函数check_and_add_names()的逻辑是把每一句诗切分后逐字算笔画只要句中按先后顺序出现笔画组合白名单中的两个字就提取为一对候选名。同时用 OpenCC 完成繁简互转——古诗文多为繁体输出则统一转回简体。开启name_validate后还会与名字库求交集过滤掉虽笔画吉利但明显不成词的生造名并顺带补上性别标签。第五步name.py 让每个名字自带档案name.py中的Name类用__slots__紧凑存储名字、两个字各自笔画、性别、原文出处并把名字里的两字用「」标出。同时实现了__str__、__lt__、__hash__使名字天然支持打印、排序、集合去重——这就是为什么候选名能高效地批量处理。收尾main.py 过滤、排序、写盘回到总控main.py它对候选名做最后三道闸笔画超出min_stroke_count~max_stroke_count的直接丢弃开启性别筛选时不符合gender的丢弃双未知性别除外含有dislike_words中不想要字的丢弃。幸存的名字排序后写入names.txt流水线到此结束 两种运行模式起名 vs 名字查验 main.py开头通过判断check_name长度实现了一个优雅的分支模式一起名check_name为空走完整流水线结果输出到names.txt模式二查验填入三字姓名wuge.py的check_wuge_config()打印五格与三才吉凶若check_name_resource Truename_set.py的check_resource()会反向遍历全部词库找出该名字每个字的诗文出处。一个程序、两种能力代码却只多了几行判断——这是小项目里低复杂度架构的典范。小结值得新手借鉴的 3 个设计点 ✅配置与逻辑分离所有需求都在config.py表达main.py只做调度改参数零风险单一职责算五格、查笔画、筛词库、建模型各归其文件任何一块都能独立读懂数据驱动词库、字库全部放在data/目录JSON、TXT、DAT 分片存储换词库只需加文件不动核心代码。如果你想继续深入可以从main.py的 40 行入口代码读起顺着调用链一路看到词库筛选——这条最短阅读路径正是 PiPiName 架构给新手最好的礼物 【免费下载链接】PiPiName根据三才五格和古诗文给宝宝起名项目地址: https://gitcode.com/gh_mirrors/pi/PiPiName创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表