中文信息处理技术专栏
1.自动分词
英文书写的时候单词之间是以空格分开,可以非常容易地辨别出每一个单词。而汉字在句子中是连续书写的,虽然汉语基本的书写单位是字,但是最基本有意义的单位是词组,所以必须将句子中的词组与词组正确地切分下来才能对文本进行基于内容的处理,这一过程如果用计算机自动完成,我们就称为自动分词。
自动分词是基于内容中文信息处理的必要基础,信息检索、机器翻译、文本分类、情感分析、信息抽取、自然语言理解等等应用都离不开自动分词,而且自动分词的准确性直接影响着这些上层应用的准确性。
汉语自动分词已经被研究了20多年,目前依然是一个“瓶颈”。目前自动分词最主要的两个障碍是歧义处理与未登录词识别问题,同时“到底什么是词?”也是一个仁者见仁智者见智的问题。但是值得注意的是自动分词是基于内容信息处理的关键基础,但是不同的上层应用其实对分词的需求是有所区别的,有的很强调未登陆词的识别,有的必须有很好的歧义处理能力。
ACL(Association for Computational Linguistics)组织下面的SIGHAN委员会从2003年开始组织了多次国际汉语自动分词竞赛,对自动分词的发展起到了很大的促进作用。
2.歧义
中文分词的歧义可以分成交集型歧义和组合型歧义。设有文本串“ABC”,如果“AB”是一个词,同时“BC”也是一个词,那么“ABC”就被称为交集型歧义,也被称为交叉歧义。显然“项目的”就是一个交集型歧义,可以切分成“项目/的”,也可以被切分成“项/目的”。如果文本串“AB”是一个词,同时“A”和“B”也分别是一个词,那么“AB”被称为组合型歧义,也称为覆盖歧义,“操作系统”就是一个典型的组合型歧义,例如:“经过培训,他能熟练操作系统。”,“操作系统是一门计算机专业基础课。”。
3.自动分词方法
按照使用的技术,自动分词方法可以分为:基于字符串匹配的分词、基于统计的分词、基于理解的分词。
基于字符串匹配的分词又称为机械分词、基于字典的分词,其中常见的有正向最大分词、逆向最大分词、双向最大分词、全切分等。该类分词方法的优点是非常容易实现,基于字符串的分词需要使用一个词库(字典),将待切分的文本串按照词库中的词加以匹配后切分,显然如果词库的数量很大则检索慢,从而导致分词速度低,因此往往需要设计一些便于快速检索的数据结构来为机械分词服务。由于机械分词只是做字符串匹配,所以这类分词本身通常不具有歧义处理的能力,而且如果词库不同,产生的歧义也不同。
基于统计的分词方法通过对一定规模的真实文本语料库进行统计学习,建立统计语言模型,再利用统计得到的各种语言信息完成对待切分字符串的切分处理。所使用的统计模型和方法主要有N-Gram模型、隐马尔科夫模型、最大熵模型、条件随机场、支持向量机等。随着语料库规模与质量的增加,语言模型的覆盖面越广,本类的方法具有较好的歧义处理和未登录词识别的能力。但是这类分词往往与训练的语料库关系密切,待切分的字符串与训练语料库相似,则分词效果好,反之,可能会效果很差。
基于理解的分词试图模拟人脑,它把分词的过程看成是知识推理的过程。这类分词主要有基于专家系统和神经网络的分词,但是由于汉语的语法知识复杂、灵活多变、不能完全枚举,所以推理的规则受限,因此本类的分词目前还难以达到较好的实用性。
目前大多数实用系统中往往以基于字符串匹配分词为基础,综合使用基于统计的分词方法来处理歧义与未登录词,这样既利用了机械分词的简单、速度快优点,又利用了基于统计分词的处理歧义与未登录词的能力。
4.正向和逆向最大分词方法
正向最大分词和逆向最大分词是最简单的分词算法,
二者从算法上没有本质区别,但是由于汉语是修饰性的语言,一个句子中往往修饰词语在前,中心主体在后,所以逆向分词的精度略高于正向分词。
结合使用正向最大分词和逆向最大分词算法,就是双向最大分词算法,通过双向分词算法可以找出文本中的交叉型歧义,但是对于组合型无能为力。
5.常见分词系统
目前美国斯坦福大学、国内的中科院计算所、天津海量信息技术有限公司等单位都已经开发了可供免费使用的汉语自动分词系统,其中有些开源、有些提供二进制代码的和调用接口。
ICTCLAS
ICTCLAS是Institute of Computing Technology, Chinese Lexical Analysis System的缩写,它是由中国科学院计算技术研究所开发的词法分析系统,它的主要功能有:自动分词、词性标注和未登录词识别等。主要特点有切分准确率高(973专家评测达到97.58%)、中国人名和未登录词处理效果好。同时它提供了C++、Java和C#三种主流编程语言的实现版本,因此非常容易在具体的应用中加以结合使用。
海量智能分词
它是由海量信息技术有限公司开发的分词系统,同样提供了自动分词和词性标注的功能。其中“海量智能分词研究版”是一个免费的供学习、科研单位使用的版本,它没有提供源程序,但是提供了C++的调用接口,接口设计精良、调用方便,可以很方便地集成到自己需要的应用中。
斯坦福分词系统
斯坦福分词系统是一个开源的软件,采用Java语言实现。它是一个基于统计的分词系统,它基于CRF(Condition Random Field,条件随机场)机器学习理论。该系统提供了了两个分词数据模型,一个是基于宾州中文树库,另外一个是基于北京大学为sighan第二届中文分词竞赛提供的数据,在调用了的时候可以通过参数选择使用具体的分词数据模型。斯坦福分词系统待分词的数据文件可以是GB18030、UTF-8等多种编码,极大地方便了具体的使用。
使用形式如下:
segment ctb|pk filename encoding
参数说明如下:
ctb : 宾州中文树库。
pk : 北京大学语料库。
filename: 待分词的文件名。
encoding: 待分词文件的编码,可以是UTF-8, GB18030等java所支持的编码。
地址:苏州市十梓街1号 18新利体育 纵横研究所联系电话:0512-65243192电子邮箱:ckc@suda.edu.cn
Copyright © 18新利体育 纵横汉字信息技术研究所 2017