一种基于逆向最大匹配的中文分词算法的制作方法

文档序号:6433472阅读:153来源:国知局
专利名称:一种基于逆向最大匹配的中文分词算法的制作方法
技术领域
本发明涉及人工智能领域的文本分析技术,特别涉及应用于互联网产品中的搜索 引擎、数据挖掘等功能人工智能领域数据挖掘的分类技术。
背景技术
在信息量猛增,逐渐呈现爆棚趋势的今天,做为接收信息及传播信息量最大的互 联网行业更是一直被一个问题困扰着,那就是面对网站里那些缤纷繁多的信息,如何让用 户快速准确搜索定位到自己所需要的资源。目前广泛应用于互联网产品中的是中文分词技 术,它通过拆分、匹配词典的方式将一段文本拆分成多个词,帮助计算机“理解”文本的核心 内容。比如搜索引擎、数据挖掘等功能的实现都依托与强大的分词技术。但是中文分词技 术的停滞不前便是一直阻碍中文搜索质量提高的至关重要的因素。
对于中文来说,词是承载语义的最小单位,这就好像把英文单词之间的空格都去 掉,我们看到的是一片没有意义的字母。因此,中文自动分词就成为中文知识管理系统必须 解决的问题。单个汉字一般很难单独表达一定的含义,而中文的词是没有自然分隔符的,需 要采取一定的技术手段将词准确的分离出来。中文分词的主要困难在于切分歧义消解和未 登录词语的识别。所以,如何提高分词的准确率、分词速度,是目前中文的信息处理技术需 要解决的技术问题。发明内容
本发明针对互联网上的产品在搜索定位所需资源过程中存在分词精确度较低、未 登录词识别不准确、性能较低等问题,提供一种基于逆向最大匹配的中文分词算法。
本发明的目的是提供一种基于词典的快速分词算法,在保证了分词精确度的情况 下大幅度的提高了词典加载和分词的效率。
为此,本发明公开了一种基于逆向最大匹配的中文分词算法。所述中文分词算法 步骤如下
步骤一、输入需要进行分词操作的文本内容;
步骤二、根据字符编码类型将文本中的所有字符在字符编码类型发生变换处截 断,以由此拆分成多个长句段;
步骤三、再根据停顿词词典检索所有长句段中的停顿词字符,在停顿词字符处,将 上述拆分出的长句段进一步拆分成短句段;
步骤四、按照字符编码类型筛选出所有中文字符类型的短句段,并且将不属于中 文字符类型的短句段分解后直接加入到分词结果集中;
步骤五、将中文字符类型的短句段以逆于书写顺序的方式,从短句段段尾开始,先 选取两位字符的字符组,将这两位字符作为分词与分词字典数据库中的分词进行匹配,若 匹配成功,则将这两位字符直接加入到分词结果集中,并且在短句段段尾删除已经加入到 分词结果集中的字符,再从段尾选取新的两位字符;若匹配不成功,则继续向段首方向再增加一位字符,进行匹配,直到匹配成功,若始终不能匹配成功,则增加一位字符的工作以增 加了该短句段的句首字符为止;
步骤六、将所有相邻的未得到匹配的字符一起作为分词,加入到分词结果集中;而 将独立的未得到匹配的字符单独作为分词,加入到分词结果集中。
优选的是,所述的基于逆向最大匹配的中文分词算法中,所述分词词典数据库中 包括存储有所有分词数据结构的数据结构词典WD,和存储有所有分词及分词索引位置的数 据目录词典WL,其中所述分词数据结构与所述分词索引位置相对应。
优选的是,所述的基于逆向最大匹配的中文分词算法中,在数据结构词典的第一 层存储有单个汉字字符,作为数据结构词典的索引目录;在数据结构词典的第二层存储有 以所述单个汉字字符为词尾的所有词对象的索引位置和词的长度,其中,所述词对象的索 引位置与所述数据目录词典WL中的分词索引位置相同。
优选的是,所述的基于逆向最大匹配的中文分词算法中,在数据结构词典还包括 第三层,其中存储有以第二层中存储的所有词为词尾的所有词对象及词长度。
优选的是,所述的基于逆向最大匹配的中文分词算法中,短句段中的字符组在与 分词词典数据库中的分词进行匹配时,首先用字符组的词尾的字符与数据结构词典中的第 一层中存储的单个汉字字符进行匹配,在该匹配的指引下,进入第二层进行匹配。
优选的是,所述的基于逆向最大匹配的中文分词算法中,在第二层中进行匹配时, 首先进行词的长度的匹配。
优选的是,所述的基于逆向最大匹配的中文分词算法中,进入第二层中进行匹配 后,在该匹配的指引下,进入第三层进行匹配。
本发明的有益效果是
本发明提供了一种基于词典的快速分词算法,在保证了分词精确度的情况下大幅 度的提高了词典加载和分词的效率。对于网络搜索引擎来说中,中文分词的准确与否,常常 直接影响到对搜索结果的相关度排序,提高分词的准确率,也就提高了搜索引擎结果相关 性和准确性。分词的速度也对搜索引擎造成直接影响,因为搜索引擎需要处理数以亿计的 网页,如果分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。提高分词的速度, 也就保证了检索的结果。


