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个先导者,对其他文档计算和它最近的先导者。在对最近的几个先导者上的追随者进行预先相似度计算。

  • 相关阅读:
    mysql---面试题2
    Mysql--存储过程
    MySql--锁机制
    MYsql事务
    IDEA创建新项目保存pom文件时,出现错误Cannot resolve org.openjfx:javafx.base:11.0.0-SNAPSHOP
    线程中的多线程、并行和并发、同步和异步、阻塞和非阻塞、线程安全
    Java里的Arrays.asList()返回的List不能使用add、remove方法?
    服务器可用的Socket
    MessageBox.Show
    NPOI 教程
  • 原文地址:https://www.cnblogs.com/jizhiyuan/p/3477159.html
Copyright © 2011-2022 走看看