4. 传统分类方法回顾:基于规则的分类
在机器学习与深度学习模型大规模应用于采购品类分类之前,企业普遍依赖基于规则的分类方法。这些方法以人工定义的逻辑为核心,通过关键字匹配、正则表达式或脚本自动化实现品类映射。虽然实现成本低、可解释性强,但在复杂采购场景下存在明显的性能瓶颈。
4.1 基于关键字匹配的分类
关键字匹配是最直观的分类方式:为每个品类预定义一组触发词,当采购物料描述中包含这些词时,直接分配对应品类。
示例规则(伪代码):
IF 物料描述包含 "笔记本电脑" OR "台式机" OR "显示器" THEN 品类 = "IT硬件"
IF 物料描述包含 "A4纸" OR "文件夹" OR "订书机" THEN 品类 = "办公用品"
IF 物料描述包含 "轴承" OR "齿轮" OR "液压泵" THEN 品类 = "MRO备件"
这种方法的优点在于规则透明、部署迅速,但存在以下致命缺陷:
- 语义盲区:无法处理同义词(如“笔记本”可能指电脑也可能指纸质笔记本)
- 规则爆炸:随着品类数量增加,规则数量呈指数级增长,维护成本急剧上升
- 零泛化能力:遇到未在规则中出现的新物料描述时,直接分类失败
4.2 基于正则表达式的分类
正则表达式(Regex)在关键字匹配基础上增加了模式匹配能力,可以处理更复杂的文本结构,如型号、规格、尺寸等。
典型正则规则示例:
# 匹配CPU型号
品类_CPU = r'\b(i[3-7]-\d{4,5}[A-Z]?|Ryzen\s[3-9]\s\d{3,4}[X]?)\b'
# 匹配内存规格
品类_内存 = r'\b(DDR[4-5]\s?\d{1,2}GB)\b'
# 匹配工业阀门规格
品类_阀门 = r'\b(闸阀|截止阀|止回阀)\s?DN\d{2,3}\b'
正则表达式相比纯关键字匹配,在以下方面有所提升:
- 支持通配符、量词、分组,能匹配型号变体
- 可提取结构化信息(如尺寸、容量、电压)辅助分类
- 减少部分规则数量,提高匹配精度
但正则表达式仍然无法解决语义歧义问题,且编写和调试成本高,非技术人员难以维护。
4.3 基于Excel/VBA的自动化分类
在缺乏专业分类系统的企业中,Excel VBA(Visual Basic for Applications)常被用作自动化分类工具。通过编写宏,实现批量物料描述的规则匹配与品类赋值。
VBA分类宏核心逻辑(简化):
Function ClassifyItem(desc As String) As String
If InStr(1, desc, "轴承", vbTextCompare) > 0 Then
ClassifyItem = "MRO-机械备件"
ElseIf InStr(1, desc, "电缆", vbTextCompare) > 0 Then
ClassifyItem = "电气材料"
ElseIf desc Like "*DN*mm*" Then
ClassifyItem = "管阀件"
Else
ClassifyItem = "未分类"
End If
End Function
Excel/VBA方案的优势在于零额外成本、业务人员可自行维护。但其局限性同样显著:
| 维度 | Excel/VBA方案 | 理想方案要求 |
|---|---|---|
| 处理规模 | 通常 < 10万条,超过则卡顿 | 百万级/千万级实时处理 |
| 规则维护 | 硬编码在宏中,修改需懂VBA | 可视化规则引擎或自动学习 |
| 版本控制 | 文件散落,无版本管理 | 中心化规则库+版本回滚 |
| 错误处理 | 无日志,出错难追溯 | 全链路日志+异常告警 |
| 扩展性 | 新增品类需重写宏 | 增量学习,自动适配 |
4.4 传统方法的局限性分析
综合以上三种传统分类方法,其核心局限性可归纳为以下五个方面:
- 语义理解缺失:无法区分一词多义(如“笔记本”)、上下文依赖(如“泵”在化工vs水务中的差异)
- 规则维护成本高:采购物料描述变化快,规则需持续人工更新,大型企业规则数量可达数千条
- 泛化能力为零:对未见过的描述、新供应商、新品类完全失效,分类覆盖率通常仅60%-75%
- 无法处理拼写/格式噪声:实际采购数据中,物料描述常包含拼写错误、缩写、单位混用等噪声
- 缺乏置信度评估:规则匹配只有“是/否”结果,无法给出分类置信度,导致错误分类难以识别
实践警示:某制造企业曾维护超过1200条VBA分类规则,每年因物料描述变更导致约15%的规则失效,需投入2人月进行规则修复。切换到机器学习模型后,分类准确率从72%提升至93%,规则维护工作量下降80%。传统方法在数据量小、品类稳定时仍可应急使用,但不应作为长期战略方案。
4.5 传统方法与机器学习方法的对比
为更直观地理解传统方法的定位,下表从多个关键维度进行对比:
| 对比维度 | 基于规则的传统方法 | 基于机器学习的现代方法 |
|---|---|---|
| 分类准确率 | 60% - 75%(受规则覆盖度限制) | 85% - 95%(持续优化可达更高) |
| 维护工作量 | 高(规则需人工持续更新) | 低(模型可增量学习) |
| 对新描述适应能力 | 无(必须预先定义规则) | 强(基于语义相似度泛化) |
| 可解释性 | 高(规则透明) | 中等(需借助SHAP/LIME等工具) |
| 实施成本 | 低(Excel/VBA即可) | 中高(需标注数据+算法开发) |
| 适用场景 | 品类少(<50)、描述规范、数据量小 | 品类多、描述复杂、数据量大 |