ITPub博客

首页 > 应用开发 > IT综合 > 引擎的匹配率问题

引擎的匹配率问题

原创 IT综合 作者:zxkj2006 时间:2006-07-18 17:16:33 0 删除 编辑

首切两字法是一种递归模糊匹配法。它递归的对待匹配地址串进行拆分,即每次从首部切下两个字来,然后做匹配,如果成功就继续切后面的两个字;否则舍弃掉这两个字,然后继续切后面的字。。。。。。

[@more@]

首切两字法算法简介

首切两字法是一种递归模糊匹配法。它递归的对待匹配地址串进行拆分,即每次从首部切下两个字来,然后做匹配,如果成功就继续切后面的两个字;否则舍弃掉这两个字,然后继续切后面的字。此算法有两点可以改进:1、每次拆分的字的个数可以设置(设为1的时候,拆分的速度会慢一些,因为每次拆分都要进行数据库模糊查询操作,但是匹配的精度提高了)。2、采用逆向拆分策略,因为根据对地址串的观察分析,大部分地址要素都是在后部,所以关键词在后面,当然,拆分的方向在接口上做为参数是可以设置的。

二期对算法拟做如下调整:

1、继续完善首切两字算法,比如加入rollback功能、多次反复试探匹配功能,目标为增大结果可信度。

2、对于首切两字模糊匹配返回多条记录的例子进行分析,很多情况下是可以再进行插值匹配的,并且最终会返回唯一的一条记录。一期中对首切两字算法和插值算法之间的连接关系处理的不够好,二期会加强两者之间的交互。

3、提高首切两字算法的速度。一是从数据库的角度来提高速度,即配置数据库的全文索引特性,加快模糊匹配的速度;二是从算法本身着手,我们知道,时间效率和空间的占用率往往是矛盾的,要提高时间执行效率,往往要付出空间使用率提高的代价,这在一期中使用内存索引表的做法中已经体现。二期在首切两字算法上也打算使用内存索引表技术,因为首切两字算法的目的就是要生成最佳查找串,这是一个递归的过程,没一次递归所得到的记录集实际上都是上一次递归结果集的子集,所以递归过程中,不必要反复地对整张地址主表进行模糊匹配,而是采用数据库表和内存索引表相结合的手段,在对数据库表进行了第一次或若干次模糊匹配之后,当结果集中记录的数目降到某个阀值时,把结果集放入内存索引表中,之后的递归过程就使用内存索引表,从而加快匹配速度。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7252761/viewspace-850434/,如需转载,请注明出处,否则将追究法律责任。

上一篇: DBA职业生涯
请登录后发表评论 登录
全部评论
  • 博文量
    46
  • 访问量
    768700