《NLP汉语自然语言处理原理与实践》学习三

词汇与分词技术

中文分词

信息处理的目标是使用机器(主要指计算机)能够理解和产生自然语言。而自然语言理解和产生的前提是对语言能够做出全面的解析。汉语词汇是语言中能够独立运用的最小语言单位,是语言中的原子结构。因此,对中文进行分词就显得至关重要。

中文分词中最常用的《北大(中科院)词性标注》的基本原则,它将汉语的词类分为40种。北大标准除考虑到词汇的语法特征之外,还兼顾了词的语义特征。

语素是构成词的最小单位,其粒度小于词汇。是否需要进行切分可根据用户需求,从语言处理的角度来看,语素级别的切分使用范围并不大。实际应用中,汉语分词分为两个粒度。粗粒度分词:将词作为语言处理最小的基本单位进行切分。细粒度分词:不仅对词汇进行切分,也要对词汇内部的语素进行切分。

例如,原始串:浙江大学坐落在西湖旁边。

粗粒度:浙江大学/坐落/在/西湖/旁边。

细粒度:浙江/大学/坐落/在/西湖/旁边。

一般细粒度切分的对象都为专有名词。因为专有名词常表现为几个一般名词的合成。粗粒度切分主要用于自然语言处理的各种应用;而细粒度分词最常用的领域是搜索引擎。一种常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。

歧义问题在汉语中普遍存在,长久以来歧义切分问题一直是中文分词的核心问题之一。人们设计了早期的机械分词系统。机械分词系统都是基于最大匹配方法作为最基本的分词算法。该方法由苏联汉俄翻译学者提出,其基本思想是,假设自动分词词典中的最长词条所含汉字个数为N,则取被处理材料当前字符串序数中的1个字作为匹配字段,查找分词词典。若词典中有这样一个N字词,则匹配成功,匹配字段作为一个完整的词被切分出来;如果词典中找不到这样的一个N字词,则匹配失败。匹配字段去掉最后一个汉字,剩下的字符作为新的匹配字段,回到上诉步骤,重新匹配,如此进行下去;直至切分到成功为止。即完成一轮匹配,并切分出一个词。之后再按上诉步骤进行下去,指导切分出所有词为止。

使用最大匹配方法切分的精度并不高。之后人们又基于此方法提出了双向匹配法,分为正向最佳匹配法和逆向最佳匹配法。

这类早期的分词器因为没有考虑到词汇上下文的相关性,分词的准确度都不高,基于正向最大匹配算法的分词器的准确度为78%;召回率为75%;F1值约为76%。后来改进的双向匹配算法的最高精度也在80%左右徘徊。

一个词汇的出现与其上下文环境中出现的词汇序列存在着紧密的关系,如果算法不能反映和处理这种上下文依赖关系,则不能最终达到满意的分词结果。所谓上下文相关性是指,文本中第n个词的出现于其前后n-m到n+m个词有高度的相关性,而与这个范围之外的其他词的相关性较低,我们把[-m,m]范围也称为窗口范围。

将语言模型引用到分词算法中,中文分词的水平将会得到显著的改善,ICTCLAS的中文分词算法就是这方面的最成功的案例,经测试该分词器的准确率为98%;召回率为98.5%;F1值约为98%。这一改善与之前的分词系统相比有一个显著的质变。该算法使高精度中文文本处理成为可能。

所谓词汇,一般都具有三个重要的特性:稳固性、常用性和能产性。随着外界新事物的产生,表达概念的新词汇也会层出不穷地涌现。人们给小孩子起名字就是词汇的能产性生动的体现:一方面,孩子的名字要继承父辈的姓氏,另一方面又要传达大人对孩子未来的最美好的期望,而又尽可能不与他人的名字重复。这个过程就是词性能产性的表现。网络媒体、专业术语、组织机构的命名都是新词产生的重要来源。在自然语言处理中,它们被统称为未登录词识别。未登录词识别就是包括中国人名、译名、日本人名、地理位置名称、组织机构名称等专用名词的识别,在自然语言处理研究中,人们通常将上述专有名词和数字、日期等词称为命名实体。

基于半监督的条件随机场(semi-CRF)算法,对于处理不同领域的专名识别具有较低的成本和较好的效果。

ICTCLAS

ICTCLAS汉语分词系统是由张华平博士于2002年设计开发的一套中文分词系统。迄今为止,ICTCLAS都是自然语言处理领域国人设计的人工智能类算法中最成功、应用最广泛的成果。该算法具有原理简单、易于实现,便于使用,以及对大规模分词,效率高、精度准等优势。除此之外。该算法使用的模型具有资源占用低、便于增量扩展等特点。目前,各大知名网络公司都以该算法作为分词系统的核心算法。该算法使中文自然语言处理终于从词法分析时代跨入了句法分析时代。

该系统提供一个基于30万个常用词的免费版,可从http://ictclas.nlpir.org/下载。该网站也称为自然语言处理与信息检索共享平台,分词器名称调整为NLPIR汉语分词系统,主要功能包括中文分词、词性标注、命名实体识别、用户词典功能,以及支持GBK编码、UTF8编码、BIG5编码,还新增微博分词,新词发现与关键词提取等功能,是国内最著名的分词系统之一。

为了促进大家的研究学习,ICTCLAS发布一个免费开源版称为FreeICTCLAS,均使用c++开发语言。它有两个版本:一套基于Windows操作系统,可从CSDN上找到源码。另一套移植到Linux系统下(下载地址:http://threedweb.cn/thread-162-1-1.html)。两套版本的核心源码都完全相同,仅支持GBK编码,不支持UTF-8或其他编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值