Technical Paper

阶段 5 — 商家

2.8 阶段 5 — 商家解析

每张收据都会对应至一个 merchant_id。商家解析运行于同步流程中,因此已验证的预览已携带解析出的商家。解析是一个分层优先级级联 —— 每一层仅在上一层未产生匹配时运行:

  1. 税务识别码 —— 打印的税号(土耳其为 VKN)先以其校验位算法验证,再在商家主表中查找。有效的税号是直接的身份匹配。
  2. 已识别品牌 —— 当提取阶段识别出已知连锁品牌时,品牌官方写法直接解析至该连锁商家。
  3. 模式锚点 —— 习得的按商家文本模式与标准化商家名称匹配,比较前先剥离问候语前缀。
  4. 位置 —— 当仅凭名称证据存在歧义时,地址信号收窄候选范围。
  5. 模糊匹配 —— 标准化名称与现有商家候选之间的相似度匹配。
  6. 自动创建 —— 当没有任何层匹配时,一条受速率限制的路径创建新的商家记录,并进入验证队列。

级联的相似度设置由内部运营层管理。

连锁对应

解析为已知连锁(BIM、A101、Migros、ŞOK)的商家会获得 chain_id。连锁驱动两件事:

  • 跨分店聚合 用于 B2B 数据产品(「全国 Migros」的购物篮价格)。
  • 地理扩充 —— 当用户选择加入时,分店地址会以商家主表中的城市/区域信息扩充。

地理扩充(仅限选择加入)

若用户启用位置分享,收据会标记解析后的城市/区域。系统使用城市级地理信息。这满足 08 中的隐私承诺以及 05 中 B2B 数据产品的 k-匿名性要求。

未知商家

若没有任何层完成解析且未走自动创建,收据会以 merchant_id = null 写入,并保留 merchant_raw_name。信任评分器(03)将未知商家视为轻度负面信号。未匹配的商家通过管理端验证队列审查。