AI 生活账单分类模糊消费记录的结构化不是靠猜测一、消费分类的准确率瓶颈在输入质量而非模型能力AI 记账应用的卖点之一是自动分类消费。用户输入星巴克35模型识别为餐饮-咖啡输入淘宝200分类为购物。这种分类在典型消费场景下准确率不错但遇到模糊输入就明显下降。超市买了点东西大概一百多不知道是日用品还是食品给朋友转账500不知道是社交还是借贷。模糊输入不应该靠模型猜测分类。猜测的分类会导致统计偏差——用户以为自己食品消费占30%实际模型把一半日用品都猜成了食品。正确做法是给模糊输入设置待确认状态让用户在方便时补充分类信息。模型提供候选分类用户最终决定。二、消费分类链路的确认层设计分类链路应该在模型输出后增加一个确认层。明确输入直接分类存储模糊输入进入待确认队列。flowchart TD A[消费输入] -- B[金额解析] B -- C[描述清晰度评估] C -- D{描述是否足够清晰} D --|清晰| E[模型自动分类] D --|模糊| F[模型提供候选分类] E -- G[直接存储] F -- H[待确认队列] H -- I[用户补充分类] I -- G G -- J[分类统计]清晰度评估不需要复杂模型。关键词匹配就够了——包含具体商品名、品牌名、店铺名的输入视为清晰只包含买了一些东西花了点钱的视为模糊。区分清晰和模糊比追求100%自动分类更务实。三、消费分类与确认机制的实现type ExpenseInput { description: string; amount: number; date: string; }; type ExpenseRecord { description: string; amount: number; category: string; status: confirmed | pending; suggestedCategories: string[]; }; // 描述清晰度评估简单关键词匹配 function assessClarity(description: string): clear | fuzzy { const clearKeywords [星巴克, 地铁, 电费, 房租, 加油, 医院]; const fuzzyKeywords [买了一些, 大概, 忘了, 不太确定]; if (clearKeywords.some((k) description.includes(k))) return clear; if (fuzzyKeywords.some((k) description.includes(k))) return fuzzy; // 包含具体金额和商品描述的视为清晰 if (description.length 5) return clear; return fuzzy; } export function classifyExpense(input: ExpenseInput): ExpenseRecord { const clarity assessClarity(input.description); if (clarity clear) { const category autoClassify(input.description); return { ...input, category, status: confirmed, suggestedCategories: [category], }; } // 模糊输入提供候选分类让用户选择 const candidates suggestCategories(input.description); return { ...input, category: 待确认, status: pending, suggestedCategories: candidates, }; } function suggestCategories(description: string): string[] { // 根据描述中的零碎线索提供最多3个候选分类 if (description.includes(超市) || description.includes(买)) { return [日用品, 食品, 服饰]; } if (description.includes(朋友) || description.includes(红包)) { return [社交, 人情, 转账]; } // 完全无法推断时提供常见分类供用户选择 return [餐饮, 购物, 交通, 娱乐]; }候选分类最多3个不提供10个让用户逐一排除。3个候选加上其他选项用户只需做简单选择。待确认的记录在统计中用单独颜色标记不混入已确认的分类统计中避免数据污染。四、分类准确率的验证不能只看自动分类的比例很多人用自动分类占比来衡量产品效果——90%的消费记录被自动分类看起来很好。但如果其中30%的分类是错误的统计结果就不可信了。更合理的指标是分类正确率即自动分类中有多少是用户没有纠正的。用户纠正率是最直接的反馈。如果80%的自动分类没有被纠正说明模型判断可靠如果纠正率超过40%说明自动分类的参考价值不大应该更多转为待确认队列。还有时间成本考量。待确认队列里的记录越多用户需要花更多时间补充分类。如果每笔消费都要确认自动分类的意义就消失了。产品需要在分类准确率和用户操作负担之间找平衡点而不是追求单方面的极致。五、总结AI 消费分类应把模糊输入交给确认层而非模型猜测。描述清晰度用简单关键词评估清晰输入直接分类模糊输入进入待确认队列并提供最多3个候选分类。待确认记录不混入已确认的统计。衡量效果看分类正确率和用户纠正率而非自动分类占比。产品要在准确率和操作负担间找平衡。