简历学历/年限机制完善:学位词同行'至今'推断在读(专硕…2025.09-至今→硕士(在读))、无'X年经验'时按实习/工作/项目时间段累计兜底(教育经历不计入)、年限显示优先级(明确工龄>在读/应届>区间估计),新增回归测试 2 例

This commit is contained in:
FinStab
2026-09-01 18:09:17 +08:00
parent 896ac10f12
commit fc200a7592
4 changed files with 71 additions and 8 deletions
+21 -2
View File
@@ -94,7 +94,7 @@ def test_resume_parse_skills_and_years():
def test_resume_bare_name_and_edu_alias():
"""真实简历排版:首行裸姓名(无"姓名:"前缀)可识别并脱敏;专硕归一为硕士。"""
"""真实简历排版:首行裸姓名(无"姓名:"前缀)可识别并脱敏;专硕归一;"至今"推断在读。"""
from app.match.resume import parse_resume
text = (" 王伟航 \n出生年月:2003年10月 现居地:辽宁大连\n"
"联系电话:19293819303 电子邮件:wwh@example.com\n"
@@ -102,7 +102,7 @@ def test_resume_bare_name_and_edu_alias():
"职业技能:熟练掌握Python、Hadoop等数据分析技能。")
p = parse_resume(text)
assert p.name == "王**" and "王伟航" not in p.raw_masked_text # 裸姓名识别+脱敏
assert p.education == "硕士" # 专硕→硕士
assert p.education == "硕士(在读)" # 专硕→硕士;同行"至今"→在读
assert p.address.startswith("辽宁大连")
assert "Python" in p.skills
@@ -128,6 +128,25 @@ def test_resume_reading_degree_explicit():
assert p.education == "硕士(在读)"
def test_resume_years_estimate_from_periods():
"""无"X年经验"时按实习/工作/项目时间段累计兜底;教育经历不计入工龄。"""
from app.match.resume import parse_resume
text = ("姓名:王伟航\n"
"教育经历\n东北财经大学 金融科技(专硕) 2025.09-至今\n"
"实习经历\n某研究院 2025.12-2026.02\n某中心 2023.07-2023.08\n某公司 2024.07-2024.09\n"
"职业技能:Python")
p = parse_resume(text)
assert p.education == "硕士(在读)"
assert p.years == 0.7 # 3+2+3=8 个月实习
def test_resume_years_explicit_wins():
"""明确"X年经验"优先于时间段估计。"""
from app.match.resume import parse_resume
p = parse_resume("姓名:张三\n工作经历\n某公司 2020.01-至今\n5年开发经验,熟悉Python。")
assert p.years == 5.0
def test_learning_path_stage_chunking():
"""同层技能超 3 个时拆成多个连续阶段;拓扑序不变。"""
stages = topological_stages(["Linux", "Docker", "Kubernetes", "Python", "Java", "Go", "MySQL"],