[发明专利]一种快速分词的实现方法无效
申请号: | 200910107961.1 | 申请日: | 2009-06-16 |
公开(公告)号: | CN101576877A | 公开(公告)日: | 2009-11-11 |
发明(设计)人: | 程治永 | 申请(专利权)人: | 程治永 |
主分类号: | G06F17/27 | 分类号: | G06F17/27;G06F17/28;G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518059广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 分词 实现 方法 | ||
1.本发明是这样实现的:一种快速分词的实现方法,其特征在于,该方法包括以下步骤:
基于词条查找树的快速分词方法,词条查找树由一级索引表和HASH多叉树构成。一级索引表是数组,通过下标直接访问,可快速缩小搜索范围,时间复杂度为常数。HASH多叉树是基于HASH的多叉树,即每个节点的子节点列表通过HASH散列,查找的时候平均时间复杂度为常数。通过词条添加操作构建词条查找树,利用词条查找树进行快速分词。
2.如权利要求1所述HASH多叉树其特征在于:
HASH多叉树和一级索引表相连,以进一步加快词条查找树的搜索速度。
HASH多叉树中的节点为字符节点,字符节点至少包含:字符值,词条结束标志,子节点数,子节点列表,HASH冲突的下一个兄弟节点等信息。子节点列表是通过HASH散列的列表。
HASH桶的大小由子节点数确定,并在增加子节点时自动扩展,并根据新HASH桶大小重新构造节点。动态增长的HASH桶可以减少HASH冲突,同时保证匹配效率和资源利用率。通过子节点数获得最佳HASH桶的大小,可事先构造对应表,以加快计算速度。
根据HASH值获得HASH位置的操作,用与操作替换取模操作可以加快运算速度,即HASH值和一个特定值进行与运算来获得HASH索引,该特定值和HASH桶大小相关,可以取小于HASH桶大小且BIT位连续为1的最大值,可事先构造好对应表,以加快计算速度。HASH冲突的节点相连,以链表的形式组织,并将首节点记录在对应的HASH索引位置。
添加字符节点到子节点列表中的过程。首先根据新的子节点数目计算是否需要扩展当前节点,如果需要扩展则申请新的空间重新构造新节点,并回收旧节点。将字符的值作为HASH值,根据HASH桶的大小获得HASH索引位置,并加入到该索引位置的链表中。
3.如权利要求1所述一级索引表其特征在于:
前导字符是首先取出并处理的字符,可快速缩小搜索范围。前导字符和一级索引表密切相关,前导字符的数目等于一级索引表的维数。前导字符至少可以为1个,对应的一级索引表的记录数为256(1×256)。如果最小词条字节数均不小于2则前导字符可以为2个,对应的一级索引表的记录数为65536(256×256)。256是字符值的个数(0-255)。
4.如权利要求1所述添加词条操作其特征在于:
步骤1.从被添加词条中取出前导字符,在一级索引表中进行匹配。若记录不存在,为前导字符构造字符节点,并将该节点加入到一级索引表中,并记录为当前节点;若记录存在,则直接记为当前节点。
步骤2.取出被添加词条的下一个字符,在当前节点的子节点列表中进行匹配。如果不存在,则为该字符构造一个字符节点,并添加到当前节点的子节点列表中,并记录新添加节点为当前节点;如果存在则直接设置为当前节点。重复步骤2的过程,直到被添加词条所有字符被加入。
步骤3.在最末节点上设置词条结束标志。
5.如权利要求4所述词条添加操作其特征在于:
添加字符节点到当前节点的子节点列表的过程,是添加元素到HASH多叉树的过程。通过该字符的值作为HASH值,计算其在HASH桶中的索引位置,该索引位置已有节点以链表的形式组织。将该节点作为首节点加入到该链表中,并记录在HASH桶的对应索引位置。
若添加过程中需要扩展当前节点,则申请一块新空间,并构造新的当前节点,并将旧节点进行回收。判断是否需要扩展的依据是HASH桶大小是否无法容下新的子节点数。
6.如权利要求1所述分词操作其特征在于:
步骤1.取出输入文本的前导字符,在一级索引表中进行匹配,若存在则取出匹配字符节点,并设置为当前节点,检测当前节点是否有词条结束标志,如果有词条结束标志则输出一个匹配词条。
步骤2.取出输入文本的下一个字符,在当前节点的子节点列表中进行匹配,若存在则取出存在匹配字符节点,并设置为当前节点,检测当前节点是否有词条结束标志,如果有词条结束标志则输出一个匹配词条。重复步骤2进行后续字符匹配,直到输入文本匹配完毕或者无法匹配后续字符,输出所有带有词条结束标志的节点对应的词条组合。
7.如权利要求4所述添加词条操作和权利要求6所述分词操作其特征在于:
前向匹配和后向匹配的操作分别需要建立对应的一级索引表和HASH多叉树。进行添加词条操作、分词操作时,若是前向匹配则从前往后逐一提取输入字符,若是后向匹配则从后往前逐一提取字符,进行同样的算法匹配。
进一步的说,如果匹配操作不区分英文字母大小写,则将字符统一到大写或者小写即可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于程治永,未经程治永许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910107961.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:铁水罐车快速脱卸式高温视窗
- 下一篇:开槽推入旋转式辊轴与辊架