目前,中文自动分词比较成熟的技术是基于分词词典的机械分词方法。这种方法是按照一定的策略将要分析的汉字串与词典中的词条进行匹配。根据匹配策略的不同,机械分词方法又有如下几种算法:正向最大匹配算法、逆向最大匹配算法、最少分词算法等。这种方法的优点是分词的速度快,准确度有一定的保证,但对未登录词的处理效果较差。实验结果表明:正向最大匹配的错误率为1/169左右,逆向最大匹配的错误率为1/245左右。另一种比较常用的中文自动分词方法是基于统计的分词方法,这种方法是对语料中的字组频度进行统计,不需要切分词典,因此也称为无词典分词方法。但该方法经常把不是词的常用字组当成词,对常用词的识别精度较差,时空开销也比较大。在搜索引擎领域的实际应用中,一般将机械分词方法与统计分词方法相结合,先进行串匹配分词,然后使用统计方法识别一些未登录的新词,这样既发挥了匹配分词速度快、效率高的优势,又利用了统计分词中新词自动识别和自动消除分词歧义的特点。
分词词典是影响中文自动分词的一个重要因素,其规模一般在6万条词左右,词典太大或太小都是不合适的;辞典太小,有些词切分不出来,辞典太大,切分过程中起义现象将大大增加,同样影响分词的精度。因此,分词词典中词条的选择是非常严格的。对于不断出现新词的网络领域,仅仅使用6万条词左右的分词词典是不够的,但随意向分词词典中加入新词将导致分词精度下降,一般的解决方法是使用辅助词典,其规模在50万词条左右。另外,中文自动分词的难点在于分词歧义的处理和未登录词的识别,如何处理这两个问题一直是该领域研究的热点。
1、歧义处理
歧义是指可能有两种或者更多的切分方法。例如:“表面的”这个词组,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面+的”和“表+面的”。这种称为交叉歧义。像这种交叉歧义十分常见,“化妆和服装”可以分成“化妆+和+服装”或者“化妆+和服+装”。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。
交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必须根据整个句子来判断了。
例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增长两倍”中,“中将”就不再是词。这些词计算机又如何去识别?
即使交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词、哪个应该不是词。例如:“乒乓球拍卖完了”,可以切分成“乒乓+球拍+卖+完+了”、也可切分成“乒乓球+拍卖+完+了”,如果没有上下文其他的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。
对歧义现象的处理方法一般采用类似于动态规划的算法将歧义问题的求解转化为一个优化问题的求解。在求解过程中,一般使用词频或概率等辅助信息求得一个最大可能的分词结果,这个结果在某种意义下是最佳的。
2、 未登录词处理
未登录词就是分词词典中没有的词,也称为新词。最典型的是人名、地名、专业术语等。例如,人可以很容易理解句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把“王军虎”作为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑”中的,“王军虎”还能不能算词?
未登录词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前,对未登录词的处理一般采用统计的方法,首先从语料中统计出出现频率较高的字组,然后按照某种规则把它们作为新词添加到辅助词典中。
目前,中文自动分词技术在搜索引擎中已经得到广泛应用,分词准确度已经达到96%以上,但是在对大规模网页进行分析处理的时候,现有的中文自动分词技术还存在许多不足,例如上面提到的歧义问题和未登录词的处理问题等。因此,国内外的科研院校,如北大、清华、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都一直关注并研究中文自动分词技术,这主要是因为网络上的中文信息越来越多,对网络上的中文信息的处理必将成为一个巨大的产业和广阔的市场,存在无限的商机。但是,中文自动分词技术要想更好地服务于网络中文信息的处理并形成产品,还要在基础研究方面和系统的集成方面做许多工作。