关于中文分词

一. 分词的类型

1. 基于词典:基于字典、词库匹配

2. 基于统计

3. 基于理解


二. 基于词典分词

1. 正向最大匹配法

其基本思想为:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理,如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。

2. 逆向最大匹配法

通常简称为RMM法。RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。由于汉语中偏正结构较多,若从后向前匹配,可以适当提高精确度。所以,逆向最大匹配法比正向最大匹配法的误差要小。

3. 双向匹配

将正向最大匹配法与逆向最大匹配法组合。先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。

4. 最小切分

 使每一句中切出的词数最小。


三. 基于统计分词

1. n-gram

由于歧义的存在,一段文字可能会有多种切分结果,n-gram就是利用统计模型选择一条概率最大的路径。

假设随机变量S为一个汉字序列,WS上所有可能的切分路径。对于分词,实际上就是求解使条件概率P(WS)最大的切分路径W∗,即

根据贝叶斯公式,

由于P(S)为归一化因子,P(SW)恒为1,因此只需要求解P(W)。

P(W)使用N-gram语言模型建模,定义如下(以Bi-gram为例):

至此,各切分路径的好坏程度(条件概率P(WS))可以求解。简单的,可以根据DAG枚举全路径,暴力求解最优路径;也可以使用动态规划的方法求解,jieba中不带HMM新词发现的分词,就是DAG + Uni-gram的语言模型 + 后向DP的方式进行的。

2. 隐式马尔可夫列HMM分词方法

关于hmm和viterbi算法可以详见这篇博客,感觉写的很好: https://www.cnblogs.com/Denise-hzf/p/6612212.html

然后把观测序列改成中文串,状态换成 B、E、M、S就可以了

3. 最大熵马尔可夫列

关于中文分词_第1张图片

4. CFR分词方法

关于中文分词_第2张图片


参考资料:

1. https://blog.csdn.net/FlySky1991/article/details/73948971

2. https://www.cnblogs.com/Denise-hzf/p/6612212.html

3. https://zhuanlan.zhihu.com/p/33261835

4. https://zhuanlan.zhihu.com/p/28305337

你可能感兴趣的:(关于中文分词)