CareerNexus 职联:岗位能力图谱构建与动态演化分析平台(挑战杯 XH-202621)

- 全链路:多源JD接入/清洗交叉验证/结构化抽取(星火+离线双通道)/时序知识图谱/新岗位发现/演化分析/人岗匹配/学习路径
- WebUI 五视图:驾驶舱/图谱工作台/岗位演化/匹配(单人+批量)/学习路径
- 设置中心(config.json)/Token鉴权/SQLite状态库/语义向量通道(BGE-M3本地或联网API)
- 71 个 pytest 用例;数据目录仅保留结构(.gitkeep),数据由 scripts/generate_dataset.py 复现
This commit is contained in:
RoyirinRosmontis
2026-08-03 13:15:35 +08:00
commit a10442d78c
78 changed files with 12860 additions and 0 deletions
+329
View File
@@ -0,0 +1,329 @@
{
"jd_extraction_accuracy": 1.0,
"resume_extraction_accuracy": 1.0,
"match_accuracy": 1.0,
"jd_detail": {
"accuracy": 1.0,
"title_accuracy": 1.0,
"fields": {
"required_skills": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
},
"preferred_skills": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
},
"responsibilities": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
},
"scenarios": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
}
},
"samples": 144,
"bad_lines": 0
},
"resume_detail": {
"resume_full.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_partial.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_mismatch.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_frontend_full.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_data_partial.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_llm_full.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
},
"resume_legacy_mismatch.txt": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"extra": [],
"missing": []
}
},
"match_detail": [
{
"job": "Java开发工程师",
"expected": true,
"score": 76.67,
"ok": true
},
{
"job": "Java开发工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "Python开发工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "Python开发工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "前端工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "前端工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "数据工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "数据工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "算法工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "算法工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "数据分析师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "数据分析师",
"expected": false,
"score": 10.0,
"ok": true
},
{
"job": "测试开发工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "测试开发工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "运维工程师(SRE)",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "运维工程师(SRE)",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "嵌入式工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "嵌入式工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "物联网工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "物联网工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "NLP工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "NLP工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "CV工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "CV工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "云原生工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "云原生工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "AI产品经理",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "AI产品经理",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "Go开发工程师",
"expected": true,
"score": 75.0,
"ok": true
},
{
"job": "Go开发工程师",
"expected": false,
"score": 6.67,
"ok": true
},
{
"job": "前端工程师",
"expected": true,
"score": 70.0,
"ok": true
},
{
"job": "数据分析师",
"expected": true,
"score": 70.0,
"ok": true
},
{
"job": "运维工程师(SRE)",
"expected": true,
"score": 70.0,
"ok": true
},
{
"job": "前端工程师",
"expected": true,
"score": 90.0,
"ok": true
},
{
"job": "数据分析师",
"expected": true,
"score": 80.0,
"ok": true
},
{
"job": "数据分析师",
"expected": false,
"score": 20.0,
"ok": true
}
],
"real_jd": {
"accuracy": 0.9995,
"title_accuracy": 1.0,
"fields": {
"required_skills": {
"precision": 1.0,
"recall": 0.9988,
"f1": 0.9994
},
"preferred_skills": null,
"scenarios": {
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
}
},
"samples": 200,
"bad_lines": 0
},
"real_resume": {
"accuracy": 1.0,
"name_accuracy": 1.0,
"phone_accuracy": 1.0,
"samples": 50,
"phone_samples": 50,
"empty_skill_resumes": 28
}
}