一种基于树形词库的中文分词方法

文档序号:6464942阅读:334来源:国知局
专利名称:一种基于树形词库的中文分词方法
技术领域
本发明涉及搜索引擎,数据库,中文分词领域,特别是涉及一种基于树形词库的中文分 词方法。
背景技术
中文分词技术发展到今天已经有许多不同的处理技术。这些技术概括起来可以归为三类 有基于匹配的分词、基于统计的分词和基于理解的分词。
在中文分词领域里, 一般的分词系统都是单纯地运用了基于匹配的分词算法,而一些高 级的或有特殊要求的就运用了以匹配为主的混合形分词算法,即在已有字典的基础上加入对 新词的统计,从而改善对未登录词的识别率, 一般情况下,混合形算法会比单纯的匹配算法 的分词准确率有较大的改善,尤其是对于一些新生的专业词或网络语言等,而这往往是用户 用于搜索的关键词,因此加入统计思想对最终的分词的实际效果将会有明显的效果。
考虑到该算法应用项目的特点——中医药领域的搜索系统,统计型算法将会对各种专业名 次有更好的识别,而其效果会比通用型的搜索引擎要更为明显。另外,考虑到语义相关的扩 展搜索功能需要有一个能转化为语义网络的词典,因此以匹配为主的混合形分词算法将具有 准确高效的分词效果与良好的扩展性,更适合本项目利用。
对不同的使用目的和不同领域的査询而言,单词的意义和权重会有很大差别,所以针对 不同使用对词库做部分屏蔽或重新加载可以进一步提高分词的准确性。在树形结构的分词表 中,越接近根的节点其涵盖的语义越广,因此可以通过标记不同深度的节点来控制要屏蔽的 语义的范围,同样也可以将某一领域需要的新词加入到树形结构中的合适位置,实现对词库 语义范围的修改。从而在原有算法的基础上提高分词效率和准确度。

发明内容
本发明的目的在于克服上述技术的缺陷,而提供一种基于树形词库的中文分词方法,基 于树形词库并支持新词加载和词语屏蔽的中文分词技术。
本发明的目的是通过以下技术方案来实现的。这种基于树形结构的中文分词方法,包括 以下步骤
1)以单个汉字为结点,以具体的分词作为结构信息来建立树形中文分词表;2) 通过对树型结构的遍历实现中文分词,利用树形词库的结构信息来存储分词信息,利 用全分支检索来实现歧义包容;
3) 通过统计用户输入新词的频度来动态改变词库结构,从而实现新词的自动识别。 本发明中步骤l)树形词库有一个公共的根节点,每个分词的首字都挂在根节点之下,第
二个字再挂在首字之下,以此类推,通过结点中的标志位来判断是否为终结词。
本发明中步骤2)中对于要进行分词的字符串,将其与分词树进行匹配,到遇到一个终结
符时就表示匹配到一个分词,将其加入已匹配到的词中,接下来在继续现有匹配的同时,将
下一个字作为新词的首字重新进行匹配,以此来实现分支包容。
本发明中步骤3)中将无法识别的词和其出现频次储存在一个单独的表中,当其出现频度
超过系统设定的阀值时,就将该词在词库中遍历,将缺少的部分插入词库中,并将其最后一
个字中的终结符置为"true"。
本发明中通过在树形词库节点上加入屏蔽位来实现对词库的屏蔽和动态加载,树型结构 上的所有结点都包含一个布尔变量用来标示该结点是否被屏蔽,系统读入需要屏蔽分词,将 其在词库中进行匹配,并将匹配项终止结点上的屏蔽位置为"true";当分词算法运行时,如 果发现匹配项的屏蔽位被置为"true",就忽略当前匹配;当进行词库的动态加载时,系统接 受需屏蔽的词,将其在词库中遍历,如果该项己存在,就将屏蔽位置为"false",反之则将 其插入词库。
本发明的有益效果与常用的基于数据表的词库相比,树形词库在匹配效率和匹配长度
上有了很大的提高。本发明在已有的树形分词词库算法进行了扩展,实现了新词的自动识别
以及分支屏蔽等功能。本技术在兼顾分词效率和分词效果的同时,增强了原有算法的灵活性
和扩展性,使其可以更好的适应动态数据环境的要求。


