klwo2 发表于 2026-10-15 20:54:21

浅谈辞书编纂需要什么样的中文语料库

本帖最后由 klwo2 于 2026-10-15 21:19 编辑

大人物已经谈过这个问题:《国家社会科学基金重大项目“辞书编纂用大型多功能语料库建设与研究”开题》http://ling.cass.cn/xshd/huiyi/202406/t20240625_5761139.html

所以我这里是「浅谈」,说说我的体会。

而且只谈中文语料库,外语的、双语的不谈。

十一的时候,我忽然想到,BCC语料库开放了自己的「构建个人 BCC 语料库」功能(https://bcc.blcu.edu.cn/build-corpus.html),所以利用Codex写了一个自用的语料库软件,踩了一些坑。

目前软件已经定型,不过我不是写代码的料,还有些bug留待慢慢发现、修正,就不拿出来了。只说体会。

————————————————————————————————————————————————
(1)规模问题

为什么想着要构建自己的语料库呢?因为常见的BCC、CCL两个语料库都不够大,有些语言现象明明是有的,Google搜得到,俩语料库却没有,影响语言分析,自然也影响辞书编纂了。

我万万没想到,这软件成型以后,我随手导入了两份文本,规模就直逼BCC、CCL(现代汉语)两个语料库了。我超雷!{:4_92:} {:4_92:} {:4_92:}



对比:

BCC 汉语在线语料库总字数约 62 亿字,覆盖当代社会语言生活的多个领域,包括: 新闻、文学、口语、近代汉语、古汉语以及多领域等。

其中,多领域为平衡语料库,从新闻、文学、口语三类现代汉语语料中等规模抽样,并补充同等规模的科技类文本而成。

CCL语料库的版本历史

2026版:现代汉语:12,907,373,697 (129.0 亿字符)

BCC原先是150亿来着,2.0版瘦身,现在只有62亿字了。CCL原先很小,吃了一个WuDaoCorpora语料(都是互联网文本)以后变成现在这样了。

刚开始我还以为程序统计错了,反复试验后发现,我的库确实跟他们接近或者比他们大,很多词搜索结果确实比他们多很多——





而且我的文本不是互联网上随便找的,是权威媒体文本,可靠性强。



我没有说他们不好的意思。由于历史原因、版权原因等等,语料库不够大是可以理解的。只是我没料到这么显著。

我手边还有不少等着导入的文本,最后的规模会有多大,现在还不知道。

————————————————————————————————————————————————
(2)架构问题

我原先想的就是用「构建个人 BCC 语料库」功能,用BCC的LangSC 工具包,做一个外壳出来。

结果碰到了几个问题:

一、LangSC 工具包给文本生成的索引文件太大了,100M的原始文本,生成的索引有1G!

我推测这是因为LangSC 工具包的功能丰富,不但有分词,还有语法分析,功能太多,所需要的索引自然就多了。

其实按我的意见,编汉语辞书并不太需要花哨的语法分析功能。因为不准。有个勉强能用的分词、词性标注、搭配分析,已经够了。

咱就是说,你都受苦刑了,编词典了,花点笨功夫有什么不好?

要想建立大型中文语料库,按1:10索引,这也太费硬盘了,所以我又引入了一个机制:SQLite FTS+better-trigram 扩展

这样实现的效果接近CCL:不分词,纯粹查询,索引小很多,和原文本大致是1:1的关系,可以接受。

BCC检索和FTS检索是并行的两套,大库只开FTS,省空间。

二、CCL是不分词的,BCC是分词的,哪个好呢?

其实这两者都有毛病。CCL不分词,所以有些不该属于搜索词的结果也会显示出来。

BCC分词,但有时候碍事。我举个例子:

江大桥市长自上任以来,清廉正直,为官六十多年,至今仍然在位,昨天来南京出差,在高铁上依旧看到了一块巨大的广告牌,上面写着,南京市长江大桥欢迎您!可见江大桥市长是一位十分受人欢迎的官员,不然不可能为官六十年还不下马!

BCC处理后变成:

Item:江大桥/n 市长/n 自/d 上任/v 以来/f ,/w 清廉/a 正直/a ,/w 为/p 官/n 六十/m 多/m 年/q ,/w 至今/d 仍然/d 在位/v ,/w 昨天/t 来/v 南京/ns 出差/v ,/w 在/p 高铁/nr 上/v 依旧/z 看到/v 了/u 一/m 块/q 巨大/a 的/u 广告牌/n ,/w 上面/f 写/v 着/u ,/w 南京市长江大桥/n 欢迎/v 您/r !/w 可见江大桥/n 市长/n 是/v 一/m 位/q 十分/m 受/v 人/n 欢迎/v 的/u 官员/n ,/w 不然/c 不/d 可能/v 为/p 官/n 六十/m 年/q 还/d 不/d 下马/v !/w


BCC处理以后,「南京市」或者「可见」就再也不可能召回这句话了,因为「南京市长江大桥/n」「可见江大桥/n」被分词分成一个单元了。这就是BCC在线语料库有时候莫名其妙就是搜不到原话的原因。

我的解决思路是,大库只开启FTS 检索,遇到不分词导致的毛病时,再导出给BCC的模块处理。这样就既解决了问题,又不过度占用硬盘空间。



FTS的整体体验和CCL语料库比较近,我选择性开了一些语法,可以支持复杂的检索需求:



三、BCC对Unicode(UTF-8)支持不完整

BCC在线文档(https://bcc.blcu.edu.cn/build-corpus.htm)是这么说的:

语料文件建议使用 gb18030 编码。BCC 会自动检测编码,但 gb18030 兼容性最佳。

实践发现,并不是设置成gb18030就好了。它的模块不支持PUA区的字。也就是说,有些小说txt里面如果带有Unicode私有区的字,它会报错。

BCC新出了一个操作手册(https://bcc.blcu.edu.cn/langsc-guide.html),又这么说:

查询 / 结果 走 UTF-8(引擎内部 UTF8_2_GBK/GBK2UTF8)。
语料内容必须 GBK(_utils.process_file 在所有平台显式写 GBK)。
路径建议 ASCII:BCC 引擎自身 fopen 对 CJK 临时路径会失败(即便 Windows),请保持语料/索引目录为 ASCII。

说实话,我真的不太明白,这个东西都已经支持时下最最最时髦的智能体了,编码问题折磨人是何必呢。

折腾了半天,最后其实还是做的UTF-8,并没有转成GBK,只不过过滤了PUA区。FTS没有这个问题。

————————————————————————————————————————————————
(3)字形问题

字形问题也折腾过,写写心得。

语料里既有简体字,又有繁体字,怎么办?我的做法是:

搜索时可以开启「兼容异体字」,用了本坛大好人「飞梧」的异体字表(https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=49757),这样召回就没有问题了

显示时可以自选「保持原文」或者转换繁简。繁简转换用opencc。



这样既不损害原文,不占用硬盘,又做到了方便快捷,感谢「飞梧」提供灵感和材料!

————————————————————————————————————————————————
(4)其他

我个人不觉得把技术细节搞得特别丰富、元信息搞得特别全面,对汉语辞书编纂有什么大用。

因为现有的汉语语料库的瓶颈是规模太小,语言事实看不全,还远远没到需要复杂的分析手段的阶段。

对了,现在神舟大地处处都在接AI、接大模型什么的,不过目前也没在我这个软件的规划里,也许有用,也许没用,谁知道呢。

整个做下来的感想就是:原来搭一个语料库系统这么简单,感谢Codex写出了各种各样的bug,害我不断充钱修啊修{:4_91:}

klwo2 发表于 2026-10-19 19:18:24

飞梧 发表于 2026-10-18 22:18
遍历全部组合的方法吗,有个弊端,当异体字过多或字符串过长时,组合数会爆炸,比如 [黄黃][钟锺鍾鐘] 有2 ...

组合爆炸的问题,codex帮我实现的时候就提出来了,不过它提议的阈值是5000{:4_97:}

我一看就乐了,因为这一般到不了

语料库工具其实不是一次性返回所有结果的,而是翻页或者导出结果时再按需请求。(具体实现细节我也不清楚,我是请codex代劳)

我用最大的库查询了「黄钟毁弃」(兼容异体字),基本上没有任何延迟



至于「全文检索」,这个功能无论是mdict还是goldendict上,我都很少用,所以很难给什么意见。

shawky.nasr 发表于 2026-10-16 04:06:19

LDC语料库更好,更丰富

klwo2 发表于 2026-10-16 17:31:23

shawky.nasr 发表于 2026-10-16 04:06
LDC语料库更好,更丰富

汉语语料不多啊

klwo2 发表于 2026-10-16 17:31:33

shawky.nasr 发表于 2026-10-16 04:06
LDC语料库更好,更丰富

汉语语料不多啊

飞梧 发表于 2026-10-18 22:18:31

遍历全部组合的方法吗,有个弊端,当异体字过多或字符串过长时,组合数会爆炸,比如 [黄黃][钟锺鍾鐘] 有2×4=8种,到 [黄黃][钟锺鍾鐘][毁毀][弃棄] 就有2×4×2×2=32种了。

后面我改成「遍历首字+正则过滤」,先遍历首字「黄黃」搜索两次,获得全部词条作为临时结果,然后用正则过滤临时结果,返回最终结果。和mdict意外的契合,无论是「黄钟」还是「黄钟毁弃」消耗都是一样的,搜索效率大大提高。

我也想过做全文检索工具,但对优化异体字关联没什么头绪。

泥瓦匠萨奇 发表于 2026-10-23 09:51:01

就不知道哥儿你搜集的都是哪几类语料?都是从什么渠道搜整的?语料质量是否过硬?我自己一直有个念想,就是蒐集不见于“现当代文学史主流叙事”的历史小说、评话小说和浩浩荡荡的古本重造运动所轻忽的古白话小说,而后转制成电子文稿,再汇录一处,以公开语料库形式供大众有限度合理利用。这几类书统归于通俗文学,我利用今人各种书目工具书结合读秀、安娜图书馆进行pdf文档搜集。现在大体还处在书目厘定、图书搜整阶段。以古白话小说为例,目前前期搜整进度堪堪到三分之二而已。寻思着问问,说不定你有跟我一样的想法,而实际做的更超前。

klwo2 发表于 2026-10-23 12:32:49

泥瓦匠萨奇 发表于 2026-10-23 09:51
就不知道哥儿你搜集的都是哪几类语料?都是从什么渠道搜整的?语料质量是否过硬?我自己一直有个念想,就是 ...

我主要收集现当代材料。以我一向的要求当然是质量过硬的。

古书当中「四库全书」CCL、BCC都有,如果还不够可以用殆知阁古代文献txt,所以目前没太留意。

我有点没太摸清你要收集的是哪个阶段的小说。

如果你指的是元明清的古白话材料(你说古白话小说),我对近代汉语没那么熟,估计难度主要在OCR上。多多关注古籍OCR的进展就好。

如果你指的是晚清到1949年前的材料(你说不见于“现当代文学史主流叙事”),我有几点想法:

(1)这些材料有些在殆知阁TXT里有
(2)早期北京话/吴语/粤语等等的材料,很多学者都在弄,其中北京话的部分,CCL语料库已经上架了一些,CCL默认是按时间排序的,随便搜个词就能看见,试运行的国家语料库CNC也会有,所以这一块不用做重复劳动。其他方言应该也会有。
(3)我们今天想到文学作品,一般是在单行本或者文学期刊里,但是晚清到1949年期间,报纸副刊的地位远比今天重,也就是说我们想搞的材料藏在报纸里头,旧报纸纸张本来就差,版面又复杂,今天基于AI的OCR手段还不能很好地搞定,比古籍还麻烦。

即便是有单行本,比如说林纾(林琴南)翻译的小说,弄起来也很麻烦,至今没有文字版全集,只有影印本全集。出版商都觉得麻烦的东西,我觉得我会继续观察看看。

(4)晚清到1949年期间的很多语言现象,在1949年以后被打断了,留在了港台。比如我发现,金庸常常用到中国大陆词典认为已经消亡的古词古义。如果没有现成的出版品,这一批材料也是不好搞的。比如说陈蝶衣的作品,当年是发表在香港报刊上的,今天都成了极其昂贵的收藏品(你可以搜索《大成》杂志的价格)。如果不是《陈蝶衣文集》出版,普通人根本看不到。

我刚才列举的林纾、陈蝶衣都是名家,不那么有名的应该更麻烦。包括《全国报刊索引》在内的很多近代/民国数据商,图像是模糊的,OCR质量是低到不能用的。读秀当然不会好到哪里去。幸运的话可以碰到好的材料,但大概不能赌。

以我的体会看,我觉得目前不值得以个人的力量去做,因为客观条件并不太好,可以等几年,看看技术有没有飞跃,关键资源是否忽然出现。收集书目不太耗精力,倒是做做无妨。

如果是贪图那时候的语言现象,可以看看是否有「代餐」。我就是用BCC语料库的时候,发现港台通俗小说(武侠、言情)里面 有不少旧白话现象,这批材料现在BCC没了,我就去闲鱼搞到手了。

我不确定我说的就是你指的东西,如果不是的,我们再多讨论看看

泥瓦匠萨奇 发表于 2026-10-23 14:46:43

klwo2 发表于 2026-10-23 12:32
我主要收集现当代材料。以我一向的要求当然是质量过硬的。

古书当中「四库全书」CCL、BCC都有,如果还不 ...

我收集的基本都是今人校理、出版的小说,采用的都是今式标点、现代排版,ocr难度实际真没那么大,如果agent工作流组织得当,ocr效率还可以上一个台阶。古白话小说我主要着眼的是明清两代创作的通俗小说,上世纪八九十年代这块很多新校古籍面世,不难搜获,就单拿春风文艺出版社一家来说,就有中国古代珍稀本小说、中国近代珍稀本小说两大书系丛书,都是名家精校的。另外评话小说也是一样搜集的已经纸本化的作品,作者有民国的,也有新中国的,但绝大部分也是集中在八九十年代出品的。那些散见于老杂志老期刊的我真没那个心力去搜整。单是这两类的作品,CCL、BCC两大语料库很多没收录的。而且这两个语料库各类语料参差不齐,有时候难以信从。像是CCL中的百科语料、微信文章语料就占了很大一部分体量。

klwo2 发表于 2026-10-23 16:27:11

泥瓦匠萨奇 发表于 2026-10-23 14:46
我收集的基本都是今人校理、出版的小说,采用的都是今式标点、现代排版,ocr难度实际真没那么大,如果age ...

哦哦!这样看的话,你这个工程不算难。

我没有做过跟你这个完全一样的事情,只有一些略微相关的心得:

(1)现在做OCR,多用基于大模型的方案,可是我试过几乎所有的LLM OCR方案都有幻觉问题,也就是说它会「自创」「补写」「遗漏」内容,不同的模型、不同的文本程度有轻重,这是传统的OCR方案(abbyy之类的)没有的。建议不要省去人工审读这一步。
(2)不知道你打算怎么用agent工作流,我建议刚开始做的时候笨一点,用简单的工具试试,简单的好使,就不用想着上最新最全最快的了。如果不打算赚钱,纯粹用爱发电做文本化,精确度还是要讲究的,最新的复杂方案未必会在这方面有我们想要的提升效果。
(3)点校好的文本有一个问题值得提醒你注意:江藍生.說“勾、够、彀”——《華音撮要》連-介詞“勾”考源.汉语史学报,2017,(1):1-13.

5.3文獻资料是進行漢語史研究的不可或缺的前提,問題是我們所面對的資料往往難以確信,無法放心大膽地使用,更不用説據以得出可靠的結論來。即以本文的寫作來説,我們所能看得到的近代漢語戲曲、小説等白話文獻通行本都不是原作品的本來面目,其中錯訛臆改之處幾乎無一能免,連有些《索引》都不一定可靠,更不用面目全非的简體字本了。

不过这个问题也没有什么直接的解决办法,只能研究的时候注意

(4)我不是特别清楚你想做古白话小说,出发点有哪些。我看到近些年晚清名人日记在陆续整理出版,这些也是不错的语料,如果有兴趣的话可以一起考虑。

CCL、BCC两大语料库,收录语料都有一些「脚踩西瓜皮,滑到哪里算哪里」的问题,全面性、均衡性不太好(试运行的国家语料库立志改善,但会不会达成很难说),这不能怪他们,他们起步早,客观条件不够好。台湾中研院的语料库重视精加工,但是规模也太小。我目前把主要精力放在现当代上,主要希望能跟两个语料库互补(他俩都收的人民日报我就不收了)。你这个方向也是很重要的,期待好结果!

泥瓦匠萨奇 发表于 2026-10-23 17:10:48

klwo2 发表于 2026-10-23 16:27
哦哦!这样看的话,你这个工程不算难。

我没有做过跟你这个完全一样的事情,只有一些略微相关的心得:


我只关心文学语料的搜整,古代史方面的我就顾不上了。至于ocr,我采取的是多种ocr工具识别文本参互校改的方式,精度尚佳,就是特别磨时间。说起江蓝生,插句题外话,我想起的是她参编的那套《近代汉语词典》,上海教育出版社承印的,文字审校方面下的工夫真是稀拉,没上海辞书出版社编校团队的水平高。至于公家的语料库建设,我只能说观望观望吧。BCC某种程度上是大大倒退的,使用体验远没有第一版那么友好。再如厦大的至善语料库,刚开始是面向公众的,后面也变公为私了

klwo2 发表于 2026-10-23 19:46:25

泥瓦匠萨奇 发表于 2026-10-23 17:10
我只关心文学语料的搜整,古代史方面的我就顾不上了。至于ocr,我采取的是多种ocr工具识别文本参互校改的 ...

我目前是用MinerU OCR然后校对,最多用两个OCR工具,感觉再多就没必要了

BCC第一版有150万,但是太卡了,他们说还有爬虫拖慢速度,所以砍掉了一些语料,优化了架构什么的,现在第二版流畅了很多

刚改版的时候我也不满意,因为可以搜到的语料真的少了很多,但是用了BCC的LangSC 工具包我就理解了,我猜他们做的功能太多了,性能撑不起那么多的语料,只能取舍

我以前经常用BCC,改版以后我大概推测出他们砍掉了哪些,那我自己补上就好了

泥瓦匠萨奇 发表于 2026-10-23 23:11:41

klwo2 发表于 2026-10-23 19:46
我目前是用MinerU OCR然后校对,最多用两个OCR工具,感觉再多就没必要了

BCC第一版有150万,但是太卡了 ...

看来ai的进步反倒让语料库扩张越来越畏手畏脚了{:8_144:}
页: [1]
查看完整版本: 浅谈辞书编纂需要什么样的中文语料库