学校排名技能(school-ranking)
为 HR / 培训岗一键完成「员工院校背景盘点」:把杂乱的新员工 Excel,整理成按学历+院校层级排序、带院校标签与排名备注的结果表,原表不动。
何时使用
用户要求:统计/排名员工毕业院校、给院校打标签(985/211/双一流/省属重点/海外名校等)、按权威榜单或院校层级给新员工排序、做院校背景分析。
数据能力
- 国内标签:985(39) / 211(115) / 双一流第二轮(147) / C9(9) / 华五(5) / 省属重点本科(已收录主流院校,目标 215,可继续扩充)。
- 海外群组:常春藤(8) / 英国G5(5) / 罗素集团(24) / 德国TU9(9) / 日本旧帝大(7) / 澳洲八大(8) / 法国Grand École / QS Top50 / QS Top100。
- 三榜排名:QS 世界大学排名 2026(2025-06 发布)/ 软科(ARWU) 世界大学学术排名 2025(2025-08 发布)/ 校友会中国大学排名 2026(2026-01 发布),均为最新版,可继续更新。
- 别名消歧:常用简称(北大→北京大学、华师→华东师范大学等)与英文名(Harvard→哈佛大学)归一化。
- 民办 / 专科识别:名称含「民办」或命中常见民办名单 → 打
民办本科标签;名称含「职业技术学院/职业学院/高等专科学校/职业大学/技师学院」→ 打专科/高职标签。两者三榜均无排名,走估算逻辑(见下)。 - 数据均为「快照」,更新只需改
school_db.py中对应常量。当前注册院校约 368 所(含三榜覆盖的海外名校自动入库),标签体系与扩展接口完整,新增院校/别名直接追加列表即可。
两种模式(自动识别,可 --mode 强制)
- 单列模式:列含
姓名 / 毕业院校 / 专业 / 学历,一人一行,院校=毕业院校。 - 多列模式:列含
博士院校 / 硕士院校 / 本科院校,按最高学历取对应院校参与排名(博士>硕士>本科)。
排序规则
- 先按学历层级降序(博士 > 硕士 > 本科);
- 学历内按三榜最佳排名(QS/软科/校友会取最小)升序;
- 三榜无具体排名的院校,不再一律归「无排名」,而是按院校标签层级插入正确位置(C9 > 985 > QS50 > G5/常春藤 > 211 > 双一流 > 省属重点 > 普通本科 > 民办本科 > 专科/高职),保证 985/211/双一流/省属重点 明显排在双非普通本科、民办、专科之前。
估算排名逻辑(针对三榜均无排名的院校)
对民办、专科、未收录的普通本科等三榜查不到名次的院校,技能不会把它们全部堆到「无排名」,而是按标签层级给一个估算名次(仅供排序参考,非官方数据),并在结果中明确标注「估算」:
| 院校层级 | 估算名次(数值越大越靠后) | 排序位置 |
|---|---|---|
| 985(极个别未上榜) | 1000 | 最前 |
| 211(未上榜) | 1100 | |
| 双一流(未上榜) | 1200 | |
| 海外院校(未上榜) | 1300 | |
| 省属重点 | 1400 | |
| 普通本科(双非) | 1800 | |
| 民办本科 | 1900 | |
| 专科/高职 | 2500 | 最后 |
| 完全未匹配 | 9999 | 末尾,提示「建议人工核对」 |
提示方式:结果表新增 排名类型 列(值为「官方排名」或「估算排名」);排名/层级 列对估算院校显示「估算(省属重点)」等;排序备注 注明「三榜无排名,按估算名次(XX)排序」。估算名次刻意置于所有官方名次之后(即不会用估算值去超过真实上榜院校),避免虚假精确。如需更贴近真实,可补全 school_db.py 中对应院校的三榜数据,则其自动转为「官方排名」。
输出文件
在原 Excel 同目录生成 <原名>_排名.xlsx,含两个工作表:
- 原始数据:原表完整保留;
- 排名结果:保留原列 + 新增 院校(规范化)、院校标签、排名类型、排名/层级、QS排名、软科排名、校友会排名、排序备注、序号(已按规则排序,表头高亮)。
调用方式
# 自动识别模式
python rank_employees.py --input 新员工.xlsx
# 指定模式 / 输出路径 / 工作表
python rank_employees.py --input 新员工.xlsx --mode multi --output 结果.xlsx --sheet 0
依赖:openpyxl(python -m pip install openpyxl)。
实现要点(供维护参考)
- 所有院校数据集中在
school_db.py:REGISTRY由列表常量构建;normalize()做别名/校区后缀/模糊归一;lookup()返回标签与三榜排名;rank_label()/sort_key()决定排序与展示文案。 rank_employees.py负责读表、模式识别、字段抽取、富化、排序、双表写出。- 新增院校:在对应列表(如
SHENGSHU_ZHONGDIAN、QS_RANK)追加即可,标签自动叠加。 - 同名/简称消歧:过于宽泛的简称(如「理工」「师范」)不自动归一,避免误判;明确简称(华师→华东师范)按
ALIASES与AMBIGUOUS_HINTS处理。
样例
技能目录内含 test_single.xlsx / test_multi.xlsx 及对应 _排名.xlsx,可直接运行验证。