附图1为本发明所述的基于逆向最大匹配的中文分词算法的流程示意图。
具体实施方式
下面结合附图对本发明做进一步说明,以使本领域普通技术人员参照本说明书后 能够据以实施。
如图1所示,本发明的一种基于逆向最大匹配的中文分词算法,包括如下步骤
步骤一、在内存中初始化分词词典数和停顿词词典StopWord,其中分词词典数据 库中包括存储有所有分词数据结构的数据结构词典WordDictionary,和存储有所有分词及 分词索引位置的数据目录词典WordList。在数据结构词典的第一层存储有单个汉字字符, 作为数据结构词典的索引目录;在数据结构词典的第二层存储有以所述单个汉字字符为词尾的所有词对象的索引位置和词的长度,在数据结构词典的第三层中存储有以第二层中存 储的所有词为词尾的所有词对象及词长度。数据结构词典WordDictionary中所述词对象 和数据目录词典WordList中对应的分词具有相同的索引位置;
步骤二、输入需要进行分词操作的文本内容,根据字符编码类型将文本中的所有 字符在字符编码类型发生变换处截断,以由此拆分成多个长句段,例如将“新浪为抑制谣 言传播成立了专门的微博辟谣小组,24小时负责微博谣言的发现、甄别和处理”拆分成“新 浪为抑制谣言传播成立了专门的微博辟谣小组”,“24”和“小时负责微博谣言的发现、甄别 和处理”;
步骤三、再根据停顿词词典检索所有长句段中的停顿词字符,在停顿词字符处,将 上述拆分出的长句段进一步拆分成短句段,例如将“中国,伟大的国家”拆分成“中国”和 “伟大的国家”;
步骤四、按照字符编码类型筛选出所有中文字符类型的短句段,将不属于中文字 符类型的短句段分解后直接加入到分词结果集中;
步骤五、将中文字符类型的短句段以逆于书写顺序的方式,从短句段段尾开始,先 选取两位字符的字符组,如“中国,伟大的国家”句子,将读取出“国家”这两个字符,将这两 位字符组的词尾的字符与数据结构词典中的第一层中存储的单个汉字字符进行匹配,在该 匹配的指引下,进入第二层进行匹配,在第二层中进行匹配时,首先进行词的长度的匹配, 进行完第二层的匹配后,在该匹配的指引下再进入第三层进行匹配,若匹配成功,则将这两 位字符直接加入到分词结果集中,并且在短句段段尾删除已经加入到分词结果集中的字 符,再从段尾选取新的两位字符;若匹配不成功,则继续向段首方向再增加一位字符,进行 匹配,直到匹配成功,若始终不能匹配成功,则增加一位字符的工作以增加了该短句段的句 首字符为止;
步骤六、将所有相邻的未得到匹配的字符一起作为分词,加入到分词结果集中;而 将独立的未得到匹配的字符单独作为分词,加入到分词结果集中,完成分词。
另一种实现形式是
步骤一、在内存中初始化三个对象,分别是存储了相关数据结构的对象 WordDictionary,存储了所有词及词索引位置的词典对象WordList,以及包含了一些特殊 字符的停顿词词典对象StopWord。
步骤二、获取需要进行分词操作的文本内容。
步骤三、循环文本中的每个字符,按照字符编码区分出当前字符所属类型,根据字 符编码拆分中文、英文、数字、其他类型等
步骤四、根据停顿词典将“长句子”进一步拆分成短句子,如“中国,伟大的国家”拆 分成“中国”、“伟大的国家”。
步骤五、循环文本中的每个字符,按照字符编码区分出当前字符是否为中文字符。
步骤六、如果当前字符类型不属于中文字符,则直接加入到分词结果中。
步骤七、从句子的最后一个字符开始,从右向左,读取两个字符,组合成一个词语: 如“中国,伟大的国家”句子,将读取出“国家”这个词。
步骤八、查询出上一步骤中获取的词是否在分词字典中存在。
步骤九、从句子中“删除”已经匹配到的词如果查询到了匹配项,则将该词存入分词结果集中,并在源文本中“删除”当前词,此处的“删除”并非真的删除,为了提高分词效 率,此处只是将索引位置向前移动了若干位。
步骤十、查看当前句子是否已经完成了分词。
步骤十一、如果上一个字符未匹配到分词字典中的任意一项,则需要增加字符的 长度
步骤十二、查看是否已经匹配了所有以某个字符为结尾的词。
步骤十三、对于在字典中没有找到匹配项的所有字符,都将视为未登录词,在分词 完成后,需要组合所有的未登录词。
步骤十四、根据记录的未登录词在源文本中的位置,组合所有未登录词。
步骤十五、将所有的未登录词加入到分词结果中,分词完成。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列 运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地 实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限 于特定的细节和这里示出与描述的图例。
权利要求
1.一种基于逆向最大匹配的中文分词算法,其特征在于,包括以下步骤步骤一、输入需要进行分词操作的文本内容;步骤二、根据字符编码类型将文本中的所有字符在字符编码类型发生变换处截断,以由此拆分成多个长句段;步骤三、再根据停顿词词典检索所有长句段中的停顿词字符,在停顿词字符处,将上述拆分出的长句段进一步拆分成短句段;步骤四、按照字符编码类型筛选出所有中文字符类型的短句段,并且将不属于中文字符类型的短句段分解后直接加入到分词结果集中;步骤五、将中文字符类型的短句段以逆于书写顺序的方式,从短句段段尾开始,先选取两位字符的字符组,将这两位字符作为分词与分词字典数据库中的分词进行匹配,若匹配成功,则将这两位字符直接加入到分词结果集中,并且在短句段段尾删除已经加入到分词结果集中的字符,再从段尾选取新的两位字符;若匹配不成功,则继续向段首方向再增加一位字符,进行匹配,直到匹配成功,若始终不能匹配成功,则增加一位字符的工作以增加了该短句段的句首字符为止;步骤六、将所有相邻的未得到匹配的字符一起作为分词,加入到分词结果集中;而将独立的未得到匹配的字符单独作为分词,加入到分词结果集中。
2.如权利要求1所述的基于逆向最大匹配的中文分词算法,其特征在于,所述分词词典数据库中包括存储有所有分词数据结构的数据结构词典WD,和存储有所有分词及分词索引位置的数据目录词典WL,其中所述分词数据结构与所述分词索引位置相对应。
3.如权利要求1所述的基于逆向最大匹配的中文分词算法,其特征在于,在数据结构词典的第一层存储有单个汉字字符,作为数据结构词典的索引目录;在数据结构词典的第二层存储有以所述单个汉字字符为词尾的所有词对象的索引位置和词的长度,其中,所述词对象的索引位置与所述数据目录词典WL中的分词索引位置相同。
4.如权利要求3所述的基于逆向最大匹配的中文分词算法,其特征在于,在数据结构词典还包括第三层,其中存储有以第二层中存储的所有词为词尾的所有词对象及词长度。
5.如权利要求3所述的基于逆向最大匹配的中文分词算法,其特征在于,短句段中的字符组在与分词词典数据库中的分词进行匹配时,首先用字符组的词尾的字符与数据结构词典中的第一层中存储的单个汉字字符进行匹配,在该匹配的指引下,进入第二层进行匹配。
6.如权利要求5所述的基于逆向最大匹配的中文分词算法,其特征在于,在第二层中进行匹配时,首先进行词的长度的匹配。
7.如权利要求5所述的基于逆向最大匹配的中文分词算法,其特征在于,进入第二层中进行匹配后,在该匹配的指引下,进入第三层进行匹配。
全文摘要
本发明公开了一种基于逆向最大匹配的中文分词算法。包括步骤先在内存中初始化三个对象,然后输入需要进行分词操作的文本内容,根据字符编码将文本中的字符拆分成不同类型。在将文本拆成短句后,按照字符编码,将不属于中文字符的直接加入到分词结果中,然后根据字符串匹配决策机制,将句子进行拆分字符组,根据逆向最大匹配算法将字符组与分词字典中相匹配,将匹配的字符组存入分词结果集中,最后组合相连的未匹配的字符,并加入到分词结果中,完成分词。本发明提供了一种基于词典的快速分词算法,在保证了分词精确度的情况下大幅度的提高了词典加载和分词的效率。
文档编号G06F17/30GK102999534SQ201110278240
公开日2013年3月27日 申请日期2011年9月19日 优先权日2011年9月19日
发明者代培, 杨爱民 申请人:北京金和软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1