一种特征字符串识别方法及系统技术方案

技术编号:7270568 阅读:218 留言:0更新日期:2012-04-15 16:22
本发明专利技术公开了一种特征字符串识别方法及系统。其中特征字符串识别方法包括:A、将待识别特征字符串转换为二进制代码;B、读取B-Tree的节点;C、当该节点为内点时,根据所述二进制代码在所述内点中进行二叉查找,确定所述待识别特征字符串对应的叶子节点的位置。本发明专利技术的特征字符串识别方法及系统,由于每个内点中编码数组的长度固定,因此只需要一个固定大小物理页面进行存放。在特征字符串的识别过程中,只需要读取一个物理页面就可以加载一个完整的内点,减少数据冗余,降低了读取磁盘的次数,提高了识别效率。

【技术实现步骤摘要】

本专利技术涉及一种信息识别技术,尤其涉及一种特征字符串识别方法及系统
技术介绍
特征字符串(模式字符串)识别是信息识别中重要的核心技术之一,用于从目标字符串中发现模式字符串。当特征字符串条数较少内存能够容纳时;采用普通的字符串匹配算法可以达到特征字符串识别的目的;如果特征字符串比较多,采用字符串匹配算法将会遇到性能的瓶颈。特别是特征字符串条数很多,现有的计算机系统的内存无法容纳时,则需要把特征字符串存储到磁盘中。对于大规模特征字符串的识别,采用扫描特征串匹配的方式,将导致频繁的磁盘读取,性能低下。对于大规模特征字符串识别,现有的有效解决方案对特征字符串创建 B-Tree (多路搜索树)索引;把目标字符串,分割成若干子字符串,在Β-Tree中查找。 B-Tree是基于磁盘的外存索引技术。Β-Tree是多路平衡树,Β-Tree索引的性能由以下,几个因素决定DB-Tree的节点扇出系数。系数越高,算法的复杂度越低,有利于算法性能的提升。2)B-Tree的节点对应物理页面数。对应的物理页面数少,减少了磁盘访问时间。3)B-Tree的节点平均填充度。平均填充度越高,则Β-Tree的节点利用率高,有利于降低树的高度,从而有利于算法性能的提升。4)B-Tree的查找算法。查找算法决定了查找的算法复杂度。由于在磁盘中查找,需要频繁的读取磁盘中的数据;由于磁盘的物理特性,决定了读取磁盘非常耗时,因此降低读取磁盘的频率将显著提高查找的速度。现有的解决方案,使用B-Tree创建特征字符串索引有以下缺点1、由于特征字符串是变长的,对于每一个内点,需要若干个物理页面存放,需要多次读取物理页面才能加载一个完整的内点;2、节点存储数据冗余大;3、缓冲池使用最近最久未策略管理,页面的命中率低,影响了读取性能。
技术实现思路
本专利技术的目的在于,提供一种一种特征字符串识别方法及系统,识别效率高,降低读取磁盘的次数。为实现上述目的,根据本专利技术的一个方面,提供一种特征字符串识别方法,包括 A、将待识别特征字符串转换为二进制代码;B、读取B-Tree的节点;C、当该节点为内点时, 根据所述二进制代码在所述内点中进行二叉查找,确定所述待识别特征字符串对应的叶子节点的位置。其中,步骤C具体包括Cl、根据所述二进制代码在所述内点中进行二叉查找,获得第一位置;C2、根据所述二进制代码及所述第一位置定位所述待识别特征字符串对应的第二位置;C3、当所述第二位置的节点还是内点时,则循环上述步骤。上述步骤C3之后还包括当所述读取B-Tree的节点为叶子节点时,在所述叶子节点中做初始位置查找;当所述初始位置中的特征字符串与待识别特征字符串一致时,识别成功。其中,内点中存储有固定长度的编码数组,所述编码数组为对特征字符串转换成的二进制代码进行平衡二叉树排序,再对形成的平衡二叉树做中续遍历后形成的,所述编码数组包括所述平衡二叉树左侧叶子节点数及子节点公共前缀字符串长度。上述步骤Cl具体包括C11、设定初始化变量包括I,J,N;I = 0,J = 0,N = KeyCount ;其中I表示子节点偏移位置,J表示在二叉编码数组的偏移位置,N表示平衡二叉树叶子节点数,KeyCoimt表示节点内二叉树叶子节点数;C12、当N大于1,执行步骤C13, 当N小于等于1时,执行步骤C17 ;C13、获得特征字符串对应的二进制代码在!11_1皿?表示节点J对应的子树的叶子节点公共前缀;C14、 当所述二进制代码在m_lcmp处的值为1时,执行步骤C15,否则执行步骤C16 ;C15、转入右侧子树,I = m_Leaf Count ;N = m_Leaf Count ;J = m_Leaf Count ;其中 m_ LeafCount 表示第J个节点对应的子树左侧叶子节点数;执行步骤C12 ;C16、转入左侧子树,N = m_LeafCount ;J = 1 ;执行步骤C12 ;C17、返回初始查找位置PTRi,其中PTRi 等于I,PTRi表示初始查找位置。上述步骤C2具体包括C201、加载IBlindPos位置对应的节点,其中IBlindPos 为初始位置,Node代表节点;C202、获得节点的下界KeyLowi ;C203、计算特征字符串与 KeyLowi对应的二进制序列的差异位置,该差异位置用DifT表示;C204、获得特征字符串对应二进制代码,在DifT位置处的值,该值用Bit表示;C205、设定初始化变量包括I, J, N5I = O, J = O, N = KeyCount ;其中,I表示子节点偏移位置,J表示在二叉编码数组的偏移位置,N表示平衡二叉树叶子节点数,KeyCount表示节点Node内二叉树叶子节点数;C206、iN> 1而且m_lcmp < = Diff,执行步骤C207,否则,执行步骤C210,其中 m_lcmp表示二叉树第J个子节点的叶子节点的公共前缀长度;C207、当IBlindPos不小于m_LeafCount ,其中m_LeafCount 表示以二叉树第J个节点为根的左子树的叶子节点数,则执行步骤C208 ;否则转入步骤C209 ;C208、移动到右侧,IBlinkPos- = m_ LeafCount ;I = m_LeafCount ;N = m_LeafCount ;J = m_LeafCount ,以上这些运算的结果是转向当前节点右子树子树的,执行步骤C206 ;C209、移动到左侧,N = m_ LeafC0unt,J = 1执行步骤C206 ;C210、当特征字符串对应二进制代码在Diff位置处的值为O时,则返回当前节点Node的第I个子节点,否则返回第I+N个子节点。优选地,加载节点的具体操作包括根据当前节点的逻辑编号从一级缓冲池中查找所述节点对应的页面;如果一级缓冲池没有该页面,则从二级缓冲池中查找,当二级缓冲池中有该页面时,从二级缓冲池中加载该页面到一级缓冲池;当二级缓冲池中也没有该页面,则从磁盘中加载该页面到一级缓冲池;当一级缓冲池中未满时,将所述页面放入到一级缓冲池中;当一级缓冲池中已满时,减少所述页面的权值,当所述二级缓冲池未满时,选择权值最小的页面放入到二级缓冲池;当所述二级缓冲池已满时,释放二级缓冲池中的空间, 选择权值最小的页面放入到二级缓冲池;根据所述节点的高度计算页面权置,根据所述页面权值调度页面。采用二级缓存的方式从缓冲池中加载页面,提高了页面加载的命中率,减少了读取磁盘次数。根据所述节点的高度计算页面权置,根据所述页面权值调度页面。为实现上述目的,根据本专利技术的另一个方面,提供一种特征字符串识别系统,包括转换装置,用于将待识别特征字符串转换为二进制代码;读取装置,用于读取B-Tree的节点;查找装置,当该节点为内点时,根据所述二进制代码在所述内点中进行二叉查找,确定所述待识别特征字符串对应的叶子节点的位置。本专利技术的特征字符串识别方法及系统,由于每个内点中编码数组的长度固定,因此只需要一个固定大小物理页面进行存放。在特征字符串的识别过程中,只需要读取一个物理页面就可以加载一个完整的内点,减少数据冗余,降低了读取磁盘的次数,提高了识别效率。附图说明图1-1是本专利技术对节点内数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:宋子辉杨崇俊
申请(专利权)人:中国科学院遥感应用研究所北京中遥地网信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术