2026-10-24
CodedLang 收录 7744 条中文地图点评,其中 900 条做了暗语片段标注。最强检测 F1 只有 0.78,GPT-5-mini 的星级误差从 0.52 升到 0.68,细类分类多半不到 0.6。
中文用户在 Google 地图上写差评,有时不把「不好吃」打出来。说快了,bu4 hao3 chi1 会滑成 bao4 chi1,写成「报吃」,机翻就变成 Newspaper eat。表面是一句不通的英文,圈内人读得出负面。同音、拼音缩写、emoji、跨语言谐音做的是同一件事:表面文本和要说的意思故意错开,翻译和审核最好还看不懂。
模型默认字面就是意思。谐音和形近字长期被当成要归一化的噪声,或者当成绕开审核的攻击。在真实点评里,它是沟通方式,而且很稀。宾州州立大学和华盛顿大学的作者先手标 5,391 条美国餐馆中文点评,只找到 19 条,占 0.35%。没有片段标注和分类,就分不清模型是没看见,还是看见了却理解错。
CodedLang 从两份公开的 Google 地图点评里留下含汉字的文本。餐馆语料筛出 5,391 条,本地商户语料筛出 112,521 条。挖掘靠人在回路里滚词典。23 条社交和新闻里的例子先标出暗语片段,收成约 100 条种子,再回全库做字符串匹配。机翻里还带着拼音的点评一并捞进,两位作者逐条确认,新片段补进词典再检索,直到一轮里没有新的暗语。微博和贴吧的同音词典也并了进去。
7,744 条被人工看过的点评里,900 条含暗语,不重复片段 184 个。一条点评可以有好几处,每处只标一个主策略。叠了好几层的,按表面上最显眼的那层归类。两人在「有没有暗语」上 Cohen's κ 为 0.99,片段重叠 98%。分歧多出在方言还是故意编码。北京话「里格楞」判成非暗语,表面形式就是它的意思。
七类是歧义同音、非词同音、拼音或注音替换、emoji、字形、跨语言谐音,以及整句没有字面意思的密文。分布很斜:歧义同音 333 处,非词同音 292,语音替换 200,emoji 48,密文 47,字形 34,跨语言只有 7。报吃归在跨语言谐音。
三个任务的提示里都给了定义和例子。检测只判断有没有暗语。分类要给出类别、原文片段和短理由。星级预测比较五种文本:没有暗语的原文、带暗语的原文、暗语逐字盖住、整段盖住、按标注词典还原之后。
检测没有一家全赢。
| 模型 | 精确率 | 召回率 | F1 |
| DeepSeek-V3.2 | 0.77 | 0.79 | 0.78 |
| Gemini-2.5-Flash | 0.67 | 0.92 | 0.77 |
| GPT-5-mini | 0.69 | 0.80 | 0.74 |
| Qwen2.5-7B-Instruct | 0.80 | 0.43 | 0.56 |
| Llama-3.1-8B-Instruct | 0.35 | 0.68 | 0.46 |
DeepSeek-V3.2 的 F1 最高,也只有 0.78。Gemini 召回 0.92,精确率掉到 0.67。Qwen2.5-7B 精确率 0.80,召回只有 0.43。
分类更碎,类的样本量差了两个数量级。DeepSeek-V3.2 在密文上 F1 为 0.74,跨语言只有 0.40,精确率 0.25,这一类一共 7 条。同音、拼音、emoji、字形的 F1 在 0.42 到 0.59 之间。GPT-5-mini 在密文上 F1 为 0.84,跨语言只有 0.10。字形类常见的模式是召回很高、精确率很低,普通形近字会被卷进来。
星级用均方误差。GPT-5-mini 在无暗语点评上是 0.52,暗语原文 0.68,词典还原后 0.55,接近无暗语。逐字遮盖升到 0.71。DeepSeek-V3.2 在无暗语上是 0.47,五家里最好,一到暗语原文就到 0.80,还原后仍是 0.82,整段遮盖 1.16。还原对它没有帮助。Qwen2.5-7B 的暗语原文误差 1.90,五家里最高。1 星和 5 星好猜,3 星最难。2 到 4 星里,把暗语遮掉之后的误差低于原文,也低于还原文本。
暗语和低分绑在一起。卡方检验 p < 0.001,Cramér's V 为 0.29,序数回归系数 −0.89。语音距离用拼音和国际音标的字符错误率来量。非词同音最像原词,拼音错误率 0.30。跨语言最不像,拼音 1.23,国际音标 2.46。GPT-5-mini 在这两类上的星级误差是 0.43 和 0.86。五类之间,误差和错误率的 Spearman ρ 为 0.80,p 值为 0.104。方向在,统计上站不住,类太少。
点评、翻译和审核都假设字面情感靠得住。这里有一个能复现的反例。看过定义和例子后,强模型判断「有没有暗语」的 F1 停在 0.78 上下,分类型别多半到不了 0.6,跨语言基本不能用。词典还原把 GPT-5-mini 的星级误差从 0.68 拉回 0.55,接近它在无暗语文本上的 0.52。DeepSeek-V3.2 还原之后是 0.82,比暗语原文的 0.80 还略高。Qwen 和 Llama 还原后会降,仍高于各自的无暗语误差。184 个片段里 111 个只出现一次。最高频的「滴」代替「的」,出现 102 次。重复项会变成梗,一次性写法才是词典滚不出来的部分。
覆盖偏差被放在局限的第一条。滚词典依赖种子,也依赖挖掘时用到的模型认不认得。种子里没有、模型也不认识的新写法会漏掉。数据收到 2022 年,地理范围是美国的 Google 点评。之后的写法、其他平台、其他地区都不在里面。标注由两位有语言学训练的中文母语作者完成,圈内黑话仍可能漏标或标错。κ 很高,只说明这两人一致。跨语言只有 7 例,F1 写成 0.10 或 0.40 都不能外推。检测和分类的提示已经包含定义和例子,这个分数是看过说明书之后的分数。作者抽查过星级和正文,大体一致,4 分或 5 分里仍有 7 条内容偏负,分母正文没有写清。