POI 标签混入位置信息污染分类判据 (Location Tags Polluting POI Rule Judgment)
触发条件
- 分类判据把多个字段拼成一个 haystack 一起做关键词匹配,例如
name + type + tags。 - 上游 POI 数据是抓取的(高德 / 百度抓取),而非人工录入。
- 上游会把 POI 所在的建筑自动挂进
tags字段。 - 判据里有关键词属于「场所名 / 建筑名」而不是「业态名」——例如「食堂」「广场」「图书馆」。
症状
- 判据在数据的一部分上表现正常、另一部分反常,规则本身没有明显漏洞。
- 具体表现:食堂里的每一家小铺都被判定成「大地点」,抢走了商业广场的落点。
实测反例——「超超水果店」的 tags 是美食;水果生鲜;便民服务;三食堂,
与「食堂本身」的判据结果一致。 - 单纯看
category字段看不出任何异常:它们确实都正确地标着「美食」。 - 不同校区表现不一致:某个校区的整批
tags是错的(例如统一为教育培训;校内设施),
在该校区判据表现与其它校区不同。
容易误判的方向
- 加更多业态关键词。 治不了——问题不是词表不全,而是命中的那个词本来就不该被当成业态证据。
- 只检查
category字段。 这个坑恰恰在category之外的字段里。 - 认为是数据标注错误,去改正上游数据。 位置标签是上游自动挂的,不是标注员手误;
即使这次改对了,下次同步又会覆盖回去。 - 降低关键词权重 / 加打分排序。 会让判据从确定性变成概率性,反而更难解释和调参。
根因
tags 是一个混合语义字段:它同时装两种东西。
| tags 里的词 | 实际语义 | 例子 |
|---|---|---|
| 业态词 | 这个 POI 是什么 | 便利店、小吃快餐、图书馆 |
| 位置词 | 这个 POI 在哪里 | 三食堂、校内设施、教学楼A |
下游把 tags 当纯业态字段用,于是位置信息被当成了业态证据。
关键分辨点在于:同一个词出现在不同字段里,证据强度完全不同。
「食堂」出现在 name 里 → 这个 POI 就是食堂 (业态证据,强)
「食堂」出现在 tags 里 → 这个 POI 在食堂里面 (位置证据,弱)同理,「图书馆」出现在 name 里说明这是图书馆;出现在某个小铺的 tags 里,
只说明这个铺子在图书馆楼内。
最终解决原则
- 按字段区分证据强度。 把「只在 name 里算数」的词单独成表(如
NAME_ONLY_HINTS),
与「任意字段都算数」的词表(如ANCHOR_HINTS)分开维护。判断「这个点是什么」只查 name;
判断「这个点属于什么业态」才用 tags。 - 给噪声词最高优先级。 单独一张否决表(如
NOISE_HINTS:停车场、充电站、公交站、ATM…),
命中即否决,优先于所有正向词表。理由:噪声词的信号方向比正向词更可信——
「停车场」出现在哪个字段都说明这地方是停车场,而正向词出现在 tags 里可能是位置标签。 - 为「整批 tags 不可信」留兜底。 判据要能只靠 name 跑通。当某个校区的 tags 整批错误时,
规则仍应给出正确结果——这是对第 1 条的强度检验。 - 保留人工覆盖口子。 关键词规则总有覆盖不到的边角,POI 上留一个
anchor字段供管理端
定死true/false,不用改代码。规则覆盖大多数,人工覆盖兜长尾。
验证方法
三条断言缺一不可,且必须成对构造正反例:
- 正例:食堂本身(「万家万里餐厅(三食堂)」「万家钱湖餐厅(一食堂)」)必须判定为大地点。
→ 证明「只看名称」不会漏掉真食堂。 - 反例:位于食堂内的小铺(「超超水果店」,tags 含
三食堂)必须不判定为大地点。
→ 证明位置标签不提拔。 - 鲁棒性:把某批数据的
tags清空或替换成无关值(如教育培训;校内设施),
断言全部判据结果不变。
→ 证明判据不依赖 tags 的正确性。
第三条最容易被跳过,但它是唯一能证明「整批数据脏了也不会崩」的断言。
识别口诀
**判据在同一批数据上「一部分正常、一部分反常」,先怀疑某个字段在不同来源里语义不一致,
而不是怀疑规则写漏了词。**
对应到本项目:看到「某校区的判据结果和另一个校区不一样」,第一反应应该是去 diff
两批数据的 tags 构成,而不是去读规则代码。
推广形态:凡是从外部抓来的数据,都要问一句「这个字段里装的是不是只有一种语义」。
富文本备注、标签列、自由描述字段是高发区。
相关概念
- 逆地理落点算法 (Reverse Geocoding Anchor Matching)——本坑所在的算法
- 本地工具脱敏发布到 GitHub Public (Sanitized Public Release)(同属「数据字段语义判断」类问题)
本文归档于个人知识库 · 领域:CS & AI · 模块:04 Project_CS_AI/Algorithms