Information retrieval (IR class2)
1. 解析文档一般要分析哪些方面?
- 首先分析文档的格式,是docx,html,xml,pdf...
- 其次分析文档的语言,是英语,汉语,日语,德语...
- 使用的什么字符集,ASCII编码,或者是UFT-8,或者....
2. 什么是Tokenization Process?
对于汉字,需要“分词”,比如把:“我们” -> “我” “们”
而英文中,这个操作很简单,仅仅是空格而已:we are student -> "we" "are" "student". 然而,有时也会出现问题,比如“don't" 该如何分词??
3. 什么是stopword?
英文里,常出现的词语,类似 you, I, and, a, 之类的
4. 什么是Normalization ?
把所有词还原成一种形式。 包括 stemming 和 lemmatization 。
stemming(词干):去掉后缀(suffix),例如,police , policy , police 可以变成同一个 stem : polic
lemmatization(此行还原) 例如,复数 -> 单数,动词过去式/单三式 -> 原形之类的。
5. Porter's algorithm ?
用来还原词干的一个算法,一个经典的规则:
- sses -> ss
- ies -> i
- ational -> ate
- tional -> tion
其实,正规化有很多方法,也有很多标准,stemming和 lemmatization也有很多不同的实现方法与规则。
6. 如何加速posting list的查找?
skip pointer ,工作机制不太明白,继续学习中
8. 遇到词组的情况怎么解决?
答:目前主要有三种解决方法: 1⃣️二词法:就是把两个字组合作为一个词,例如,stanford university作为一个词,进行inverted index。 如果是多个词的词组,就用AND连接biword。问题:列出所有的两分词,不太可能,耗费的存储空间太大。空间复杂度太高
2⃣️位置索引法:在inverted index的基础上,不仅记录文档,还另外记录该词出现在文档中的哪个位置。然后将starnford和university进行AND操作后,对比出现在同一个文档中的位置,是否相邻,如果是,则判断1,反之为0。 缺点是匹配耗费的时间太多,时间复杂度太高
3⃣️ 二分-位置索引法:将两种方法结合起来。没有细究。
9. 遇到通配符(wild-card queries)的情况怎么解决?
比如:用户想要输入 rotate, 但是不知道怎么拼写,就输入了 rote* 或者 *tate
三种方法:1⃣️。 使用树的方法: 对于后面省略的,使用B+树的查找,匹配后缀。 对于前面省略的,使用树的翻顺序,匹配前缀
2⃣️。 使用permuterm index(我称之为排列索引): 例子详见参考:https://people.eng.unimelb.edu.au/tcohn/comp90042/l3.pdf
例如 ro*te -> te $ ro : $ 意思是 以ro为开头,以te为结尾
3⃣️。 使用n-gram index .
10. 什么是 POST (part of speech tage)
翻译成中文,简单来说就是, 词性/词类标注。
例如, I played basketball in the park.
noun : basketball, park.
verb : play
在nlp处理时, I , in, the 都可以直接归类于 “stop word”里面。
以及,为了方便大家记住常用的英文缩写,我把参考链接粘贴到这里(参考: https://zhidao.baidu.com/question/170228690)。
Abbr (abbreviation) : 省略语
ie (which is to say) : 即
etc
prep 介词
conj 连接词
11. 另外, 对于POST,有很多专业术语,可以参考https://cs.nyu.edu/grishman/jet/guide/PennPOS.html
CC(coordinating conjunction ): 衔接连词
CD(cardinal number): 基数词
PRP (personal pronoun):代词
VBZ(Verb,3drperson singular present):动词单三式
NNS (noun,plural):名词复数
IN (prepostion or subordinating conjunction):介词或从属连词
DT(determiner):限定词
NN(noun,singular or mass):名词单数
Information retrieval (IR class2)的更多相关文章
- Information retrieval (IR class1)
1. 什么是IR? IR与数据库的区别? 答:数据库是检索结构化的数据,例如关系数据库:而信息检索是检索非结构化/半结构化的数据,例如:一系列的文本.信息检索是属于NLP(自然语言处理)里面最实用的一 ...
- 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 ...
随机推荐
- Python之yield语法
生成器与yield 函数使用yield关键字可以定义生成器对象.生成器是一个函数.它生成一个值的序列,以便在迭代中使用,例如: def countdown(n): print('倒计时:%s' % n ...
- [转]Linux下的常见信号总结
转自 https://www.cnblogs.com/gaorong/p/6430905.html 在linux下有很多信号,按可靠性分为可靠信号和非可靠信号,按时间分为实时信号和非实时信号,linu ...
- 2019ICPC南京自我反省
第一场ICPC,跟第一场CCPC一样,可惜真的可惜. 打完比赛就感觉难受,难受不在于又抱了块铜牌,而是那种能出的题没出的可惜感非常浓重. 开场还是可以的,通过一阵讨论,就大胆猜测了A的规律,然后一发过 ...
- java 根据年月获取当前年月的最后一天,获取当前年月有多少天
new Date( "2019-08-" + 1) 获取2019年8月的最后一天 结果为--2019-08-31 new Date(2019, 8, 0).getDate( ...
- python中的关键字yield有什么作用?
保存当前运行状态,然后暂停执行,即将函数挂起.yield关键字后面表达式的值作为返回值返回.当使用next(),send()函数从断点处继续执行.
- luogu_P4767 [IOI2000]邮局
传送门 Description 高速公路旁边有一些村庄.高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识.没有两个在同样地方的村庄.两个位置之间的距离是其整数坐标差的绝对值. 邮局将建在一些,但 ...
- Java使用超级工具包Hutool操作数据库
#=================================================================== # pom.xml中添加引用 # <!-- https: ...
- RDD java API使用
1.RDD介绍: RDD,弹性分布式数据集,即分布式的元素集合.在spark中,对所有数据的操作不外乎是创建RDD.转化已有的RDD以及调用RDD操作进行求值.在这一切的背后,Spark会自动 ...
- <JavaScript>调用apply报错:CreateListFromArrayLike called on non-object;
Function.apply(obj, args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args--> ...
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
2.PHP与Mysqli扩展,面向过程.对象 <?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test ...