3550 条苏州话词库的数据体检:19.6% 有释义、0 条有音标、对普通话语料覆盖率 7.84%

2026-11-09 · 一手实测 · 阅读约 10 分钟

网上买方言词库,卖家一般只告诉你「多少条」。三千条、五千条、一万条——数字越大越像好东西。但真正决定这份词库能不能用的,从来不是条数,而是每条里填了几个字段、填得准不准。

我把手上这份 3550 条的苏州话词库(来源:吴语学堂苏州话词典整理版,本地原始文件 吴语学堂苏州话词典_3550词条.json)逐字段拆开跑了一遍体检,再拿它去匹配 156,363 字真实中文语料。结论不好看,但比广告词有用:有释义的只占 19.6%,有音标的是 0 条,对普通话语料的覆盖率 7.84%。下面把口径和读数全部摊开,任何人可以照着重跑。

一、先说方法,别信不可复现的数字

这不是分词,是最朴素的「词典能认出多少字」。也正因为朴素,它最能暴露词典本身的边界。

二、结果一:字段完整度(最刺眼的一张表)

字段非空条数占比意味着什么
word 词形3550100%可用
meaning 释义69519.6%2855 条只有词形没有意思
ipa 国际音标00%整库无一条可发音
pinyin 首字母3550≈100%只有首字母,不是完整拼音

三个后果,都是实打实的:

  1. 不能当「学发音」的词库用。 IPA 为空意味着你无法从数据判断「倷」读 nge 还是 ne;要发音只能另行合成或人工标注。
  2. 不能当「翻译词典」用。 八成条目没有释义,查到词形也看不懂。真正的双向词典至少需要「方言词 → 普通话释义」这一条主干。
  3. 能做的是「词形校验」。 判断一段文字里哪些片段属于方言词汇,词形本身够用——这正是我们那个免费覆盖率检测工具的边界。

三、结果二:词长分布——它不是字表,是词组表

词长条数占比
1 字1113.1%
2 字154543.5%
3 字137638.8%
4 字39911.2%
5 字902.5%
6 字140.4%
7 字70.2%
8 字50.1%
9 字20.1%
15 字10.0%

单字只有 111 条(3.1%),2~3 字词占 82.3%。这个形状说明它是一份词组库:适合做「这句话里有没有方言说法」的判定,不适合做「一个字一个字对照普通话」的字表。

顺带一个坑:单字少意味着逐字替换式「方言化」一定失败。按字把普通话文章替换成方言,词库里根本没那么多单字可选,最后得到的是四不像。

四、结果三:首字母分布——23 个字母,缺 3 个

按 pinyin 字段聚合,实际用到 23 个首字母,q、r、x 这 3 个字母在整库中一次都没出现。前五位是 t=564、s=534、g=261、z=238、d=233。

这条读数的用途是排错:如果筛选器按 a~z 硬铺 26 个按钮,用户会撞上 3 个永远为空的字母。我们线上词库页因此只渲染实际存在的 23 个 chips。

五、结果四:把词库丢进真实语料,覆盖率 7.84%

这是整篇最关键的一张读数。用 3550 条词去匹配 156,363 字自有中文语料:

指标读数解读
被覆盖字数12,254 / 156,363覆盖率 7.84%
总命中次数11,382看似不少,看下一行
其中单字命中10,542(92.6%)命中的大多是「一、人、我、里、口」这类通用汉字
多字词命中840只占 7.4%%,方言词组几乎不出现
唯一命中词数191 / 35505.4% 的词在 156,363 字里出现过

命中次数最多的 8 个是:一(2420 次)、人(974 次)、我(580 次)、里(472 次)、口(402 次)、下(389 次)、生(361 次)、路(345 次)。一眼就能看出问题——这些词在普通话文本里也到处都有,是被同形字捞上来的,不代表文本含方言成分。

