中科院中文分词系统ICTCLAS之人名识别词典分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中科院中文分词系统ICTCLAS之人名识别词典分析

标签:照片华为c

2007-05-13 06:13 13888人阅读评论(6) 收藏举报分类:

自然语言处理(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。

前言、

请在阅读本文前,先确认已阅读过论文《张华平,刘群.基于角色标注的中国人名自动识别研究》。

论文把与人名相关的词分为了15个角色,通过词典查询,可以判断某些文字、词所属角色,然后根据模式匹配找到匹配上的名字。

当我分析nr.dct的时候,却发现nr.dct并非完全按照论文所描述的进行的角色划分。以下是我对tag统计后的nr.dct的内容,能够在论文中找到含义的,我标注上了含

义。

Tag Count:

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词典中无此词(with tag 44)

// 将该词放到m_sWords[i]中,调整m_nWordPosition[i+1]的位置。

strcpy(m_sWords[i],pWordItems[nWordsIndex].sWord);//store currentword

m_nWordPosition[i+1]=m_nWordPosition[i]+strlen(m_sWords[i]);

}

else

{

if(!bSplit)

{

strncpy(m_sWords[i],pWordItems[nWordsIndex].sWord,2);//storecurrent word

m_sWords[i][2]=0;

bSplit=true;

}

else

{

unsigned int nLen=strlen(pWordItems[nWordsIndex].sWord+2);

strncpy(m_sWords[i],pWordItems[nWordsIndex].sWord+2,nLen);//storecurrent wor d

m_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)

相关文档
最新文档