Information retrieval (IR class1)
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)
Information retrieval (IR class1)的更多相关文章
- Information retrieval (IR class2)
1. 解析文档一般要分析哪些方面? - 首先分析文档的格式,是docx,html,xml,pdf... - 其次分析文档的语言,是英语,汉语,日语,德语... - 使用的什么字符集,ASCII编码, ...
- Information retrieval信息检索
https://en.wikipedia.org/wiki/Information_retrieval 信息检索 (一种信息技术) 信息检索(Information Retrieval)是指信息按一定 ...
- Deep Learning for Information Retrieval
最近关注了一些Deep Learning在Information Retrieval领域的应用,得益于Deep Model在对文本的表达上展现的优势(比如RNN和CNN),我相信在IR的领域引入Dee ...
- Information Retrieval 倒排索引 学习笔记
一,问题描述 在Shakespeare文集(有很多文档Document)中,寻找哪个文档包含了单词“Brutus”和"Caesar",且不包含"Calpurnia&quo ...
- Information Retrieval
[Information Retrieval] 1.信息检索/获取(Information Retrieval,简称IR) 是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用 ...
- Music information retrieval
Music information retrieval - Wikipedia https://en.wikipedia.org/wiki/Music_information_retrieval Mu ...
- Information Retrieval II
[Information Retrieval II] 搜索引擎分类: 1.目录式搜索引擎. 2.全文搜索引擎. 3.元搜索引擎(Meta-Search Engine). 搜索引擎的4个阶段:下载(cr ...
- IRGAN:A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models
https://arxiv.org/pdf/1705.10513.pdf 论文阅读笔记: https://www.cnblogs.com/liaohuiqiang/p/9694277.html htt ...
- information retrieval (CMU 11642)
1. Heap's law. predict the number of new vocabulary. 参考:https://www.youtube.com/watch?v=JDp12gU-vEQ ...
随机推荐
- HDU 6134 Battlestation Operational | 2017 Multi-University Training Contest 8
破结论没听说过,上式推导到第三步的时候有了O(nlogn) 的做法(枚举倍数+1最后前缀和),并且这种做法可以直接应用到向上取整的计算中,详见forever97 但由于d(n)是积性函数,故可O(n) ...
- React项目性能优化
1. 使用生产版本和Fragment 1. 生产版本 确保发布的代码是生产模式下(压缩)打包的代码. 一般运行npm run build命令. 直接从webpack看配置文件,需要设置mode = ' ...
- An Introduction to Laravel Policy
An Introduction to Laravel Policy 30 Dec 2018 . Laravel. 7.6K views If you heard about Laravel Polic ...
- Kafka 消息队列系列之分布式消息队列Kafka
介绍 ApacheKafka®是一个分布式流媒体平台.这到底是什么意思呢?我们认为流媒体平台具有三个关键功能:它可以让你发布和订阅记录流.在这方面,它类似于消息队列或企业消息传递系统.它允许您以容 ...
- DbVisualizer用JDBC连接SQL Server
1.安装驱动,解压后得到jar文件 Drivers 4.1 and 4.0 for SQL Serve http://www.microsoft.com/en-us/download/confirma ...
- js的数组在内存中是如何存储的
前言:本来想自己总结下,但发现以下文章已经写得很好,就直接放链接了. 英文文章:http://voidcanvas.com/javascript-array-evolution-performance ...
- 【线性代数】4-4:正交基和Gram算法(Orthogonal Bases and Gram-Schmidt)
title: [线性代数]4-4:正交基和Gram算法(Orthogonal Bases and Gram-Schmidt) categories: Mathematic Linear Algebra ...
- openstack 本地导入镜像.
网络很慢,直接本地传. openstack image create "Fedora30" --file Fedora-Cloud-Base-30-1.2.x86_64.qcow2 ...
- maven-jetty插件配置时,webdefault.xml的取得和修改
取得 没必要去下载一个jetty客户端去找webdefault.xml了. 可以去maven的本地仓库找到 \org\eclipse\jetty\jetty-webapp\版本号\ 里面的jar文件, ...
- pytorch 环境搭建
https://pytorch.org/get-started/locally/ pip3 install torch torchvision