3550 条苏州话词库的数据体检:19.6% 有释义、0 条有音标、对普通话语料覆盖率 7.84%
网上买方言词库,卖家一般只告诉你「多少条」。三千条、五千条、一万条——数字越大越像好东西。但真正决定这份词库能不能用的,从来不是条数,而是每条里填了几个字段、填得准不准。
我把手上这份 3550 条的苏州话词库(来源:吴语学堂苏州话词典整理版,本地原始文件 吴语学堂苏州话词典_3550词条.json)逐字段拆开跑了一遍体检,再拿它去匹配 156,363 字真实中文语料。结论不好看,但比广告词有用:有释义的只占 19.6%,有音标的是 0 条,对普通话语料的覆盖率 7.84%。下面把口径和读数全部摊开,任何人可以照着重跑。
一、先说方法,别信不可复现的数字
- 字段完整度:逐条判断
meaning(释义)、ipa(国际音标)、pinyin(此处只有首字母字母位)是否为空字符串,空即不计。 - 词长分布:按
word的字符数(Pythonlen())统计,不做繁简/异体归并。 - 语料:本站自有 68 个中文 HTML 页面的正文,删掉
<script>/<style>/全部标签后只留汉字,共 156,363 字、1,790 个字种。用自有语料而不是网上抓文,是为了让任何人能拿到同一份输入复现。 - 覆盖率:最大正向匹配(Maximum Forward Match),从当前位置往左截最长词,命中即推进该词长度,未命中则前进 1 字;覆盖率 = 被词覆盖的字数 ÷ 总字数。
这不是分词,是最朴素的「词典能认出多少字」。也正因为朴素,它最能暴露词典本身的边界。
二、结果一:字段完整度(最刺眼的一张表)
| 字段 | 非空条数 | 占比 | 意味着什么 |
|---|---|---|---|
| word 词形 | 3550 | 100% | 可用 |
| meaning 释义 | 695 | 19.6% | 2855 条只有词形没有意思 |
| ipa 国际音标 | 0 | 0% | 整库无一条可发音 |
| pinyin 首字母 | 3550 | ≈100% | 只有首字母,不是完整拼音 |
三个后果,都是实打实的:
- 不能当「学发音」的词库用。 IPA 为空意味着你无法从数据判断「倷」读 nge 还是 ne;要发音只能另行合成或人工标注。
- 不能当「翻译词典」用。 八成条目没有释义,查到词形也看不懂。真正的双向词典至少需要「方言词 → 普通话释义」这一条主干。
- 能做的是「词形校验」。 判断一段文字里哪些片段属于方言词汇,词形本身够用——这正是我们那个免费覆盖率检测工具的边界。
三、结果二:词长分布——它不是字表,是词组表
| 词长 | 条数 | 占比 |
|---|---|---|
| 1 字 | 111 | 3.1% |
| 2 字 | 1545 | 43.5% |
| 3 字 | 1376 | 38.8% |
| 4 字 | 399 | 11.2% |
| 5 字 | 90 | 2.5% |
| 6 字 | 14 | 0.4% |
| 7 字 | 7 | 0.2% |
| 8 字 | 5 | 0.1% |
| 9 字 | 2 | 0.1% |
| 15 字 | 1 | 0.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 / 3550 | 5.4% 的词在 156,363 字里出现过 |
命中次数最多的 8 个是:一(2420 次)、人(974 次)、我(580 次)、里(472 次)、口(402 次)、下(389 次)、生(361 次)、路(345 次)。一眼就能看出问题——这些词在普通话文本里也到处都有,是被同形字捞上来的,不代表文本含方言成分。
所以 7.84% 不能当「词库很差」的证据,它证明的是另一件事:拿方言词库去测普通话文本,覆盖率没有解释力。真要衡量词库价值,语料必须是方言文本本身(评弹唱词、方言剧本、方言字幕),而我们手上没有合规可公开的方言语料——这一点本文不装作有。
六、四个「能做 / 不能做」判定
| 用途 | 判定 | 依据 |
|---|---|---|
| 方言文本覆盖率评估(文本本身是方言文) | ✅ 能做 | 词形完整度 100%,最大正向匹配可跑通 |
| 方言词汇表 / 输入法候选词 | ✅ 能做 | 3550 条词形、23 个首字母位足够建索引 |
| 普通话 → 方言翻译 | ❌ 不能 | 释义只有 19.6%,且无词性、无例句 |
| 发音学习 / TTS 音素表 | ❌ 不能 | IPA 全空,音素级信息为 0 |
| 逐字方言化改写 | ❌ 不能 | 单字仅 111 条,覆盖不了常用字 |
七、如果一定要用,先补这四样
- 释义补全:优先补高频词。2855 条无释义,但按语料命中频次排序,前 500 条就能覆盖日常使用的绝大部分——先补头部,不要平铺。
- 发音信息:至少给每条加「声母+韵母+声调」可读字段(不必上 IPA),否则一切语音类用途为零。
- 词性 + 一个例句:这是把「词表」变成「词典」的分水岭,也是买家最容易验证真伪的字段。
- 去重与异体归并:同一词的不同写法合并为主词形 + 别名数组,否则检索命中率虚高。
验收不要只数条数。让对方按字段给「非空条数 / 总条数」表,再抽 20 条人工核对释义——这一条能筛掉大部分注水词库。
八、我们自己怎么处置这份数据
体检结果难看,处理方式只有一种:照实说。
- 线上试查页放 1,000 条演示集(695 条有释义全收 + 从 2,855 条无释义里等距抽 305 条),页面明确写「演示集,完整 3,550 条随购买交付」。
- 商品页与交付包 README 写明字段现状:释义 695 条、IPA 0 条。买家知道边界,才不会买回去发现「不能发音」再退货。
- 免费给一个 覆盖率检测工具:粘贴一段文本,看词库能认出多少——先让人验证,再谈购买。
- 本次全部原始统计导出为 JSON 文件免费下载,字段名与口径都在里面,任何人可复核或引用。
这不是自曝其短。方言数据生意的真实风险是「买家预期 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 / 声调字段覆盖率。任何一步答不上来,就不要把它当生产依赖。