zoukankan      html  css  js  c++  java
  • 信息检索导论学习笔记(3)——词典及容错式检索

    词典搜索的数据结构



    如上图,倒排索引记录表构建好了。对于查询请求“Brutus”,我们首要任务是确定查询词项“Brutus”是否在词典的词项词汇表中,如果在,则返回该词项对应的倒排记录表的指针。词汇表的查找操作往往采用一种称为词典(dictionary)的经典数据结构,并且主要有两大类解决方法:哈希表方式和搜索树方式

    哈希表方式

    每个词项通过哈希函数映射成一个整数,映射函数的目标空间需要足够大,以减少哈希结果冲突的可能性。查询时,对于每个查询项分别进行哈希操作,并解决存在的冲突,最后返回每个查询词项对于的倒排记录表的指针

    优点:在哈希表的定位速度快于树中的定位速度

    缺点:(1)没办法处理词项的微小变形(2)不支持前缀搜索(3)如果词汇表不断增大,需要定期对所有词项重新哈希

    搜索树方式(二叉树以及B树)

    优点:支持前缀查询

    缺点:搜索速度略低于哈希表方式:O(logM),其中M是词汇表大小,即所有词项的数目。O(logM)仅仅对平衡树成立


    通配符查询

    B树结构词典通配符查询处理
    • 对mon*的查询操作,通过遍历B树
    • 对*mon的查询操作,通过遍历反向B树

    轮排索引

    基本思想:
    • 在字符集中引入一个新的符号$,用于标识词项结束
    • 将每个通配查询旋转,使*出现在末尾
    • 将每个旋转后的结果放在词典(B树)中。即对词典中的词项词汇表再进行一层索引

  • 相关阅读:
    搭建angularjs API文档站点
    Web网站数据”实时”更新设计
    3kb jQuery代码搞定各种树形选择。
    阿里妈妈自动登录程序
    Android中RelativeLayout属性详细说明
    jQuery选择器总结
    ajax页面加载进度条插件
    jquery ajax 方法及各参数详解
    使用jQuery加载html页面到指定的div
    C#中无边框窗体移动
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3157134.html
Copyright © 2011-2022 走看看