3. 现场失效信息结构化

现场失效信息是RMA返修分析的原始燃料,但它的原始形态往往极其混乱:客服记录里写着“用着用着就坏了”,维修工单上标注“不工作”,售后系统里只有一句“客户投诉”。这些非结构化文本无法直接用于统计、聚类或根因分析。本节要解决的核心问题是:如何把一段自由文本的现场失效描述,转化为字段明确、取值规范、可查询可分析的结构化记录。

一、现场失效信息的六个核心字段

从失效分析的实际需求出发,一条现场失效记录至少应包含以下六类信息。它们不是随意设定的,而是对应后续分析中不同的判断维度:

  • 失效现象描述:设备或产品表现出的可观察异常,如“开机无显示”“充电时发热严重”“运行10分钟后自动关机”。这是最原始、也最需要清洗的字段。
  • 使用环境:温度、湿度、供电条件、安装位置、负载类型等。环境往往是失效的触发条件或加速因素。
  • 失效时间:包括使用时长(如累计运行小时数)、失效发生时刻、首次发现时间。用于区分早期失效、随机失效和磨损失效。
  • 批次信息:生产批次号、物料批次号、出厂日期。用于判断失效是否集中出现在特定批次,是批次性问题的关键线索。
  • 故障代码:设备自诊断系统输出的错误码,或维修人员根据故障现象归类的标准代码。故障代码是连接现象与根因的桥梁。
  • 返修状态:是否已复现、是否已定位、更换了哪些部件、维修结果。用于闭环追踪。

这六个字段中,失效现象描述和使用环境通常以自由文本形式存在,故障代码和批次信息可能部分缺失,失效时间可能只有模糊的“用了几个月”。清洗的目标就是把这些参差不齐的输入统一到可比较、可聚合的格式。

现场失效信息结构化:从原始文本到可分析字段 原始输入 → 清洗规则 → 标准化字段 → 故障代码映射 原始现场记录(非结构化) 工单 #RMA-2024-0312 “客户说用了两三个月, 最近充电时特别烫,后来 就开不了机了。” 工单 #RMA-2024-0318 “不工作,无显示。客户 在南方,夏天,湿度大。 批次号不清楚。” 工单 #RMA-2024-0325 “运行约500小时后自动 关机,环境温度约40℃, 批次 B20240115。” 工单 #RMA-2024-0402 “开机报警,代码 E-07。 使用不到一个月,室内 常温,批次 B20240115。” 工单 #RMA-2024-0409 “时好时坏,偶尔死机。 客户说不清具体时间。” 清洗与标准化规则 ① 现象归一化 “开不了机/无显示/不工作” → 统一为 “无法开机” ② 时间字段解析 “两三个月” → 取中值 75 天; “500小时” → 直接保留数值 ③ 环境字段提取 “南方/夏天/湿度大” → 温度=高温, 湿度=高湿,地区=华南 ④ 批次号补全 缺失时通过序列号反查生产系统, 或标记为“批次未知” ⑤ 故障代码映射 “E-07” → 过温保护;无代码时 根据现象匹配标准代码表 ⑥ 模糊描述处理 “时好时坏” → 标记为“间歇性故障”, 置信度低,需复现验证 结构化字段输出 字段定义(示例) failure_phenomenon:无法开机 use_duration_days:75 ambient_temp:高温(>35℃) ambient_humidity:高湿(>80%RH) batch_no:B20240115 fault_code:E-07(过温保护) reproducible:是/否/待验证 清洗后记录示例 RMA-0312:无法开机 | 75天 | 高温高湿 | B20240115 | E-07 RMA-0318:无法开机 | 未知 | 高温高湿 | 批次未知 | 无代码 批次聚合视图 B20240115:3起失效,其中2起 涉及过温保护,1起无法开机 → 提示该批次可能存在散热问题 故障代码映射示例:E-01=电源异常 | E-02=通信中断 | E-07=过温保护 | E-12=传感器故障 | E-15=电池异常

二、清洗方法:从自由文本到标准字段

清洗不是简单地“把话说清楚”,而是建立一套可重复执行的转换规则。以下方法按字段分别说明。

失效现象描述的归一化。现场描述往往用词不一,但指向同一类问题。做法是建立“同义词—标准现象”映射表。例如“开不了机”“无显示”“不工作”“没反应”统一归为“无法开机”;“发热严重”“烫手”“温度过高”归为“异常发热”;“时好时坏”“偶尔死机”“间歇性故障”归为“间歇性异常”。归一化后,同一类失效才能被正确计数和比较。对于无法归入已有类别的描述,保留原文并标记为“待归类”,定期评审是否新增标准现象。

使用环境的字段化。环境信息通常散落在描述中,需要拆分为温度、湿度、供电、安装方式、负载类型等子字段。如果原文只写了“南方,夏天”,可以映射为温度=高温、湿度=高湿、地区=华南;如果写了“40℃”,则直接填入温度数值。对于缺失的环境字段,不要臆造,统一填“未知”,并在分析时单独统计缺失率。缺失率过高说明前端采集流程需要改进。

失效时间的解析。时间字段有三种常见形态:精确时间(如“2024-03-15 14:30”)、相对时长(如“用了500小时”“两三个月”)、模糊描述(如“最近”“前段时间”)。精确时间直接转为标准日期格式;相对时长转为数值,模糊描述如“两三个月”可取中值75天并标记为“估算值”;“最近”这类无法量化的描述,标记为“时间未知”。在后续分析中,估算值和未知值应区别对待,不能与精确值混在一起做寿命分布拟合。

批次信息的补全。批次号缺失时,优先通过产品序列号反查生产系统或MES记录。如果序列号也缺失,则标记为“批次未知”。批次信息是判断批次性问题的关键,缺失批次号的记录在批次分析中应单独列出,不能默认归入某一批次。

故障代码的映射与补全。设备有自诊断代码时,直接提取并对照代码表翻译为可读的故障名称。没有代码时,根据归一化后的失效现象,匹配标准故障代码表中的最接近项。例如“无法开机”且伴随“异常发热”,可映射为E-07过温保护;如果现象与多个代码相关,选择置信度最高的一个,并保留备选代码。映射规则应形成文档,避免不同人做出不同判断。

三、清洗后的质量检查

清洗完成不等于工作结束。需要做三项检查:一是字段完整率,统计每个字段的非空比例,完整率低于80%的字段应回溯采集环节;二是归一化一致性,随机抽取若干条记录,检查同一现象是否被归入同一标准类别;三是批次聚合合理性,按批次分组统计失效数量和故障代码分布,观察是否存在某批次集中出现某一代码的情况。如果发现异常集中,应触发进一步的分析流程。

实操建议:清洗规则应写成可执行的映射表或脚本,而不是停留在文档里。例如用Python的pandas做批量替换和字段拆分,用正则表达式提取时间数值,用字典做故障代码映射。规则变更时保留版本记录,确保历史数据可追溯。

结构化清洗的最终产出是一张宽表:每行一条返修记录,每列一个标准字段。这张表可以直接用于后续的批次对比、故障代码分布统计、环境与失效模式的相关性分析。现场失效信息的价值,正是在这一步从“故事”变成了“数据”。