最近和朋友在讨论百度分词,看了很多网上关于百度分词的一些实例,我们来对百度的分词步骤进行一些猜测,我们不可能真正的了解只能说是猜测:
1. 判断用户提交字符串,如果为多个字符串,则通过空格,标点符号,等进行切割。
2. 判断提交字符串中有无字母或者数字,如果有把字母与数字当作独立整体,并把这个整体当作切割负,进行前后切割。
3. 判断切割后的词组有无重复词,有当作一个计算。
4. 如果提交为一个字符串,判断字符串字数,大于4并等于4个字的进行切割,如果小于4个字不进行任何处理。
5. 对照特殊词库表进行提取,如果字符串中包含特殊词进行单独提取。
6. 进行正向分词处理。
7. 进行反向分词处理。
8. 正向分词结果与反向分词结果进行对比,如果结果一样,直接输出。
9. 如果结果不一样,输出最短路径(词数最少的)进行输出。
10. 如果长度一样进行则输出单子最少的结果。
11. 如果单子最少结果一样,则输出正向分词结果。针对百度索引提示,纠错原理。
1.判读词组,1个字的词不进行提示,大于1个字开启提示功能。
1.进行同音字提示,如果词数过多,提取用户搜索最多词组进行提示。除以上外,我们还需要注意一点,那就是现在分词中进行了语意相关结合:举个例子我们常常在搜索某些词的时候会发现有些结果中并不是完全匹配的词也进行了飘红。其实这种情况就是语意结合。我们可以理解为百度把相关词表进行了关联,或者干脆进行了表结合。造成了这种情况的出现。比如我们搜索太原,我们会发现太原与太原市都进行了飘红。