一批乡村治理的访谈稿和政策文件,分完词一看,乡村振兴被切成了乡村和振兴,河长制被切成了河长和制,村集体经济散成了三个词。接下来统计词频,振兴单独排进了前十,乡村振兴一次都没有出现;做关键词和主题分析,最核心的几个术语全被拆散了。
这类分词词典里没有收录的词,叫未登录词,也常叫新词。专业术语和政策提法属于这一类,人名地名和机构名也是,网络上新造的说法更是。人读一遍就知道乡村振兴是一个词,分词程序只能照着词典切,词典里没有,它就拆开。
TATOOLS 的【智能发现新词】专门做这件事。【上传文档】以后,TATOOLS 先分词,再逐段检查相邻的两三个词该不该合成一个词,每个候选词都回到原文核对一遍,最后汇总成一份去重后的新词表,可以直接加进其他工具的自定义词典。
这篇教程先讲分词为什么会切碎术语,再讲判断一串字是不是词的两个经典统计标准,互信息和左右熵,接着讲 TATOOLS 怎样逐段判断、怎样核验,最后讲怎样检验结果、怎样把新词表用到后续分析里。
01
分词为什么会切碎术语
中文书写不在词和词之间留空格,计算机要先分词,才能统计词频、提取关键词、做主题模型。常用的分词程序都以一部词典为基础,再配合统计模型处理歧义。词典收了的词,切得很准;词典没收的词,程序只能把它拆成几个认识的小词。
黄昌宁和赵海 2007 年回顾中文分词十年的进展时指出,未登录词造成的分词错误,比切分歧义造成的错误多得多,是分词精度最大的瓶颈。2003 年第一届国际中文分词评测(SIGHAN Bakeoff)专门为未登录词单独计算召回率,参评系统在未登录词上的成绩普遍明显低于整体成绩。
在社会科学研究里,这个问题比技术指标更要紧。研究者最关心的,恰恰是材料里的专门提法,政策文本里的新提法,访谈里的地方说法,某个行业的术语。它们越新、越专门,越不在通用词典里,也就越容易被切碎。TATOOLS 的【智能发现新词】就是在分析开始之前,先把这些词找回来。
02
一个词怎样才算词
判断一串字能不能成词,语言学和计算语言学常用两个标准。一是内部凝固,组成它的几个部分总是一起出现;二是外部自由,它作为一个整体,前后可以接各种各样的词。
互信息:内部凝不凝固
点互信息(Pointwise Mutual Information,PMI)衡量两个成分一起出现的次数,比它们各自独立出现时按概率推算的次数高出多少。Church 和 Hanks 1990 年把它引入词汇研究,Sproat 和 Shih 1990 年用它找中文的词边界。
PMI(x, y) = log₂ [ p(xy) / (p(x) × p(y)) ]
p(x):x 出现的次数 ÷ 总词数
p(xy):x 后面紧跟 y 的次数 ÷ 总词数
在一份共 10 万个词的材料里算两组。
乡村 200 次,振兴 150 次,乡村振兴 120 次
PMI = log₂ [0.0012 / (0.002 × 0.0015)] = log₂ 400 ≈ 8.6
的 5000 次,发展 300 次,的发展 30 次
PMI = log₂ [0.0003 / (0.05 × 0.003)] = log₂ 2 = 1
乡村和振兴一起出现的次数,是随机碰上的 400 倍,凝固得很紧;的和发展一起出现,只是随机碰上的 2 倍,的发展不是一个词。
左右熵:外部自不自由
只看凝固度还不够。按字来算,乡村振这三个字也总是一起出现,凝固度同样很高,但乡村振不是词。区分它们要看外部,一个真正的词,后面可以接很多不同的字;一个词的碎片,后面几乎总是同一个字。
这个想法来自 Harris 1955 年的研究,他观察一个音素串后面能接多少种不同的音素,接的种类突然变多的地方,就是语素的边界。Jin 和 Tanaka-Ishii 2006 年借用 Shannon 1948 年的信息熵,把它写成分支熵,用来无监督地切分中文。
H = −Σ p(w) × log₂ p(w)
p(w):右边紧跟 w 的次数 ÷ 右边所有邻居的总次数
接着乡村振兴的例子,它在材料里出现 120 次,右边的邻居是这样分布的。
战略 40,工作 30,的 30,是 20
p = 1/3,1/4,1/4,1/6
H = (1/3)×1.585 + (1/4)×2 + (1/4)×2 + (1/6)×2.585
≈ 0.528 + 0.5 + 0.5 + 0.431 ≈ 1.96 比特
乡村振 右边只有兴,H = 0
乡村振兴的右熵约 1.96 比特,右边接什么都有;乡村振的右熵是 0,右边永远是兴。实际使用时左右两边各算一次,取较小的那个,两边都自由才算成词。
统计方法靠频次说话
互信息和左右熵都要从频次里算概率,频次越高,估计越稳。一个术语在几万字的材料里只出现两三次,它的互信息和左右熵都很不稳定;为了不被低频噪声淹没,统计方法通常要设频次门槛,这些低频术语就被挡在门外。统计方法还会找出不少凝固又自由、却不是词的片段,比如进一步加强这样的常用搭配,需要研究者再手工筛一遍。
社会科学的材料常常篇幅有限,最想找的又恰恰是只出现几次的专门提法。TATOOLS 的【智能发现新词】因此换了一个思路,逐段读原文,按语境判断。
03
TATOOLS 怎样逐段找新词
分词和切小段
TATOOLS 先对全文分词,只留下中文部分,去掉停用词,再把分好的词按固定的长度切成一个个小段。每个小段一次交给判断环节,所有小段同时提交,长文也不用一段一段等。
逐段判断相邻的两三个词
每个小段交给一个大语言模型,按固定的规则判断。它只看相邻的两个或三个词,判断连起来是不是一个有意义的词,不跨过中间的词去拼。重点是各行业的专业术语,以及人名地名这类专有名词,被分词程序拆错的复合词也在其中。
分好的词:[推进, 乡村, 振兴, 战略, 落实, 河长, 制]
判断结果:乡村振兴,乡村振兴战略,河长制
这一步看的是语境。一个术语在整份材料里只出现一次,只要这一段读得出它是一个完整的概念,就能被找出来,这正是统计方法最难做到的地方。
默认不收形容词和副词,也不收网络流行语,研究者最常需要的是名词性的术语,这样结果最干净。工具页的【找出形容词】【找出副词】【找出网络黑话、俚语、网络流行词】三个开关,可以分别把这三类也纳入。研究网络话语的,打开第三个开关,能找出圈内人才懂的说法。
原文核验
判断环节给出的每一个候选词,TATOOLS 都会拿回这个小段的原文核对一遍,全部满足才收下。
| 条件 | 挡住什么 |
|---|---|
| 在这一段原文里逐字出现 | 凭空编出来的词,把不相邻的字拼成的词 |
| 全部是汉字 | 夹杂符号、数字和字母的片段 |
| 长度在合理范围内 | 单字和整句 |
原文:……推进乡村振兴战略,落实河长制……
乡村振兴 原文里有,收下
乡村振兴战略 原文里有,收下
振兴乡村 原文里没有这个顺序,丢掉
数字乡村 这一段没有出现,丢掉
判断环节负责语境,核验环节负责忠实于原文,新词表里的每个词都能在你的材料里找到出处。
合并去重和已知词表
所有小段、所有文件的新词合在一起,去掉重复。工具页的【已知词表】里填的词视为已经认识,不会出现在结果里。已经整理过一份领域词表的研究者,把它填进去,结果里就只剩下真正新发现的词。
04
结果怎样检验
新词发现的质量用两个比例来看。精确率是找出来的词里有多少真是词,召回率是材料里真有的新词被找出来了多少。
精确率 = 找出的词中正确的个数 ÷ 找出的词总数
召回率 = 找出的正确新词个数 ÷ 材料里全部的新词个数
精确率可以抽样估计。找出 80 个新词,随机抽 20 个逐个核对,17 个确实成词,精确率约为 17 ÷ 20 = 85%。召回率需要一份标准答案,可以挑一段有代表性的材料,人工标出里面全部的术语,比如 30 个,工具找出了其中 24 个,召回率就是 24 ÷ 30 = 80%。
论文里用新词表处理材料的,写明抽样核对的精确率,读者就知道这份词表可靠到什么程度。TATOOLS 给出的每个新词都经过原文核验,核对时只需判断它是不是一个完整的概念。
05
新词表怎样用
新词表最直接的用处,是加进分词词典再做分析。仍用前面的例子,同一份材料加词前后,词频表变成这样。
| 词 | 加词前 | 加词后 |
|---|---|---|
| 乡村 | 200 | 80 |
| 振兴 | 150 | 30 |
| 乡村振兴 | 0 | 120 |
加词以前,振兴排在前面,看起来是一个独立的高频词;加词以后,材料真正反复讲的乡村振兴才浮出来,乡村和振兴的单独出现次数也回到了真实水平。关键词、共现网络和主题模型都建立在词频上,这一步会一路影响到后面的结果。
TATOOLS 的做法有两种。一是在【智能发现新词】的报告里下载新词表,挑选以后粘贴进其他工具的【自定义词典】。二是直接在其他工具的分词设置里打开【自动补充词典】,同一套新词发现会在分析之前先跑一遍,新词作为专有名词并入这次的分词词典,按词性筛词的分析也会保留它们;报告里另有一张【自动补充词典】卡片,列出这次加进去的新词,新词词典随结果一起打包下载。
06
工具页上的设置
| 设置 | 默认 | 影响什么 |
|---|---|---|
| 找出形容词 | 关 | 是否把复合形容词也当作新词 |
| 找出副词 | 关 | 是否把复合副词也当作新词 |
| 找出网络黑话、俚语、网络流行词 | 关 | 是否收网络流行语和圈内说法 |
| 已知词表 | 空 | 表里的词不会出现在结果里 |
做政策法律这类专业材料,保持默认,结果以名词性术语为主;做网络评论和社交媒体材料,打开第三个开关;需要研究描写性、评价性的说法,再打开形容词和副词。
07
报告怎么读
TATOOLS 的报告顶部写着【总计发现新词】的个数,下面的【发现的新词】把新词逐个列出。新词表可以下载,每行一个词,合并了所有文件的结果并去掉了重复,可以直接粘贴进自定义词典。
读结果时,先扫一遍有没有明显不成词的项,再挑几个自己熟悉的术语看有没有被找出来,这就是一次粗略的精确率和召回率检查。发现有遗漏的术语,手工补进词典;发现有不想要的项,删掉以后再用。
08
把结果写进论文
新词发现通常放在方法部分的数据预处理里。下面是一段写法示例,方括号里换成自己的数字。
为减少未登录词对分词的影响,本研究先使用 TATOOLS 的智能发现新词处理全部 [文件数] 份文本,逐段判断相邻词语能否组成专业术语与专有名词,并将候选词回到原文逐字核验,得到 [个数] 个新词。随机抽取 [抽样数] 个进行人工核对,精确率为 [比例]。经人工筛选后的 [个数] 个新词加入分词词典,再进行后续的词频与主题分析。
09
小结
分词词典没有收录的未登录词,是中文分词最大的误差来源,而专业术语和新提法最容易被切碎。
互信息看一个词内部凝不凝固,左右熵看它外部自不自由,两者都靠频次,低频术语难以稳定估计。
TATOOLS 把分好的词切成小段,逐段按语境判断相邻的两三个词能否成词,只出现一次的术语也能找出来。
每个候选词都回到原文逐字核验,全部为汉字、长度合理才收下,新词表里的每个词都有出处。
结果合并去重,已知词表里的词自动排除;新词表可以加进自定义词典,也可以在其他工具里直接打开自动补充词典。
找完新词,想看哪些词在材料里起不了区分作用,可以用 TATOOLS 的【停用词挖掘】;想从同领域的材料里抽出反复出现的多词术语,用【领域术语抽取】;想看词和词怎样固定搭配,用【词语搭配强度分析】。
10
资料来源
Shannon:A Mathematical Theory of Communication,Bell System Technical Journal,第 27 卷第 3 期,1948
Sproat 与 Shih:A Statistical Method for Finding Word Boundaries in Chinese Text,Computer Processing of Chinese and Oriental Languages,第 4 卷第 4 期,1990
黄昌宁、赵海:中文分词十年回顾,中文信息学报,第 21 卷第 3 期,2007
END
