您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 中科院中文分词系统ICTCLAS之人名识别词典分析
中科院中文分词系统ICTCLAS之人名识别词典分析标签:照片华为c2007-05-1306:1313888人阅读评论(6)收藏举报分类:自然语言处理(2)版权声明:本文为博主原创文章,未经博主允许不得转载。前言、请在阅读本文前,先确认已阅读过论文《张华平,刘群.基于角色标注的中国人名自动识别研究》。论文把与人名相关的词分为了15个角色,通过词典查询,可以判断某些文字、词所属角色,然后根据模式匹配找到匹配上的名字。当我分析nr.dct的时候,却发现nr.dct并非完全按照论文所描述的进行的角色划分。以下是我对tag统计后的nr.dct的内容,能够在论文中找到含义的,我标注上了含义。TagCount:Tag=B(1),Count=513,姓氏Tag=C(2),Count=955,双名的首字Tag=D(3),Count=1,043,双名的末字Tag=E(4),Count=574,单名Tag=F(5),Count=3,前缀Tag=G(6),Count=9,后缀*Tag=K(10),Count=0,人名的上文Tag=L(11),Count=1,198,人名的下文Tag=M(12),Count=1,684,两个中国人名之间的成分Tag=N(13),Count=67,无*Tag=U(20),Count=0,人名的上文与姓氏成词*Tag=V(21),Count=0,人名的末字与下文成词Tag=X(23),Count=84,姓与双名首字成词Tag=Y(24),Count=47,姓与单名成词Tag=Z(25),Count=388,双名本身成词Tag=m(44),Count=58,无Tag=*(100),Count=1,始##始Tag=*(101),Count=1,末##末一、关于粗分结果的切分我们可以从这个统计结果看出,nr.dct中并没有U和V这两个标签,那ICTCLAS如何修正在粗分情况下错误切分的词语呢?据两个例子:1、邓/颖/超生/前/使用其中的超生就必须切开,分成超/生,后期才可进一步的标注。2、叶/莲/美的/一位/亲戚其中美的必须切开,分成美/的,后期才可进一步的标注。首先是很不幸,对于上面第一个例子FreeICTCLAS无能为力,因为现在的ICTCLAS的nr.dct里面根本没有超生这个词,也就是说,如果粗分结果出现了超生这个错误组合了部分人名的词,那么ICTCLAS无法将其拆开从而正确识别人名。那么对于第二个例子呢?根据对现有的ICTCLAS的分析,注意到关于切分的地方有这么一个代码if(m_tagType==TT_NORMAL||!dictUnknown.IsExist(pWordItems[nWordsIndex].sWord,44)){//如果TT_NORMAL或者NE词典中无此词(withtag44)//将该词放到m_sWords[i]中,调整m_nWordPosition[i+1]的位置。strcpy(m_sWords[i],pWordItems[nWordsIndex].sWord);//storecurrentwordm_nWordPosition[i+1]=m_nWordPosition[i]+strlen(m_sWords[i]);}else{if(!bSplit){strncpy(m_sWords[i],pWordItems[nWordsIndex].sWord,2);//storecurrentwordm_sWords[i][2]=0;bSplit=true;}else{unsignedintnLen=strlen(pWordItems[nWordsIndex].sWord+2);strncpy(m_sWords[i],pWordItems[nWordsIndex].sWord+2,nLen);//storecurrentwordm_sWords[i][nLen]=0;bSplit=false;}m_nWordPosition[i+1]=m_nWordPosition[i]+strlen(m_sWords[i]);}其中:dictUnknown.IsExist(pWordItems[nWordsIndex].sWord,44)到未登录词词典中去寻找标签为44的当前词,由此判定的是否继续执行切分操作。44是谁呢?前面的统计结果中已经有了:Tag=m(44),Count=58,无标签44(m)没有任何对应于论文的说明。关于切分,论文只提到了对于U、V的切分。那m是U还是V呢?因为一共就58个,所以我列出了所有Tag=44的项,大家可以看一下:Key:三和ID=2,564(Tag=44,Frequency=1)Key:东家ID=744(Tag=44,Frequency=1)Key:之和ID=4,052(Tag=44,Frequency=1)Key:健在ID=1,490(Tag=44,Frequency=7)Key:初等ID=482(Tag=44,Frequency=2)Key:到时ID=672(Tag=44,Frequency=1)Key:前程ID=2,379(Tag=44,Frequency=1)Key:华为ID=1,306(Tag=44,Frequency=3)Key:华以ID=1,307(Tag=44,Frequency=1)Key:同江ID=3,024(Tag=44,Frequency=1)Key:和田ID=1,229(Tag=44,Frequency=2)Key:国是ID=1,172(Tag=44,Frequency=1)Key:国都ID=1,164(Tag=44,Frequency=1)Key:图说ID=3,057(Tag=44,Frequency=1)Key:在理ID=3,889(Tag=44,Frequency=1)Key:天王ID=2,989(Tag=44,Frequency=1)Key:子书ID=4,247(Tag=44,Frequency=1)Key:子孙ID=4,248(Tag=44,Frequency=1)Key:学说ID=3,506(Tag=44,Frequency=1)Key:对白ID=780(Tag=44,Frequency=1)Key:帅才ID=2,828(Tag=44,Frequency=1)Key:平和ID=2,305(Tag=44,Frequency=2)Key:怡和ID=4,448(Tag=44,Frequency=1)Key:慈和ID=538(Tag=44,Frequency=1)Key:成说ID=444(Tag=44,Frequency=1)Key:文说ID=3,186(Tag=44,Frequency=3)Key:新说ID=3,416(Tag=44,Frequency=5)Key:明说ID=2,130(Tag=44,Frequency=4)Key:有请ID=3,772(Tag=44,Frequency=1)Key:来时ID=1,817(Tag=44,Frequency=1)Key:来由ID=1,820(Tag=44,Frequency=1)Key:永不ID=3,746(Tag=44,Frequency=1)Key:清谈ID=2,434(Tag=44,Frequency=1)Key:清还ID=2,429(Tag=44,Frequency=6)Key:特等ID=2,957(Tag=44,Frequency=1)Key:王开ID=3,115(Tag=44,Frequency=1)Key:生就ID=2,674(Tag=44,Frequency=1)Key:石向ID=2,720(Tag=44,Frequency=4)Key:维和ID=3,152(Tag=44,Frequency=1)Key:美的ID=2,075(Tag=44,Frequency=3)Key:老是ID=1,852(Tag=44,Frequency=1)Key:良将ID=1,938(Tag=44,Frequency=1)Key:若是ID=2,556(Tag=44,Frequency=1)Key:行将ID=3,450(Tag=44,Frequency=1)Key:远在ID=3,847(Tag=44,Frequency=3)Key:长发ID=388(Tag=44,Frequency=1)Key:鲁迅文学奖ID=2,005(Tag=44,Frequency=1)Key:茅盾文学奖ID=2,059(Tag=44,Frequency=3)其中有我们刚才说的美的,也就是说第二个例句叶/莲/美的/一位/亲戚会因为这个Tag=m的美的词条而成功的被切分为两条。从这个例句,我们感觉,Tag=m相当于论文里的V,既人名的末字与下文成词。可是真的是这样么?当我继续搜索标签为44的天王这个词条的时候,我注意到了199801人民日报语料中只有一条句子和拆分有关:前几天王老头刚收到小孩寄来的照片这句话是人名的上文与姓氏成词,也就是对应于论文的U。这回就乱套了,m既对应U又对应V。按照上面拆分的代码,不管任何情况,将m的第一个字拆出来。做为V还好说,第一个字是名字的末字。但是对于U来说,可就完全不见得了,对于U,应该是拆除了最后一个字的部分。二者交集只有一种特例情况,就是m的词长是2个字。这样拆第一个字和拆最后一个字事实上一样。观察上面Tag=m的词条,我们会发现,除了茅盾文学奖和鲁迅文学奖这两个莫名其妙的词条外,其余的词条全都是两个字的。词长上满足刚才说的特例。难道就没有3个字的U和V了么?我相信肯定会有满足U或者V的三字词、四字词,这才是更通用的情况,而FreeICTCLAS里面将U,V特例化成了只允许为2字的词。估计也是因为这个原因,也就没有对应它为U或者V,而是用了另一个字母小写m来表示。总结一下,FreeICTCLAS实际上并没有真正的实现论文中所说的U,V这两个需要切分的Tag,取而代之的是一个在2个字成词的特例情况下等效的m来针对两个字成词的特例进行处理。二、关于前缀、后缀的思考关于FreeICTCLAS中判定词的Pattern有下列几种://BBCD:姓+姓+名1+名2;//BBE:姓+姓+单名;//BBZ:姓+姓+双名成词;//BCD:姓+名1+名2;//BE:姓+单名;//BEE:姓+单名+单名;韩磊磊//BG:姓+后缀//BXD:姓+姓双名首字成词+双名末字//BZ:姓+双名成词;//B:姓//CD:名1+名2;//EE:单名+单名;//FB:前缀+姓//XD:姓双名首字成词+双名末字//Y:姓单名成词下面是nr.dct关于前缀的词条:Tag=F,前缀Key:大ID=588(Tag=5,Frequency=3)Key:老ID=1,834(Tag=5,Frequency=56)Key:小ID=3,359(Tag=5,Frequency=68)下面是nr.dct关于后缀的词条:Tag=G,后缀Key:哥ID=1,014(Tag=6,Frequency=2)Key:公ID=1,071(Tag=6,Frequency=13)Key:姐ID=1,579(Tag=6,Frequency=4)Key:老ID=1,834(Tag=6,Frequency=32)Key:某ID=2,157(Tag=6,Frequency=40)Key:嫂ID=2,573(Tag=6,Frequency=14)Key:氏ID=2,758(Tag=6,Frequency=14)Key:帅ID=2,827(Tag=6,Frequency=18)Key:总ID=4,269(Tag=6,Frequency=2)关于前缀、后缀也有些不解。既然可以如下成词://FB:前缀+姓//BG:姓+后缀那么张老师、周总理这种两个字的后缀为什么没有收录进来呢?另外,前缀也有可能是2个字的,比如馄饨侯、泥人张、年糕陈,在前缀中也没有收录进来。那么老师,总理这么常用的后缀在词库里是什么呢?Key:总理ID=4,281(Tag=11,Frequency=105
本文标题:中科院中文分词系统ICTCLAS之人名识别词典分析
链接地址:https://www.777doc.com/doc-2776623 .html