简历信息提取系统2 - 题解
一、题目分析
本题要求从自然语言简历文本中提取3个字段:
- degree:最高学历等级(PHD/MASTER/BACHELOR/COLLEGE/OTHER),需处理降级规则
- yoe:工作年限,按不同工作类型加权计算后向下取整
- skills:技术栈,仅关注6种指定技术,大写+字母排序
二、难点分析
- 学历降级的多学历交叉:当一个人同时有"已毕业硕士"和"在读博士"时,博士降级为MASTER,已完成的硕士仍为MASTER,最终取MASTER。LLM容易混淆"降级后比较"的逻辑。
- 创业/自由职业系数为0的反直觉性:创业6年CTO经历按规则yoe=0,违反常识。LLM倾向于给创业经历赋予正权重。
- "边读博边兼职"的双重身份判定:同一时期既是"读博(系数0)"又是"兼职(系数0.5)",应按0.5计算而非0。LLM容易选择较低的系数。
- "总共"vs"再吃"的区别在yoe场景中的类比:多段工作经历的时间是否重叠需要仔细判断。
三、Prompt设计思路
3.1 降级规则用穷举示例消除歧义
不仅给出降级映射表(博士在读->MASTER,硕士在读->BACHELOR等),还针对最容易出错的多学历场景给出完整推理:
- "2020年硕士毕业+目前博士在读" -> 分别评估再取最高
- 明确强调"已毕业/已获得的学历永远不降级"
3.2 工作系数用反直觉标注
在创业系数为0的规则旁加注释:创业不算工作年限!即使创业6年yoe也是0!用感叹号和极端例子强化模型对这条反直觉规则的记忆。
3.3 双重身份场景单独拎出
将"边读博边兼职"作为独立规则项说明,并给出完整计算示例:2020-2022全职2年 + 2022-2024边读博边兼职2年 → 2.0+1.0=3.0 → floor=3
3.4 技能过滤列表化
明确列出仅关注的6种技术(GO/JAVA/JAVASCRIPT/PYTHON/REACT/VUE),并标注不在此列表中的技术(C++、SQL等)不输出,用排除法辅助理解。
四、关键技巧
- 系数表格式呈现:全职1.0/实习兼职0.5/创业0/自由职业0/空窗期0,清晰对应。
- floor取整显式说明:用
向下取整(floor)而非"四舍五入",避免歧义。 - 降级只看"未完成":用状态词列表"在读/肄业/休学"界定降级触发条件,用"已毕业/已获得"界定不降级。
- 排序提示:技能要求"按字母升序排列",并给出完整列表顺序供参考。
- 本科降级到OTHER而非COLLEGE:这是一个容易出错的点,prompt中显式列出
本科在读/肄业/休学 → OTHER。



京公网安备 11010502036488号