资源描述:
《二次回溯中文分词方法 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、二次回溯中文分词方法0引言 中文信息处理的特有问题就是如何将汉语的字串分割为合理的词语序列。中文分词是句法分析等深层中文信息处理的基础,也是机器翻译、信息检索和信息抽取等智能化信息处理的关键所在1,2]。而中文分词的主要困难在于切分歧义消解和未登录词语的识别,这也是世界上最令计算机感到棘手的语言现象之一3~5]。中文分词方法中机械分词法主要包括正向最大匹配法(maximummatchingmethod,MM)、逆向最大匹配法(reversedirectionmaximummatchingm
2、ethod,RMM)和最少切分法。目前机械式分词占主流地位的是正向最大匹配法和逆向最大匹配法,这两种方法是利用一个分词词表进行模式匹配来切分,不依赖词法、句法和语义知识,切分速度快、简洁、易于实现,在各种中文信息处理上得到了广泛的应用;缺点是对于歧义字段无法有效地识别和切分。统计结果表明,单纯使用正向最大匹配的错误率为1/169;单纯使用逆向最大匹配的错误率为1/2456],但这种精度还不能满足智能信息处理以及人机交互的要求,对词义消歧(biguation,e;,bk′,cj
3、′∈T2(i′∈1,i],j′∈1,j],k′∈1,k]),则称字串e;,bk′∈T2(i′∈1,i],k′∈1,k]),而且存在语境〈α,β〉和〈λ,μ〉,使得αa1NA1ADaib1NA1ADbkβ中a1NA1ADaib1
4、NA1ADbk为词bda;a1NA1ADaib1NA1ADbkμ中a1NA1ADaib1NA1ADbk为词序列W1W2,则称W为多义型歧义字段。 例如:a)这个门把手坏了;b)请把手拿开。 例1,把手为多义型歧义字段,a)中把手不应该切分,b)中把手应该切分为把和手两个独立的词。 交集型歧义字段占全部歧义切分字段的85%以上9],所以要提高中文分词质量最关键的是提高对交集型歧义字段的识别率和切分准确性。 定义3文本中
5、相邻两个标点符号(含段首不可见符号)之间字串序列称为元句子。 2二次回溯法设计 2.1二次回溯法总体过程 二次回溯中文分词算法,主要由如下几步组成: a)将文本转换成细粒度文本,即元句子; b)正向最大匹配; c)正向次大匹配(第一次回溯匹配); d)尾单字与后继单字结合成二字检测; e)循环步骤b)~d)至元句子切分结束; f)对元句子切分后的字串进行碎片检查(第二次回溯匹配); g)继续下一个元句子进行切分,循环步骤b)~f)直至文本切分结束。 2.2第一
6、次回溯切分算法描述 首先将待切文本中所有诸如:,;!等标点符号用标签隔开,如用/,//;//!/分别替换,;!。这样文本就被/分隔成一个个标点符号或者无标点符号的字串,这个字串称为元句子(定义3)。/符号之间的标点符号无须切分;针对长度小于等于2的元句子独立成词,无须切分。对文本的切分只要依次完成对文本中长度大于2的元句子的切分即可,以下过程就针对单一的元句子来进行切分。 若分词词表中最长的词由n个字组成,在待切元句子str中按自左向右截取长度为n的字串str1,使之与词表中的词条依
7、次匹配(如果元句子Str长度小于等于n,则取整个元句子来匹配): 1)如果词表中存在str1,再取str1的前n-1个字串str2=str1.Substring(0,n-1)与词表中的词条依次匹配: a)如果词表中不存在str2,则将str1从待切文本中切分出去,str=str.substring(n),继续在剩下待切元句子中自左向右截取长度为n的字串与词表中的词条依次匹配。 b)如果词表中存在str2,则取Str1最右端的字与待切元句子中的第n+1个字组合str
8、3=str.substring(n-1,2),Str3与词表中的词条依次匹配: (a)如果不存在str3这样的词,则将str1从待切元句子中切分出去,str=str.Substring(n),继续在剩下待切元句子中自左向右截取长度为n的字串与词表中的词条依次匹配。 (b)如果存在str3这样的词,则将str2从待切元句子中切分出去,str=str.Substring(n-1),继续在剩下待切元句子中自左向右截取长度为n的字串与词表中的词条依次匹配。 2)如果词表中不存在