中文切词分词

在使用搜索引擎的时候通过输入词语进行搜索,已经是我们每天最多的行为了。输入词语的合法性、代表性也决定了搜索结果的效果。但是对于搜索引擎本身来说,对一篇文章是否能通过合适的切词分词,抽象出文章的主题也对搜索效果有很大的影响。

匹配过程

所谓的匹配过程是指的拿到一个待切词的语句之后,是从语句的起始位置开始查找,还是从语句的结束位置开始查找。
如果是从语句的起始位置开始查找,那么就成为正向最大匹配;否则称为逆向最大匹配。最大匹配其实就是对待切词语句在词典中寻找最长的匹配词。
下面只对正向最大匹配进行讲解,具体的算法过程如下:

词库包括五个词语,我们简单给出, 所谓、匹配、过程、切词、语句;待切词语句: 所谓的匹配过程是指的拿到一个待切词的语句之后
从语句的起始位置开始扫描
1)拿到“所”字去词库查找,查找词库没有这个词
2)向后继续拿到一个字,现在“所谓”,查找词库得出包含这个词
重复上述操作,知道达到语句结束。

算法分类

在当前的中文的切词分词中,一般分为机械的切词分词、基于语义的切词还有基于统计的切词分词三种策略。机械的切词分词就是通过给定词库机械的拿要被切的文本与词库进行对比,然后把匹配到的词切出来。其他两种就需要基于大数据的分析,在海量的数据文件中分析那些是词语,那些句子可以被切,生成一套策略,然后根据策略对被切的字进行处理。在这里只对机械切词分析进行简单的介绍。

机械切词分词根据算法过程中使用到的算法的不同分为三种:基于Trie树、整词二分、逐词二分三种。下面对每一种进行简单的科普和说明。

1:trie树:

trie树又称作前缀树,点击wiki。trie树在切词分词中是利用了trie树的字符串检索的特性,使用trie树进行字符串检索可以在O(len(word))时间内完成。其中构造的trie树由首字散列和索引节点构成,记录词语的首字和其他字的位置。优势是在分词中无须知道词语长度,按照树的某个节点往下匹配直到遇到结束位置就可以了;劣势就是构造词典比较复杂。


基于trie树的简单介绍与实现,请查看

2:整词二分。通过收字散列表的hash定位和词索引表


3:逐字二分是基于上述两种的基础之上发展的算法。融合了整词二分的存储优势与trie树的查询优势





转载请注明来源:http://blog.csdn.net/zwan0518/article/details/8494982

你可能感兴趣的:(搜索引擎,切词,分词,算法,数据结构)