所以 7.84% 不能当「词库很差」的证据,它证明的是另一件事:拿方言词库去测普通话文本,覆盖率没有解释力。真要衡量词库价值,语料必须是方言文本本身(评弹唱词、方言剧本、方言字幕),而我们手上没有合规可公开的方言语料——这一点本文不装作有。

六、四个「能做 / 不能做」判定

用途判定依据
方言文本覆盖率评估(文本本身是方言文)✅ 能做词形完整度 100%,最大正向匹配可跑通
方言词汇表 / 输入法候选词✅ 能做3550 条词形、23 个首字母位足够建索引
普通话 → 方言翻译❌ 不能释义只有 19.6%,且无词性、无例句
发音学习 / TTS 音素表❌ 不能IPA 全空,音素级信息为 0
逐字方言化改写❌ 不能单字仅 111 条,覆盖不了常用字

七、如果一定要用,先补这四样

  1. 释义补全:优先补高频词。2855 条无释义,但按语料命中频次排序,前 500 条就能覆盖日常使用的绝大部分——先补头部,不要平铺。
  2. 发音信息:至少给每条加「声母+韵母+声调」可读字段(不必上 IPA),否则一切语音类用途为零。
  3. 词性 + 一个例句:这是把「词表」变成「词典」的分水岭,也是买家最容易验证真伪的字段。
  4. 去重与异体归并:同一词的不同写法合并为主词形 + 别名数组,否则检索命中率虚高。

验收不要只数条数。让对方按字段给「非空条数 / 总条数」表,再抽 20 条人工核对释义——这一条能筛掉大部分注水词库。

八、我们自己怎么处置这份数据

体检结果难看,处理方式只有一种:照实说。

这不是自曝其短。方言数据生意的真实风险是「买家预期 vs 数据现状」的错位——把 7.84% 和 0 条音标写在明面上,成交会慢一点,但退款和纠纷会少很多。

九、复现:二十行代码

import json, collections
d = json.load(open('吴语学堂苏州话词典_3550词条.json', encoding='utf-8'))
rows = list(d.values())
print(len(rows), sum(1 for r in rows if r['meaning'].strip()), sum(1 for r in rows if r['ipa'].strip()))

bylen = collections.defaultdict(set)
for r in rows:
    if r['word']: bylen[len(r['word'])].add(r['word'])
ML = max(bylen)
i, cov, hits = 0, 0, collections.Counter()
while i < len(s):
    for L in range(min(ML, len(s) - i), 0, -1):
        if s[i:i+L] in bylen.get(L, ()):
            hits[s[i:i+L]] += 1; cov += L; i += L; break
    else:
        i += 1
print(round(cov / len(s) * 100, 2), len(hits))

把 s 换成本站的汉字串,就得到 7.84%;换成你自己的方言语料,会得到另一个数——那个数才有意义。

常见问题

7.84% 是不是说明这份词库很差?

不是。这个数测的是「方言词库对普通话文本的识别率」,分母错了。词库价值要在方言文本上衡量。公开这个数,是为了说明「覆盖率」指标一旦语料选错,结论会完全反向。

为什么一定要 IPA 才算能发音?拼音不行吗?

吴语的声母系统(浊音、入声)普通话拼音标不出来。这份数据的 pinyin 只有一个首字母字母位,连完整拼音都不是,更无法表达「倷」的鼻音声母。想可发音,必须补声母/韵母/声调三段式字段。

3,550 条对商用够不够?

做「方言文本校验」够,做「方言词典」不够。中型方言词典通常收词数万条且带释义、例句、音标。3,550 条词形适合做工具内置词表,不适合做终产品。

这份体检数据可以引用吗?

可以,注明来源与测量日期(2026-11-09)即可。原始统计见 JSON 文件,口径与全部中间读数都在里面。

买之前怎么快速验证一份方言词库的真伪?

三步:①要「字段非空率表」,不要条数;②随机抽 20 条人工核对释义是否与词形匹配;③问 IPA / 声调字段覆盖率。任何一步答不上来,就不要把它当生产依赖。