1. 什么是IR? IR与数据库的区别?

答:数据库是检索结构化的数据,例如关系数据库;而信息检索是检索非结构化/半结构化的数据,例如:一系列的文本。信息检索是属于NLP(自然语言处理)里面最实用的一个场景,应用之一。

2. 什么是term-document incidence matrix?

答:文档中,出现了某个词记做1,未出现记做0的矩阵。 e.g, 单词集合 W={w1, w2, w3, w4},文章集合 D={d1, d2, d3, d4, d5}。 term-document incidence matrix 如下所示:

  d1 d2 d3 d4 d5
w1 0 1 1 1 1
w2 1 1 0 1 1
w3 1 0 1 1 1
w4 0 0 0 0 1

查询语句:w1 ∩ w2 ∩ w3 ∩ w4 (意思是:查找一篇文档,要求文档中出现了单词w1, w2, w3, w4)

答: 做字节与运算:

        01111

        + 11011

        + 101111

        + 00001

--------

         00001

  结果表示, 只有文档d5符合条件。 也就是只有d5中同时出现了w1~w4这四个单词。

3.  什么是 “inverted index” ?

由2可知,我们得到了term与documents的相关矩阵。但是存在的问题是 : 1. 费空间 2. 稀疏矩阵 sparse matrix。

所以,我们需要用到inverted index。也就是以链表的形式,表示文档。

例如:

仍然用2中的例子:可以表示如下:

w1 : 2 -〉3 -〉4 -〉5

w2:    1-〉2-〉4-〉5

w3:  1-〉3-〉4-〉5

w4:  5

可以使用链表linked list, 也可以使用连续的list,continuous list. 前者访问快,后者省空间。 具体权衡视情况而定。

此时,w_1 - w_n 称为“字典部分”(dictionary),而 后面的索引的数字称为“posting”。每一个word都有一个“posting list”

4.  如何使用“inverted index”求 AND OR NOT运算

  答: w1 的inverted index 是:w1_postingList={ 1,2,3,4,10}

    同理,         w2_postingList={1,2,5,6,8}

                w3_postingList={7,8}

  w1 AND w2 OR w3 = w1_PL ∩ w2_PL ∪ w3_PL = {1,2,7,8}

5.  inverted index 的构造流程

  

6. query optimization

1⃣️ 对于一个包含n的term的query,  query q : A AND B AND C

   最优的策略是  : 按照升序的顺序

2⃣️ 同理,对于query q : A OR B OR C

   最有的策略是  : 按照升序的顺序

(参考:1. youtube的一个information retrieval course:https://www.youtube.com/watch?v=Hy78R3yuutg&list=PL0ZVw5-GryEkGAQT7lX7oIHqyDPeUyOMQ&index=4)

      

最新文章

  1. [NOIP2012] 普及组
  2. Android使用OkHttp实现带进度的上传下载
  3. hdu2647 拓扑序
  4. [转载]再谈iframe自适应高度
  5. C#如何在派生类中不显示父类的一些属性以及TypeDescriptor使用
  6. AIX下解决POWERHA的脑裂问题
  7. [摘抄] SFM 和 Visual SLAM
  8. TensorFlow 官方文档中文版 --技术文档
  9. Heartbleed心脏出血漏洞原理分析
  10. mybatis源码解析8---执行mapper接口方法到执行mapper.xml的sql的过程
  11. Feb 5 13:07:52 plugh rsyslogd-2177: imuxsock begins to drop messages from pid 12105 due to rate-limiting
  12. 函数调用的四种方式 和 相关的 --- this指向
  13. Easy-UI开发总结
  14. springcloud使用Zuul构建微服务网关入门
  15. 24.2 网络编程基础——System.Net 命名空间
  16. 移动端页面模板viewport
  17. 关于利用MQ实现分布式事务的想法【转】
  18. C# 中的 Async 和 Await
  19. T-SQL备忘(6):常用内置函数
  20. TRUNC函数的用法

热门文章

  1. Python 10.1
  2. 自制tomcat镜像
  3. std::array,std::vector,基于范围的for循环
  4. P2272 [ZJOI2007]最大半连通子图 tarjan+DP
  5. AtCoder Beginner Contest 132
  6. Codeforces Round #521 (Div.3)题解
  7. masm 编译贪吃蛇游戏
  8. Kafaka详细介绍机制原理
  9. input输入框限制只能输入数字
  10. 使用ICEM绘制非结构网格时,如何提高网格质量?【转载】