全切分分词示例:
以一个实例来说明,比如句子:中华人民共和国。
假设词典中包含如下词:
|
1
2
3
4
5
6
7
8
|
中华人民共和国中华人民中华华人人民共和国人民共和国共和 |
1、[中华人民共和国, 中华人民, 中华, 中] 2、[华人, 华] 3、[人民共和国, 人民, 人] 4、[民] 5、[共和国, 共和, 共] 6、[和] 7、[国] |
继续看示例分析:
2.1. 看第一个词:中华人民共和国,光是这一个词就构成一个完整的句子了,好了我们组合完成了一个完整的句子。
2.2. 接下来看第二个词:中华人民,我们选定这个词后接着选第二个词,下面就麻烦了,我们可以有3个选择,即第5行的3个词[共和国, 共和, 共],如果我们选择共和国,那么我们又组合完成了一个完整的句子。别忘了还有另外两个选择
2.3. 接下来看第三个词和第四个词,第五个词就不用看了,因为以第四个词以后的词为起始不可能组合成完整的句子,至少少了第一个字!
3.从第二步的选字词组句的分析我们可以知道,如何找出所有可能的词序组成完整的句子看上去不是很简单,这个过程就像是遍历N(N等于以上数据中第一行的字词数)颗树一样,我们需要数清楚树上有多少片叶子,这里不描述具体的算法细节,具体的算法细节请看这里,所有可能的词序如下:
1:[中华人民共和国] 2:[中华人民, 共和国] 3:[中华人民, 共和, 国] 4:[中华人民, 共, 和, 国] 5:[中华, 人民共和国] 6:[中华, 人民, 共和国] 7:[中华, 人民, 共和, 国] 8:[中华, 人民, 共, 和, 国] 9:[中华, 人, 民, 共和国] 10:[中华, 人, 民, 共和, 国] 11:[中华, 人, 民, 共, 和, 国] 12:[中, 华人, 民, 共和国] 13:[中, 华人, 民, 共和, 国] 14:[中, 华人, 民, 共, 和, 国] 15:[中, 华, 人民共和国] 16:[中, 华, 人民, 共和国] 17:[中, 华, 人民, 共和, 国] 18:[中, 华, 人民, 共, 和, 国] 19:[中, 华, 人, 民, 共和国] 20:[中, 华, 人, 民, 共和, 国] 21:[中, 华, 人, 民, 共, 和, 国] |
bigram初始化完毕,bigram数据条数:1519443 二元模型 人民:共和国 获得分值:3.3166249
二元模型 人民:共 获得分值:4.0
二元模型 人民:共和国 获得分值:3.3166249
二元模型 人民:共 获得分值:4.0
人民共和国 获得分值:3.3166249人民共和国 获得分值:3.3166249
ngram分值:
1、词个数=5 ngram分值=4.0 [中华, 人民, 共, 和, 国]
2、词个数=6 ngram分值=4.0 [中, 华, 人民, 共, 和, 国]
3、词个数=4 ngram分值=3.3166249 [中, 华, 人民, 共和国]
4、词个数=3 ngram分值=3.3166249 [中华, 人民, 共和国]
5、词个数=2 ngram分值=3.3166249 [中华, 人民共和国]
6、词个数=3 ngram分值=3.3166249 [中, 华, 人民共和国]
7、词个数=5 ngram分值=0.0 [中, 华, 人民, 共和, 国]
8、词个数=4 ngram分值=0.0 [中华人民, 共, 和, 国]
9、词个数=3 ngram分值=0.0 [中华人民, 共和, 国]
10、词个数=4 ngram分值=0.0 [中华, 人, 民, 共和国]
11、词个数=6 ngram分值=0.0 [中, 华, 人, 民, 共和, 国]
12、词个数=5 ngram分值=0.0 [中, 华人, 民, 共和, 国]
13、词个数=5 ngram分值=0.0 [中, 华, 人, 民, 共和国]
14、词个数=6 ngram分值=0.0 [中华, 人, 民, 共, 和, 国]
15、词个数=4 ngram分值=0.0 [中华, 人民, 共和, 国]
16、词个数=7 ngram分值=0.0 [中, 华, 人, 民, 共, 和, 国]
17、词个数=1 ngram分值=0.0 [中华人民共和国]
18、词个数=4 ngram分值=0.0 [中, 华人, 民, 共和国]
19、词个数=2 ngram分值=0.0 [中华人民, 共和国]
20、词个数=6 ngram分值=0.0 [中, 华人, 民, 共, 和, 国]
21、词个数=5 ngram分值=0.0 [中华, 人, 民, 共和, 国]
只保留最大分值: 1、词个数=5 ngram分值=4.0 [中华, 人民, 共, 和, 国]
2、词个数=6 ngram分值=4.0 [中, 华, 人民, 共, 和, 国] 分值相同则选择词个数最少的:[中华, 人民, 共, 和, 国],词个数:5
|
这里选择 [中华, 人民, 共, 和, 国] 而不是 [中华, 人民, 共和国] 的原因是:bigram数据中 人民:共 的出现频率高于 人民:共和国
由此我们知道,词典的好坏以及ngram数据的好坏直接影响了分词结果的好坏。
原文:http://www.cnblogs.com/blackjazz07/p/4997609.html