首页 理论教育中文分词算法的优化策略

中文分词算法的优化策略

【摘要】:一般来说,中文分词在具体的算法实现上分为三种:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。在中文搜索引擎中,目前基本上是这三种算法混合使用。2)基于统计的分词方法基于统计的分词方法也叫最大概率分词方法。作为中文分词基础的词库,新词补充和老词删除就是非常重要的工作。比如“测试”在“每台计算机在出厂前都要经过严格的测试”这句话中是典型的动词,而在“软件测试领域”中是一个名词。

一般来说,中文分词在具体的算法实现上分为三种:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。在中文搜索引擎中,目前基本上是这三种算法混合使用。第二种算法实现过于复杂,所以基本上以第一种和第三种为主。

1)基于字符串的匹配方法

这种方法又叫做“机械分词方法”,是最常见的方法。它是按照一定的策略将准备分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。

例如:“有意见分歧”的正向切分结果是“有意/见/分歧”,反向切分的结果是“有/意见/分歧”。

2)基于统计的分词方法

基于统计的分词方法也叫最大概率分词方法。其基本思想如下:

•一个待切分的汉字串可能包含多种分词结果;

•将其中概率最大的那个作为该字串的分词结果。

最大概率分词算法描述如下:

(1)对一个待分词的字串S,按照从左到右的顺序取出全部候选词w1,w2,…,wi,…,wn

(2)到词典中查出每个候选词的概率值P(wi),并记录每个候选词的全部左邻词。

(3)按照P(wi)=P(wi-1)×P(wi)计算每个候选词的累计概率,同时比较得到每个候选词的最佳左邻词。

(4)如果当前词wn是字串S的尾词,且累计概率P(wn)最大,则wn就是S的终点词。

(5)从wn开始,按照从右到左的顺序,依次将每个词的最佳左邻词输出,即为S的分词结果。

举个实际例子:

S:有意见分歧。W1:有/意见/分歧 W2:有意/见/分歧

这里S表示待切分句子,要计算概率P(W1/S)和P(W2/S),然后采用概率大的值对应的切分方案。

P(W|S)=P(S|W)×P(W)/P(S)≈P(W)=P(w1,w2,…,wi)≈P(w1)×P(w2)×…×P(wi)

推导中约等于这一步的假设:每个词之间的概率是上下文无关的。

3)新词发现

语言本身是在不停进化和发展的,新的词语层出不穷,一些老词语渐渐被弃用。作为中文分词基础的词库,新词补充和老词删除就是非常重要的工作。

“超级女声”、“超女”、“快乐男声”、“快男”、“神马都是浮云”、“神马”、“囧”、“化学火锅”等新词出现时,搜索引擎需快速捕捉到并将其添加到分词系统中去。

如何判断哪些词是新词,这就全部要依靠算法来实现。

我们知道,词典中没有的但是结合紧密的字或词有可能组成一个新词。判断词的结合紧密度应使用信息熵:

如果X和Y的出现相互独立,那么P(X,Y)的值和P(X)P(Y)的值相等,I(X,Y)为0。如果X和Y密切相关,P(X,Y)将比P(X)P(Y)大很多,I(X,Y)的值也就远大于0。如果X和Y几乎不会相邻出现,而它们各自出现的概率又比较大,那么I(X,Y)将取负值。

4)词性标注

有些单词对应多个词性,所以给词性进行标注是需要研究的问题。比如“测试”在“每台计算机在出厂前都要经过严格的测试”这句话中是典型的动词,而在“软件测试领域”中是一个名词。把这个问题抽象出来就是已知单词序列W1,W2,…,Wn,给每个单词标注上词性C1,C2,…,Cn

解决此问题的方法是从单词所有可能的词性中选出其最常用的词性作为这个词的词性,也就是概率最大的词性,比如“测试”大部分时候作为一个名词出现,那么可以机械地将其标注成名词,这样标注的准确率会比较低,因为没有考虑到上下文。隐马尔可夫模型(Hidden Markov Model,HMM)同时考虑了词的生成概率和词性之间的转移概率,所以能够提高词性准确率。