汉语分词, 技术, 综述
1 汉语分词的意义
汉语自动分词是任何中文自然语言处理系统都难以回避的第一道基本“工序”,其作用是怎么估计都不会过分。只有逾越这个障碍,中文处理系统才称得上初步打上了“智能”的印记,构建于词平面之上的各种后续语言分析手段才有展示身手的舞台。否则,系统便只能被束缚在字平面上。具体来说,自动分词在很多现实应用领域(中文文本的自动检索、过滤、分类及摘要,中文文本的自动校对,汉外机器翻译,汉字识别与汉语语音识别的后处理,汉语语音合成,以句子为单位的汉字键盘输入,汉字简繁体转换等)中都扮演着极为重要的角色。
2 汉语自动分词中的主要问题
2.1 汉语分词规范问题
分词规范直接影响到词表和分词语料库的质量,虽然已经有了国家标准(《信息处理用限定汉语分词规范(GB13715)》),有的单位也制定了自己的规范,但这些规范的可操作性都不太强,很难构造出一致性好的词表和分词语料库来。对汉语中什么是词,有两个不清的界限:单字词与语素(词素)、词与短语。如,花草,湖边,房顶,鸭蛋,小鸟,担水,一层,翻过等
2.2 歧义切分字段处理
(1) 交集型歧义:对于汉字串AJB,如果满足AJ、JB同时为词(A、J、B分别为汉字串)。此时汉字串AJB被称作交集型切分歧义,汉字串J被称作交集串。如:
中国人为了实现自己的梦想
中国/ 人为/ 了/ 实现/ 自己/ 的/ 梦想
中国人/ 为了/ 实现/ 自己/ 的/ 梦想
中/ 国人/ 为了/ 实现/ 自己/ 的/ 梦想
“大学生”、“研究生物”、“从小学起”、“为人民工作”、“中国产品质量”、“部分居民生活水平”等等。
(2) 组合型歧义: 对于汉字串AB,如果满足A、B、 AB同时为词,则称汉字串AB为组合型切分歧义。如:
门把手弄坏了。
门/ 把/ 手/ 弄/ 坏/ 了/ 。
门/ 把手/ 弄/ 坏/ 了/ 。
2.3 未登录词的识别
(1)命名实体:人名、地名、组织机构名、外国译名、术语等。如:盛中国,张建国,蔡国庆,林徽因,彭太发生,平川三太郎,约翰·斯特朗,詹姆斯·埃尔德等。
(2)新出现的词汇、术语、个别俗语等。例如:博客,禽流感等。
例如:
a 他还兼任何应钦在福州办的东路军军官学校的政治教官。
b 大不列颠及北爱尔兰联合王国外交和英联邦事务大臣、议会议员杰克·斯特劳阁下在联合国安理会就伊拉克问题发言。
c 坐落于江苏省南京市玄武湖公园内的夏璞墩是晋代著名的文学家、科学家夏璞的衣冠冢。
(3) 关于中文姓名:台湾出版的《中国姓氏集》收集姓氏5544 个,其中,单姓3410 个,复姓1990 个,3字姓144 个,中国目前仍使用的姓氏共737 个,其中,单姓729 个,复姓8 个。
中文姓名识别的难点:名字用字范围广,分布松散,规律不很明显。姓氏和名字都可以单独使用用于特指某一人。许多姓氏用字和名字用字(词)可以作为普通用字或词被使用,如,姓氏:于(介词),张(量词),江(名词)等;名字:建国,国庆,胜利,文革等。 缺乏可利用的启发标记。 例如:
a祝贺老总百战百胜。
b林徽因此时已经离开了那里。
c赵微笑着走了。
d 南京市长江大桥。
(4) 关于中文地名:地名数量大,缺乏明确、规范的定义。《中华人民共和国地名录》(1994)收集88026个,不包括相当一部分街道、胡同、村庄等小地方名称。真实语料中地名出现情况复杂。如地名简称、地名用词与其它普通词冲突、地名是其它专用名词的一部分,地名长度不一等。由此导致中文地名的识别困难。
3 汉语自动分词的原则
3. 1 汉语自动分词的基本原则
(1)语义上无法由组合成分直接相加而得到的字串应该合并为一个分词单位。(合并原则)
如:不管三七二十一(成语),或多或少(副词片语),十三点(定量结构),六月(定名结构),谈谈(重叠结构,表示尝试),辛辛苦苦(重叠结构,加强程度),进出口(合并结构)。
(2)语类无法由组合成分直接得到的字串应该合并为一个分词单位。(合并原则)
i) 字串的语法功能不符合组合规律,如:好吃,好喝,好听,好看等。
ii) 字串的内部结构不符合语法规律,如:游水等。
3. 2 汉语自动分词的辅助原则
(1)有明显分隔符标记的应该切分之(切分原则)。分隔标记指标点符号或一个词。
如:上、下课 上/ 下课
洗了个澡 洗/ 了/ 个/ 澡
(2) 附着性语(词)素和前后词合并为一个分词单位(合并原则)。
如:“吝”是一个附着语素,“不吝”、“吝于”等合并成一个词;
“员”:检查员、邮递员、技术员等;
“化”:现代化、合理化、多变化、民营化等。
(3) 使用频率高或共现率高的字串尽量合并为一个分词单位(合并原则)。
如:“进出”、“收放”(动词并列);
“大笑”、“改称”(动词偏正);
“关门”、“洗衣”、“卸货”(动宾) ;
“春夏秋冬”、“轻重缓急”、“男女”(并列);
“象牙”(名词偏正);“暂不”、“毫不”、“不再”、“早已”(副词并列)等
(4) 双音节加单音节的偏正式名词尽量合并为一个分词单位(合并原则)。
如:“线、权、车、点”等所构成的偏正式名词:“国际线、分数线、贫困线”、“领导权、发言权”、“垃圾车、交通车、午餐车”、“立足点、共同点、着眼点”等。
(5) 双音节结构的偏正式动词应尽量合并为一个分词单位(合并原则)。本原则只适合少数偏正式动词,如:“紧追其后”、“组建完成”等,不适合动宾及主谓式复合动词。
(6) 内部结构复杂、合并起来过于冗长的词尽量切分(切分原则)。
如:词组带接尾词:太空/ 计划/ 室、塑料/ 制品/ 业
动词带双音节结果补语:看/ 清楚、讨论/ 完毕
复杂结构:自来水/ 公司、中文/ 分词/ 规范/ 研究/ 计划
正反问句:喜欢/ 不/ 喜欢、参加/ 不/ 参加
动宾结构、述补结构的动词带词缀时:写信/ 给、取出/ 给、穿衣/ 去
词组或句子的专名,多见于书面语,戏剧名、歌曲名等:鲸鱼/ 的/ 生/ 与/ 死、那/ 一/ 年/ 我们/ 都/ 很/ 酷。
专名带普通名词:胡/ 先生、京沪/ 铁路。
4 汉语自动分词基本算法
4.1 最大匹配法(Maximum Matching, MM)
正向最大匹配算法(Forward MM, FMM),逆向最大匹配算法(Backward MM, BMM), 双向最大匹配算法(Bi-directional MM)。
4.1.1 FMM算法描述
句子:
假设词: ,m为词典中最长词的字数。
① 令i=0,当前指针 指向输入字串的初始位置,执行下面的操作:
② 计算当前指针 到字串末端的字数(即未被切分字串的长度)n,if n=1,转④。否则,令m=词典中最长单词的字数, if n < m, m = n;
③ 从当前指针 起取m个汉字作为词 ,作如下判断:
i) 如果 确实是词典中的词,则在 后添加一个切分标志,转iii);
ii) 如果 不是词典中的词且 的长度大于1,将 从右端去掉一个字,转③中的i) 步;否则(即 的长度等于1),则在 后添加一个切分标志,将 作为单字词添加到词典中,执行iii);
iii) 根据③的长度修改指针 的位置,如果 指向字串末端,转④,否则,i=i+1,返回②;
④ 输出切分结果,结束分词程序。
4.1.2 FMM算法举例
设词典中最长单词的字数为7。
输入字串:他是研究生物化学的。
切分过程:他是研究生物化学的。
P
…………
他 || 是研究生物化学的。
P
FMM 切分结果:他|| 是|| 研究生|| 物化|| 学|| 的||。
BMM 切分结果:他|| 是|| 研究|| 生物|| 化学|| 的||。
4.1.3 算法评价
优点:程序简单易行,开发周期短;仅需要很少的语言资源(词表),不需要任何词法、句法、语义资源;
弱点:切分歧义消解的能力差;切分正确率不高,一般在95%左右。
4.2 最少分词法(最短路径法)
设待分字串 ,其中 (i=1,2,3….n)为单个的字,n为串的长度n>=1。 建立一个节点数为n+1的切分有向无环图G,各节点编号依次为 , , … 。
求N-最短路径:贪心法或简单扩展法。
4.2.1 算法描述
(1)相邻节点 , 之间建立有向边< , >,边对应的词默认为 (k=1,2, …,n)。
(2)如果 ,(0<i<j<=n)是一个词,则节点 , 之间建立有向边< , >,边对应的词为W。
(3) 重复上述步骤(2),直到没有新的路径(词序列)产生。
(4) 从产生的所有路径中,选择路径最短的(词数最少的)作为最终分词结果。
4.2.2 算法举例
(1)输入字串:他只会诊断一般的疾病。
可能的输出:他 || 只会 || 诊断 || 一般 || 的 || 疾病。(6个词)
他 || 只 || 会诊 || 断 || 一般 || 的 || 疾病。(7个词)
…………
最终结果: 他 || 只会 || 诊断 || 一般 || 的 || 疾病。
(2) 输入字串:他说的确实在理。
可能的输出:他 || 说 || 的 || 确实 || 在理。(5个词)
他 || 说 || 的确 || 实在 || 理。(5个词)
…………
4.2.3 算法评价
优点:采用的原则(切分出来的词数最少)符合汉语自身规律,需要的语言资源(词表)也不多。
弱点:对许多歧义字段难以区分,最短路径有多条时,选择最终的输出结果缺乏应有的标准。字串长度较大和选取的最短路径数增大时,长度相同的路径数急剧增加,选择最终正确的结果困难越来越越大。
4. 3 基于统计语言模型的分词方法
(1) 基本思想:利用字与字之间和词与词之间的同现概率作为分词的依据。
(2) 方法描述:
设待切分的汉字串为: ,其中 (i=1,2,3….n)为单个的字,n为串的长度n>=1。 是一种可能的切分。
微软研究院把一个可能的词序列W 转换成一个可能的词类序列 ,即:
专有名词的人名PN、地名LN、机构名ON分别作为一类;
实体名词中的日期date、时间time、百分数percent、货币money等作为一类;
对词法派生词MW和词表词LW,每个词单独作为一类。
那么:
(1)
可采用3元语法:
(2 )
生成模型在满足独立性假设的条件下,可近似为:
(3 )
该公式认为,任意一个词类生成汉字串的概率只与自身有关,而与其上下文无关。例如,如果“教授”是词表词,则 。
词类
生成模型P(S|C)
语言知识
词表类(LW)
若S是词表词,P(S|LW)=1,否则为0;
分词词表
词法派生类(MW)
若S是派生词,P(S|MW)=1,否则为0;
派生词词表
人名(PN)
基于字的二元模型
姓氏表,中文人名模板
地名(LN)
基于字的二元模型
地名表,地名关键词表,地名简称表
机构名(ON)
基于词类的二元模型
机关名关键词表,机构名简称表
实体名(FT)
若S可用实体名词规则集G识别,P(S|G)=1,否则为0。
实体名词规则集
(3) 模型训练
模型的训练由以下三步组成:①在词表和派生词表的基础上,用正向最大匹配法切分训练语料,专有名词通过一个专门模块标注,实体名词通过相应的规则和有限状态自动机标注,由此产生一个带词类别标记的初始语料;②用带词类别标记的初始语料,采用最大似然估计方法估计统计语言模型的概率参数;③采用得到的语言模型对训练语料重新进行切分和标注(公式(1)、(2)、(3)),得到一个刷新的训练语料。重复第②、③步,直到系统的性能不再有明显的提高为止。
(4)评价:
优点:减少了很多手工标注知识库(语义词典、规则等)的工作,在训练语料规模足够大和覆盖领域足够多的情况下,可以获得较高的切分正确率。
弱点:训练语料的规模和覆盖领域不好把握,计算量较大。