Update README and project cleanup

This commit is contained in:
inkling
2026-04-08 14:52:09 +08:00
commit fafd267288
71 changed files with 14865 additions and 0 deletions

175
workflow1.0.md Normal file
View File

@@ -0,0 +1,175 @@
# workflow1.0
## 1. 本次目标与已确认决策
### 1.1 目标
-`清洗3.0.xlsx`56列表头固定导入现有DMP系统。
- 对数据执行可复用的清洗、规范化、标签生成、导入、验证流程。
- 建立“自动处理 + 必要人工介入检查点”的长期工作流。
### 1.2 已确认决策(本轮执行)
1. `参加指导最想解决` 缺失约90%)采用 **保守推断**,并在面板标签上标注“(推断)”。
2. `监护人2` 相关字段整体删除(缺失高且当前模型不需要双监护人建模)。
3. 删除 `付费能力标签` 分类,避免无依据推断造成误导。
4. 导入模式为 **完全替换**(本次以新数据全量覆盖旧数据)。
---
## 2. 数据到标签的处理策略(本次)
## 2.1 列分层处理
### A. 直接删除列(隐私/冗余/不再使用)
- 监护人2相关`H~N`
- 联系方式相关:`G`, `N`(如仍存在二次映射则一并移除)。
- 明确隐私字段:`O(孩子姓名)`, `U(家庭地址)`
- 仅保留规范化版本时,原文字段将不入标签逻辑(如 `_原文` 列)。
### B. 保留并参与标签生成列
- 基础规范列:`AN`, `AP`, `AR`, `AT`, `AV`, `AX`, `AZ`, `BB`, `BD`
- 关系与教养列:`W`, `X`, `Y`, `Z`, `AA`, `AB`, `AC`
- 其他辅助列:`C(文化程度)``B(家庭角色)`(仅当规范列不足时作为补充)。
### C. 低质量列处理
- `参加指导最想解决_扩展(BD)`
- 有值:直接入“核心问题标签”。
- 无值:按保守规则推断,标签名称后缀 `(推断)`
### D. 家庭角色专项清理(本次新增)
- 仅保留真实家庭关系词,不保留职业、状态、描述、乱码、手机号、标点碎片。
- 标准化后保留的家庭角色以“可解释、可复用、可前端展示”为准。
- 第一轮收敛后统一为 18 个家庭角色标签;二次收敛后进一步压缩为 12 个标签。
- 最终保留:`妈妈``爸爸``奶奶``外婆``爷爷``姑姑``外公``舅舅``继母``姨妈``伯娘``其他监护人`
- 规则:`家长``父母` 归并到 `其他监护人``妻子``女儿``姐姐``儿子` 删除。
## 2.2 保守推断(核心问题标签)
### 推断原则
- 仅在高置信线索存在时推断。
- 无明显线索时宁可不贴标签,不做激进猜测。
- 每个推断标签必须带后缀:`(推断)`
### 候选线索来源(多因素)
1. 学习状态:`学习成绩_规范(AX)`
2. 家庭与关系:`家庭氛围(W)`, `亲子关系(X)`
3. 教养风险:`Y/Z/AA/AB`
4. 重大事件:`重大影响事件_扩展(BB)`
### 推断样例(示意)
- `学习成绩_规范=差``亲子关系=紧张` -> `学习动力与执行(推断)`
- `有无打骂教育=是``经常否定孩子=是` -> `教养方式调整(推断)`
- `家庭氛围=冲突紧张` -> `亲子沟通修复(推断)`
## 2.3 规范化3类实现家庭氛围
### 目标分类
- `温暖`
- `中立`
- `冷漠`
### 实现方式
1. 关键词词典匹配(主规则)。
2. 冲突/负向词优先级高于一般正向词。
3. 未命中规则时默认 `中立`(保守策略)。
### 最小规则集(可迭代)
- 温暖词:和谐、支持、理解、亲密、关心、沟通良好。
- 冷漠词:冷漠、疏离、冷战、回避、忽视、压抑。
- 中立词:一般、还行、普通、尚可、平常。
---
## 3. 面板与后端联动改造
## 3.1 标签显示要求
1. 推断得到的标签统一后缀:`(推断)`
2. 推断标签在返回结构中增加 `source: inferred`
3. 非推断标签 `source: original`
4. 前端展示数据来源提示(例如 hover/说明文字):
- 原始:来自原始/规范化字段。
- 推断:由规则推断生成。
## 3.2 分类调整
- 删除 `付费能力标签` 分类:
- 不再生成该分类标签。
- 不再写入该分类及其关系数据。
- 前端自动按后端返回分类渲染列数减少1列。
---
## 4. 本次执行步骤(一次性落地)
### Phase 0准备与备份
1. 备份当前数据库(含可回滚版本号)。
2. 固定输入文件名:`清洗3.0.xlsx`
3. 运行预检查:表头完整性、行数、空值率、关键字段有效性。
### Phase 1清洗与规范化
1. 删除隐私/冗余字段含监护人2全量字段
2. 统一空值表示(`null`)。
3. 执行家庭氛围3类规范化。
4. 执行关系字段规范化(是/否、强/中/弱等)。
### Phase 2标签生成
1. 生成原始可直接映射标签。
2.`参加指导最想解决` 缺失记录执行保守推断。
3. 推断标签统一后缀 `(推断)`
4. 删除 `付费能力标签` 整个分类输出。
### Phase 3导入与覆盖
1. 采用“完全替换”模式写入用户、标签、关系。
2. 重新计算 coverage/coverage_rate。
3. 清除服务缓存并重启服务。
### Phase 4验证与放行
1. 数据量核对:用户数、标签数、关系数。
2. 分类核对:确认无 `付费能力标签`
3. 推断核对:抽样检查 `(推断)` 标签合理性。
4. 面板核对:标签显示、来源说明、计算功能正常。
---
## 5. 固化为“长期自动工作流”步骤
## 5.1 标准输入约束
- 输入Excel表头固定当前56列
- 若表头变动,流程自动中断并输出差异报告。
## 5.2 自动化流水线
1. `validate_headers`:校验表头是否与模板一致。
2. `clean_data`:删除列、空值处理、文本规范化。
3. `generate_tags`:规则映射 + 保守推断。
4. `import_replace`:全量替换导入。
5. `post_verify`:统计、抽样、接口与前端校验。
6. `checkpoint_gate`:人工确认后放行。
## 5.3 必要人工介入检查点(必须签字)
1. 推断策略抽样检查至少50条推断样本
2. 分类分布异常检查(某类占比异常波动报警)。
3. 面板业务可解释性检查(“为何是该标签”可追溯)。
## 5.4 失败回滚机制
- 导入前快照备份。
- 任一检查点失败 -> 自动回滚到上一版本。
- 记录失败原因和异常样本,进入规则修订队列。
---
## 6. 验收标准(本次)
1. 成功导入 `清洗3.0.xlsx` 全量数据。
2. `监护人2` 数据不再参与模型与标签。
3. `付费能力标签` 分类从后端和面板完全消失。
4. `参加指导最想解决` 缺失场景产出的标签均带 `(推断)`
5. 面板可区分 `original``inferred` 来源。
6. 所有核心接口响应正常,且统计字段一致。
---
## 7. 命名规范已确认(已锁定)
- 推断标签命名风格统一为:`业务短语 + (推断)`
- 示例:`学习动力不足(推断)``亲子沟通修复(推断)``教养方式调整(推断)`
- 执行要求:所有由规则补全生成的“核心问题标签”均必须带 `(推断)` 后缀,原始字段直接命中的标签不得带该后缀。
已进入脚本实现与执行阶段。