浅谈中文分词技术

Posted IDEADATA大数据视界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈中文分词技术相关的知识,希望对你有一定的参考价值。


一个中文文本从形式上看是由汉字(包括标点符号等)组成的一个字符串。由字可组成词,由词可组成句子,进而由一些句子组成段、节、章、篇。可见,如果需要处理一篇中文语料,从中正确的识别出词是一件非常基础而重要的工作。

1、中文分词概述

显而易见,中文以字为基本书写单位,词语之间没有明显的区分标记。中文分词就是由机器在词与词之间加上标记进行区分。例如:

输入:    我是学生。

输出:    我/是/学生/。

1.1 中文分词的关键问题

中文分词的关键问题为:切分歧义消解和未登录词识别

1.2 歧义切分定义

歧义切分的表示可以由下示例:

输入待切分句子:提高人民生活水平

可以切分输出  :提高/人民/生活/水平

或者切分输出:提/高人/民生/活水/平

明显第二个输出为歧义切分

1.3未登录词定义

常见的未登录词有实体名词、专有名词与新词

实体名词包括有:

中国人名:李素丽  老张  李四  王二麻子

中国地名:定福庄  白沟  三义庙  韩村  河马甸

翻译人名:乔治•布什 叶利钦  包法利夫人  酒井法子

翻译地名:阿尔卑斯山  新奥尔良  约克郡

机构名 :方正公司  联想集团  国际卫生组织  外贸部

商标字号:非常可乐  乐凯  波导  杉杉  同仁堂

专业术语和新词语

专业术语:万维网  主机板  模态  逻辑  贝叶斯算法

缩略语 :三个代表  五讲四美  打假  扫黄打非  计生办

新词语 :卡拉OK  波波族  美刀  港刀

未登录词没有明确边界,缺少英语中的分隔符、大小写、词的形态、冠词等语法信息,识别比较困难。

因此通常每一类未登录词都要构造专门的识别算法。

2、分词主要技术方法

2.1 基于词典的分词

词典中一般存储着:词、词频、词性等信息,可以通过统计标注好的熟语料和常用词典得到。

基于词典分词方法首先需要对句子进行原子切分,即找出句子中可能蕴含组成的所有词,然后构成词图。还是之前例子,输入:

提高人民生活水平

输出所有包括的词:

提 —提高

高 —高人

人 —人民

民 —民生

生—生活

活—活水

 水 —水平

则可以构成词图如下:


上述工作主要重点是词典存储于并快速匹配,多采用双数组Tie树的方法生成词典树,用自动机匹配词串。

2.2词典分词的歧义消解问题

歧义消解可以转换为对于上述在词图上寻找统计意义上的最佳路径。常用一元、二元模型进行。

基于一元模型进行评价:

统计词表中每个词的词频,并将其转化为路径代价C=-log(f/N)切分路径的代价为路径上所有词的代价之和寻求代价最小的路径。上述例子就是根据词典中<提高><高人><人民><民生><生活><活水><水平><平>这几个词的词频f,认为词频越高的路径代价越小,找出最短的路径。

基于二元模型进行评价:

相对于一元模型,二元模型还需要一个词转移统计词典,例如记录了<提高>衔接<人民>的次数,词转移统计词典实质上是一个稀疏矩阵。基于二元模型进行评价需要在一元模型的基础上增加转移路径代价。词典中转移次数多的衔接认为该衔接转移路径代价小。计算方法可以用Viterbi算法。

2.3词典分词的未登陆词问题

简单来说,可以将未登陆词的识别转换成序列标注问题即打标签,然后用HMM或其它统计学习方法求解。例如中国人名识别可以表示为(姓+名)的形式,例如对于一个人名:金三胖 可以正确标注序列为:金/姓 三胖/名,则人名可以识别出来。具体可参见张华平相关论文《基于层叠隐马尔可夫模型的中文命名实体识别》、《基于角色标注的中国人名自动识别研究》、《基于角色标注的中文机构名识别》。

2.4基于字的分词

基于字的分词可以平衡的看待词表词和未登录词的识别问题。

汉语中词都是有字组成的,可以将分词视为字的序列标注问题。例如对于“占”这个字可以有以下词位标注:

  • 词首B       占领

  • 词尾E       抢占

  • 词中M      独占鳌头

  • 单字词S   已占全国

基于字的分词实现很简单,例如对于句子

上海/计划/到/本/世纪/末/实现/人均/国内/生产/总值/五千美元/。

可以有如下词位序列标注:

 上/B海/E计/B划/E到/S本/S世/B纪/E末/S实/B现/E人/B均/E国/B内/E生/B产/E总/B值/E五/B千/M美/M元/E。/S

根据标注BMES实现了分词。

转换成序列标注问题后常用算法有HMM (隐马模型)、MEMM(最大熵隐马模型)、CRF等。下面简单比较一下:

隐马模型一个最大的缺点就是由于其输出独立性假设,导致其不能考虑上下文的特征,限制了特征的选择。

最大熵隐马模型则解决了隐马的问题,可以任意选择特征,但由于其在每一节点都要进行归一化,所以只能找到局部的最优值,同时也带来了标记偏见的问题,即凡是训练语料中未出现的情况全都忽略掉。

条件随机场则很好的解决了这一问题,他并不在每一个节点进行归一化,而是所有特征进行全局归一化,因此可以求得全局的最优值。

2.5 主要分词技术评价

  • 基于词典的分词优点:

    速度快,效率高,易修改,灵活性强。

  • 基于词典的分词缺点:

主要依赖词典和规则库,对于歧义词和未登录词的识别能力较低。

  • 基于字的分词的优点:

对于歧义词和未登录词的识别能力较好。

  • 基于字的分词的缺点:

(1)模型体积大占内存。例如一个可供生产环境用的CRF模型至少使用前中后3个字符的组合做特征模板,在一两百兆的语料上训练,模型体积至少上百兆。

(2)速度慢。相较于基于词语的BiGram分词器,一个拖速度的地方是特征函数的查询次数多、速度慢,另一个弱点则是概率图的节点更多(4倍文本长度个节点,4是BMES标签的个数)。

(3)不易修改。有时候用户对分词结果不满意,却无法方便地修正它。包括CRF在内的其他模型都需要重新训练,或者修改代码。而基于词语的NGram词典和词频词典可以轻松修改。



关于IDEADATA

IDEADATA专注于从数据到信息的有效管理与应用,是领先的商业信息服务技术提供商,是数据仓库及大数据技术和应用的先行实践者。

  • 公司官网www.ideadata.com.cn

  • 新浪微博:iDEADATA大数据视界

  • 微信关注

长按指纹或扫描下面的二维码可以直接添加:


以上是关于浅谈中文分词技术的主要内容,如果未能解决你的问题,请参考以下文章

浅谈中文分词与自然语言处理

浅谈分词算法基于词典的分词方法

浅谈分词算法分词中的基本问题

浅谈分词算法基于字的分词方法(CRF)

中文分词技术(中文分词原理)

中文分词技术深度学习篇