赞
踩
前面谈到利用统计语言模型进行nlp,而这些语言模型是建立在词的基础上的,因为词是表达语义的最小单位。分词的输入是一串汉字,比如:“我喜欢善良的女生。”,而分词的输出则是用分界符,比如用斜线分割的一串词:我/喜欢/善良/的/女生。最容易想到的分词方法,也是最简单的方法,就是查字典。这种方法最早是北航的梁南元教授提出的。其实就是把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如“超威蓝猫”)就找最长的词匹配,遇到不认识的字串就分割成单字词,于是简单的分词就完成了。这个最简单的方法可以解决七八成以上的分词问题,应该讲它在复杂性不高的前提下,取得了还算满意的效果。但是,它毕竟太简单了,遇到复杂的问题就无能为力了。
20世纪80年代,哈尔滨工业大学的王晓龙博士将查字典的方法理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。这种方法的明显不足是遇到有二义性的分割时就无能为力了。比如“发展中国家”,正确分法应该是“发展-中-国家”,按查字典法是“发展-中国-家”,按最长词匹配也未必是对的,例子就不细举了。语言的歧义性伴随着语言的发展,困扰了学者上千年。中国古代的断句从根本上讲就是消除歧义。20世纪90年代以前,海内外不少学者试图用文法规则来解决分词的二义性问题,都不是很成功。也有一些学者开始注意统计信息的作用,但是没有找到有完善理论基础的正确方法。
1990年前后,清华大学电子工程系的郭进博士用统计语言模型成功解决了分词二义性问题,将汉语分词的错误降低了一个数量级。郭进是大陆运用统计语言模型方法进行nlp的第一人,除了他比较努力以为,还有一个原因是他虽然是计算机博士,但却在以通信为主的科系工作,因此他在方法论上接受通信模型非常直接。利用统计语言模型,可以用几个公式简单概括,假定一个句子有三种分词方式:A1,A2,...,AkB1,B2,...,BmC1,C2,...,Cn其中AiBiCi都是汉语的词,上面的分词结果都有不同数量的词串,所以用kmn三个不同的下标。很显然,最好的分词方法应该保证分词后这个句子出现的概率最大,也就是假设第一种方法最好,那么P(A1,A2,...,Ak)应该最大。因此只要用之前提过的统计语言模型计算出每种分词后句子出现的概率,找出概率最大的,就能找到最好的分词方法。当然,如果穷举所有可能的分词方法计算每种可能句子的概率,那么计算量是相当大的。因此可以把它看成是一个动态规划问题,利用维特比算法(后续会讲)快速找到最佳分词。
要指出的是,任何方法都有局限性,虽然利用统计语言模型进行分析能比人工取得更好的结果,但也不能百分百准确。因为统计语言模型很大程度是依靠“大众的想法”,而在特定情况下可能是错的。有些人为的句子,用什么方法都不能消除二义性。如“此地安能居住,其人好不悲伤”。这句话有两种分词法,一种是贬义一种是褒义,“此地/安能/居住,其人/好不/悲伤。”和“此地安/能居住,其人好/不悲伤。”
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。