1701009326
于是,我们不得不跳出一元假设,把人类语言抽象成一个二元模型。对于任意两个词语w1和w2,统计在语料库中词语w1后面恰好是w2的概率P(w1,w2)。这样便会生成一个很大的二维表。再定义一个句子的划分方案的得分为…,其中w1,w2,……,wn依次表示分出的词,表示句子开头是w1的概率。我们同样可以利用动态规划求出得分最高的分词方案。这真是一个天才的模型,这个模型一并解决了词类标注和语音识别等各类自然语言处理问题。
1701009327
1701009328
至此,中文自动分词算是有了一个漂亮而实用的算法。
1701009329
1701009330
但是,随便拿份报纸读读,你就会发现我们之前给出的测试用例都太理想了,简直就是用来喂给计算机的。在中文分词中,还有一个比分词歧义更令人头疼的东西一一未登录词。
1701009331
1701009332
【问题】中文没有首字母大写,专名号也被取消了,这叫计算机如何辨认人名地名之类的东西?
1701009333
1701009334
【分析】
1701009335
1701009336
最近十年来,中文分词领域都在集中攻克这一难关。
1701009337
1701009338
在汉语的未定义词中,规律最强的要数中国人名了。根据统计,汉语姓氏大约有1000多个,其中“王”、“陈”、“李”、“张”和“刘”五大姓氏的覆盖率高达32%,前400个姓氏覆盖率高达99%。人名的用字也比较集中,“英”、“华”、“玉”、“秀”、“明”和“珍”六个字的覆盖率就有10.35%,最常用的400字则有90%的覆盖率。虽然这些字分布在包括文言虚词在内的各种词类里,但就用字的感情色彩来看,人名多用褒义字和中性字,少有不雅用字,因此规律性还是非常强的。根据这些信息,我们足以计算一个字符串能成为名字的概率,结合预先设置的阐值便能很好地识别出可能的人名。
1701009339
1701009340
可是,如何把人名从句子中切出来呢?换句话说,如果句子中几个连续字都是姓名常用字,人名究竟应该从哪儿取到哪儿呢?人名以姓氏为左边界,相对容易判定一些。人名的右边界则可以从下文的提示确定出来:人名后面通常会接“先生”、“同志”、“校长”、“主任”和“医生”等身份词,以及“是”、“说”、“报道”、“参加”、“访问”和“表示”等动作词。但麻烦的情况也是有的。一些高频姓氏本身也是经常单独成词的常用字,例如“于”、“马”、“黄”、“常”和“高”等。很多反映时代性的名字也是本身就成词的,例如“建国”、“建设”、“国庆”和“跃进”等。更讨厌的就是那些整个名字本身就是常用词的人了,它们会彻底打乱之前的各种模型。如果分词程序也有智能的话,它一定会把所有叫“高峰”、“汪洋”和“黄莺”的人拖出去斩了。
1701009341
1701009342
还有那些恰好与上下文组合成词的人名,例如“费孝通向人大常委会提交书面报告”和“邓颖超生前使用过的物品”等,这就是最考验分词算法的时候了。
1701009343
1701009344
中国地名的用字就分散得多了。中国地名委员会编写了《中华人民共和国地名录》,收录了从高原盆地到桥梁电站共10万多个地名,这让中国地名的识别便利了很多。
1701009345
1701009346
外文人名和地名的用字则非常集中,识别起来也并不困难。真正有些困难的就是识别机构名了,虽然机构名的后缀比较集中,但左边界的判断就有些难了。更难的就是品牌名了。如今各行各业大打创意战,品牌名可以说是无奇不有,而且经常本身就包含常用词,更是给自动分词添加了不少障碍。
1701009347
1701009348
最难识别的未登录词就是缩略语了。“高数”、“抵京”、“女单”、“发改委”和“北医三院”都是比较好认的缩略语,然而有些缩略语的含义连人都搞不清楚,又如何让计算机找出线索?你能猜到“人影办”是什么机构的简称吗?打死你都想不到,是“人工影响天气办公室”。
1701009349
1701009350
汉语中构造缩略语的规律很诡异,目前也没有一个定论。初次听到这个问题,几乎每个人都会做出这样的猜想:缩略语都是选用各个成分中最核心的字,比如“安全检查”缩成“安检”,“人民警察”缩成“民警”等等。不过,反例也是有的,“邮政编码”就被缩成了“邮编”,但“码”无疑是更能概括“编码”一词的。当然,这几个缩略语已经逐渐成词,可以加进词库了,但新近出现的或者临时构造的缩略语该怎么办,还真是个大问题。
1701009351
1701009352
说到新词,网络新词的大量出现才是分词系统真正的敌人。这些新词汇的来源千奇百怪,几乎没有固定的产生机制。要想实现对网络文章的自动分词,目前来看是相当困难的。革命尚未成功,分词算法还有很大的进步空间。
1701009353
1701009355
7.7.1 基于词典的机械匹配的分词方法
1701009356
1701009357
基于词典的机械匹配的分词方法的思想是,事先建立词库,让它按照一定的策略,将待分析的汉字串与一个充分大的词典中的词条进行匹配,若在词典中找到该字符串,则识别出一个词。按照扫描方向的不同,串匹配分词的方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,又可以分为最大匹配和最小匹配。
1701009358
1701009359
按这种分类方法,可以产生正向最大匹配、逆向最大匹配,甚至是将他们结合起来形成双向匹配。由于汉字是单字成词的,所以很少使用最小匹配法。一般来说,逆向匹配的切分精度略高于正向匹配,这可能和汉语习惯将词的重心放在后面的缘故。
1701009360
1701009361
可见,这里的“机械”是因为该算法仅仅依靠分词词表进行匹配分词。
1701009362
1701009363
机械匹配算法简洁、易于实现。其中,最大匹配法体现了长词优先的原则,在实际工程中应用最为广泛。机械匹配算法实现比较简单,但其局限也是很明显的:
1701009364
1701009365
(1)效率和准确性受到词库容量的约束;
1701009366
1701009367
(2)机械匹配算法采用简单机械的分词策略,不涉及语法和语义知识,所以对于歧义切分无法有效地克服,切分精度不高。
1701009368
1701009369
虽然专家们采用了不少方法来改善机械匹配的性能,但是从整体效果上来看,单纯采用机械匹配式进行分词难以满足中文信息处理中对汉语分词的要求。在机械匹配分词的基础上,利用各种语言信息进行歧义校正是削弱机械式切分局限性的一种重要手段。
1701009370
1701009372
7.7.2 正向减字最大匹配法
1701009373
1701009374
正向减字最大匹配法的基本思想是:对于每一个汉字串s,先从正向取出最大字符串长度(max Length)的字,拿这几个字到字典中查找,如果字典中有此字,则说明该字串是一个词,放入该T的分词表中,并从s中切除这几个字,然后继续此操作;如果在字典中找不到,说明这个字串不是一个词,将字串最右边的那个字删除,继续与字典比较,直到该字串为一个词或者是单独一个字时结束。
1701009375
[
上一页 ]
[ :1.701009326e+09 ]
[
下一页 ]