搜索引擎技术在码农眼里一直是比较高大上,其中文分词是中文自然语言处理领域的基础研究,也是中文搜索引擎的核心模块之一,现在我们来用C语言简单实现一下中文搜索引擎中文分词.
目前而言的分词系统绝大多数都是基于中文词典的匹配算法,其中,最为常见的是最大匹配算法(Maximum Matching,以下简称MM算法),而MM算法有三种:一种正向最大匹配、一种逆向最大匹配和双向匹配,本文以正向最大匹配算法为例介绍其基本思想和实现.
一、基本思想
(1)假设词典中最长的词语字数为w(一般设置为8个字符,即4个汉字).
(2)判断带分词语句长度是否大于w个字,如果大于w则跳到(3),如果小于w则跳到(6).
(3)取待分词语句的前w个字。在词典中查找w,如果存在,则从语句中去掉w,从语句中w后的词开始重复上面过程.
(4)如果不存在,就去掉这w个字的最后一个字.检查是否是单字或者空,如果是,则退出.
(5)如果不是,则继续判断词库中是否存在这个词,如此反复循环,直到输出一个词.
(6)继续取短语的前w个字反复循环,这样就可以将一个语句分成词语的组合了.
大型站长资讯类网站! https://www.zxzz.com.cn