图1本发明中树形词表结构图; 图2本发明中分词屏蔽示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作 进一步地详细描述
本发明是一种基于树形结构的中文分词方法,并实现了基于树形结构的新词添加和分支 屏蔽功能,主要按以下步骤进行-1. 建立基于树形结构的分词词库首先,建立一个根节点,再把词库中所有的首字都取 出作为根节点的子节点,而第二个字则作为其子节点,以此类推,节点以ArrayedHashM邵 的形式储存在内存中,父节点与子节点之间的关联用HashMap中的映射来表示。
词库的具体形式见图l,其中方型结点表示中间词,是无法组成分词的,而菱型结点表示 终结词,是一个完整的分词的结尾。这样,就可以在一条分支中包含多个分词,最左边高度 为5的分支"中医研究中"就包含"中医"与"中医研究"两个分词。
2. 在建立好词库后,分词的匹配时通过对树形词库的遍历来实现的,分支处理时这里的 核心内容。该算法在遇到分支时会自动分为两条执行路径, 一条按原路匹配,另一路将下个 汉字作为新词的首字进行重新匹配。这样就实现了对所有可能分词的匹配。
例如我们要在图1的词库中查询"中医研究",首先,用"中"字在根节点中匹配,找到 匹配入口,然后逐字匹配,当匹配到"医"时,发现其为终结词,就将"中医"加入分词结 果中。接下来就分为两路, 一路继续匹配,最终得到另一个分词"中医研究",另一路将"研" 字在根节点匹配,由于词表中没有以"研"开头的分词,因此该路匹配终止。
3. 新词的添加当分词时遇到无法匹配的新词时(没有的首字,无法分割的字段),就 将其内容和出现次数储存在一个数据表中。当其出现频度超过预设阔值时,就将其作为一个 新词加入分词词表。
4. 基于树形结构的分支屏蔽与加载。树型结构上的所有结点都包含一个布尔变量用来标 示该结点是否被屏蔽。当需要进行分词屏蔽时,系统读入要屏蔽的词,将其在词库中遍历, 将匹配到的项的最后结点上屏蔽位置为"tme"。
需要加入新词时,系统读入需加入的词,将其在词库中遍历,如果该项存在,就将屏蔽 位置为"false",否则就将其插入词库。
在进行分词算法运行时,如果发现匹配项的屏蔽位被置为"true",就忽略当前匹配。从 而与上述过程一起实现了分支屏蔽与加载。
图2中表示的是图1的分词表在被屏蔽了 "中医研究"和"中草药"这两个词后的结果, 其中圆形的结点表示被屏蔽位已置位。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要 求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
权利要求
1. 一种基于树形结构的中文分词方法,其特征在于包括以下步骤1)以单个汉字为结点,以具体的分词作为结构信息来建立树形中文分词表;2)通过对树型结构的遍历实现中文分词,利用树形词库的结构信息来存储分词信息,利用全分支检索来实现歧义包容;3)通过统计用户输入新词的频度来动态改变词库结构,从而实现新词的自动识别。
2. 根据权利要求1所述的基于树形结构的中文分词方法,其特征在于步骤l)树形词 库有一个公共的根节点,每个分词的首字都挂在根节点之下,第二个字再挂在首字之下,以 此类推,通过结点中的标志位来判断是否为终结词。
3. 根据权利要求1所述的基于树形结构的中文分词方法,其特征在于步骤2)中对于 要进行分词的字符串,将其与分词树进行匹配,到遇到一个终结符时就表示匹配到一个分词, 将其加入已匹配到的词中,接下来在继续现有匹配的同时,将下一个字作为新词的首字重新 进行匹配,以此来实现分支包容。
4. 根据权利要求1所述的基于树形结构的中文分词方法,其特征在于步骤3)中将无 法识别的词和其出现频次储存在一个单独的表中,当其出现频度超过系统设定的阀值时,就 将该词在词库中遍历,将缺少的部分插入词库中,并将其最后一个字中的终结符置为"true"。
5. 根据权利要求1所述的基于树形结构的中文分词方法,其特征在于通过在树形词库节点上加入屏蔽位来实现对词库的屏蔽和动态加载,树型结构上的所有结点都包含一个布 尔变量用来标示该结点是否被屏蔽,系统读入需要屏蔽分词,将其在词库中进行匹配,并将匹配项终止结点上的屏蔽位置为"true";当分词算法运行时,如果发现匹配项的屏蔽位被 置为"true",就忽略当前匹配;当进行词库的动态加载时,系统接受需屏蔽的词,将其在 词库中遍历,如果该项已存在,就将屏蔽位置为"false",反之则将其插入词库。
全文摘要
本发明涉及一种基于树形结构的中文分词方法,包括以下步骤1)以单个汉字为结点,以具体的分词作为结构信息来建立树形中文分词表;2)通过对树型结构的遍历实现中文分词,利用树形词库的结构信息来存储分词信息,利用全分支检索来实现歧义包容;3)通过统计用户输入新词的频度来动态改变词库结构,从而实现新词的自动识别。本发明的有益效果树形词库在匹配效率和匹配长度上有了很大的提高。本发明在已有的树形分词词库算法进行了扩展,实现了新词的自动识别以及分支屏蔽等功能。本技术在兼顾分词效率和分词效果的同时,增强了原有算法的灵活性和扩展性,使其可以更好的适应动态数据环境的要求。
文档编号G06F17/30GK101458694SQ200810121368
公开日2009年6月17日 申请日期2008年10月9日 优先权日2008年10月9日
发明者吴朝晖, 姜晓红, 张小刚 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1