中文分词算法在自然语言处理技术中的研究及应
摘 要:中文分词是自然语言处理处理的基础,有着极其广泛的实际应用。可以说,在各类中文信息处理软件(系统)中,中文分词是不可或缺的环节。自上个世纪末,由于互联网在中国的兴起,更对中文信息处理提出要求,即在语义层面上处理中文,这使得中文分词算法的研究显得更加困难,中文分词技术的发展显得更为重要。
关键词:中文分词;自然语言处理;算法
1.引言
伴随着计算机的日益普及,互联网的迅猛发展,文本的数量(电子邮件、新闻、网页、科技论文等)在不停的增长,因而对文本作智能化处理以获取所需信息的需求日益迫切。在这样的社会需求下,自然语言处理技术的地位和作用日益重要。经过几十年的研究,计算机处理自然语言的理论基础日趋成熟,应用范围也越来越广,初步形成了面向各种不同应用和研究的技术体系。分词作为自然语言处理的第一个步骤,是其他高层应用的基础,起着极其重要的作用。
2.分句处理
2.1 分句处理技术简介
分句处理就是把句子以某些特定的标点符号为分隔划分为若干个句子。根据汉语对语句、句群和篇章的定义,主要以基本的标点符号:句号、问号、感叹号、分号、逗号等作为子句的分隔符。通过使用这些标点符号对语言进行计算机子句分割,完成分句处理。
2.2分句算法的设计
在进行分词之前首先应对句子进行分割,分为以句子为单位的一个个语句片段。因为以逗号、分号来分隔的语句通常能表达完整的语义信息,所以本文主要使用逗号、分号等标点符号也作为子句分句的分隔符号,以它们为标志进行语句的分句处理。
分句处理的具体算法设计如下:
① 判断答案字符串aString是否为空,若为空则结束;
② 取aString左侧的一个字符存入tChar中,判断tChar是否是句末标点符或回车符,若不是,转⑤;
③ 若tChar是句末标点符号,则子句数组下标加1,并将字符tChar从字符串aString中删掉,转①;
④ 若tChar为回车符或者换行符,去掉aString左侧两字符,并将字符tChar从字符串aString中删掉,转①。
⑤ 将tChar合并到子句数组当前元素中,去掉aString左侧一字符,转①。
上述算法中,aString为待处理的字符串,tChar为字符类型变量。
3.分词处理
3.1 中文分词技术简介
中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。中文分词技术属于自然语言理解的研究范畴。
目前主要有三种中文词算法,分别为基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。介绍如下:
1) 基于字符串匹配的分词算法
基于字符串匹配的分词方法也叫机械匹配法,是分词技术的诸多理论算法中较简单实用的一种分词算法。它是按照一定的策略将待分析的汉字串与一个"充分大的"机器词典中的词条进行区配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。常用的几种机械分词方法如下:① 正向最大匹配法(由左到右的方向)② 逆向最大匹配法(由右到左的方向)③ 最少切分(使每一句中切出的词数最小)还可以将上述各种方法相互组合。
2) 基于统计的分词方法
在很多情况下,最大匹配时即使采用双向扫描也不能检查出所有的交集型切分歧义。为了消除歧义,我们还需要其他知识。这也是自然语言处理里,统计方法出现的原因。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。
3) 基于理解的分词方法
通常的分析系统,都力图在分词阶段消除所有歧义切分现象。而基于理解的分词方式则在后续过程中来处理歧义切分问题,其切分过程只是整个语言理解过程的一小部分。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。
目前无法作出结论证明以上三个算法中哪一个是最好的,针对具体问题采用不同的算法。这三种算法都有自己的利弊,它们的对比见表1所示:
分词方法 | 基于字符串匹配分词 | 基于统计的分词 | 基于理解的分词 |
歧义识别 | 差 | 强 | 强 |
新词识别 | 差 | 强 | 强 |
需要词典 | 需要 | 不需要 | 不需要 |
需要语料库 | 否 | 是 | 否 |
需要规则库 | 否 | 否 | 是 |
算法复杂性 | 容易 | 一般 | 很难 |
技术成熟度 | 成熟 | 成熟 | 不成熟 |
实施难度 | 容易 | 一般 | 很难 |
分词准确性 | 一般 | 较准 | 准确 |
分词速度 | 快 | 一般 | 慢 |
3.2自动分词的评价标准
一般对自动分词有三个评价标准:正确率、召回率、调和平均数。其定义如下:
由定义可见,分词正确率和分词召回率是互相矛盾的,要得到高的分词召回率需保留多个分词结果以保证更大可能地包含正确的结果,而这样却会降低分词正确率。所以引入了调和平均数作为评价参数。
3.3分词算法设计
英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。
目前主流的分词算法主要有三种,分别为基于字符串匹配的分词算法、基于理解的分词算法和基于统计的分词算法。分词本文采用的是最大词长匹配算法。这是一种基于字符串匹配的分词算法,该方法依据一个分词词表和一个基本的切分评估原则,即"长词优先"原则来进行分词。这种评估原则虽然在大多数情况下是合理的,但也会引发一些切分错误。采用这种方法的原因是它简单、快速。
最大匹配算法需要一个已知的词汇数据库作为支撑,本文以知网数据库作为该算法的词库。最大匹配算法的主要思想如下:
① 首先统计出《知网》数据库中的最长词条所包含的字数,本文暂时将称其为最大词长,并将该长度记为MaxL;
② 从每个分句中的第一个字开始 向后取L(L≤MaxL)个字;
③ 在《知网》数据库中查找是否有由此L个字组成的词。如果有,则一个词语分解成功,并转⑤;
④ 将这L个字中的最后一个字去掉,并令L=L-1,转至第③步骤(直至L=1,说明L已经是一个单字);
⑤ 从这个句子中将该词删除,并判断句子是否已经为空,如果为空,则返回第②步,否则,算法结束。
其中MaxL表示《知网》数据库中的最长词条所包含的字数。当前最大词长L≤MaxL。
4.结束语
中文分词技术应时代的要求应运而生,在很大程度上满足了人们对自然语言处理的需要,解决了人和计算机交流中的一些障碍;但中文分词技术也存在很多困难,我们相信在未来的几年里,通过对中文分词技术的深入研究,必将开发出高质量、多功能的中文分词算法并促进自然语言理解系统的广泛应用。
参考文献:
[1] 李向宏,王丁,黄成哲等.自然语言句法分析研究现状和发展趋势[J].微处理机,2003,4(2):28-29.
[2] 黄昌宁.中文信息处理的主流技术是什么[J].计算机世界报,2002(2):4.
[3] 曹倩,丁艳,王超,潘金贵.汉语自动分词研究及其在信息检索中的应用[J].计算机应用研究,2004.5:71-73.
[4] 傅立云,刘新.基于词典的汉语自动分词算法的改进[J].情报杂志, 2006,1:40-41.
[5] 刘红芝.中文分词技术的研究[J].电脑开发与应用,2010,23(3):173-175.
上一篇:计算机信息管理系统的安全性探讨
下一篇:基于椭圆曲线数字签名的研究与应用