zoukankan      html  css  js  c++  java
  • Information Retrieval --- Data Structure

    一、倒排索引

    1.构建

    image

    2.压缩。有损压缩:去停用词、词干还原、去数字等。

    2.1无损压缩:词典压缩

    a.定常数组变为当行字符串(加词项指针)

    b.按块存储

    c.前缀编码

    2.2无损压缩:倒排记录表压缩(存docID间隔)

    1.变长字节(VB)码:后7位存储,第8位记录是否结束

    image

    2.ϒ编码

    image

    3.位置信息

    image

    4.倒排记录表合并:求交集。优化:按df从小到大合并

    image

    *跳表法:加跳表指针

    image

    二、词项定位:在词典中快速找到查询。方法:哈希表;树(支持通配符查询,对词典再建索引)。

    image

    2.1轮排索引:支持m*nchen查询。基本思想:将每个通配查询旋转,使*出现在末端。

    image

    2.2 k-gram索引:支持通配符和拼写错误查询。建立k-gram到词项的倒排表用于查找词项。

    image

    三、支持拼写校正

    1.编辑距离

    image

    2.k-gram

    image

    四、TopK排序

    1.精确TopK加速

    a.快速计算余弦(不考虑词项权重)

    b.对所有文档评分后,堆法N中选K(不必排序)。

    堆:二叉树的一种,每个节点上的值>子节点上的值 (Max Heap)

    image

    c.c.提前终止计算:按PageRank的g(d)值降序排列,忽略低于K中最小g(d)值的后续文档。

    2.非精确TopK加速:利用文档集剪枝后集合C'的TopK代替整个文档集C的TopK。

    a.索引去除:只考虑高idf的查询,只考虑包含多个查询词项的文档

    b.胜表法:预先计算倒排表中权重最高的r篇文档(称胜表或高分文档)

    c.提前终止遍历:预先计算权威度g(d)值,并降序排列。net-score=g(d)+cosin(q,d)。

    d.影响度wft,d排序

    e.簇剪枝:选根号N个先导者,对其他文档计算和它最近的先导者。在对最近的几个先导者上的追随者进行预先相似度计算。

  • 相关阅读:
    快速排序 c++
    编程作业: 感性接触计算机程序
    SAS批量导出sas7bdata至excel
    JetBrains WebStorm 快捷键失效
    grails 解决emoji标签存入mysql
    Groovy使用List集合
    javascript 获取当前部署项目路径
    Groovy基本类型与运算符
    HTML— 弹出遮盖层
    grails 获取domainClassName
  • 原文地址:https://www.cnblogs.com/jizhiyuan/p/3477159.html
Copyright © 2011-2022 走看看