文档章节

斯坦福NLP笔记72 —— The Inverted Index

陈清扬
 陈清扬
发布于 2014/07/22 12:10
字数 417
阅读 45
收藏 0

Inverted Index是信息抽取里最常用的数据结构,来看看他长啥样:

Brutus指向数字X则代表X号文档中包含了Brutus这个词。

左边的索引词称为Dictionary,右边的文档ID称为Posting,是排好序的。


存储

Dictionary相对体积较小,一般存在内存(memory)中,而Posting比较大,一般存在硬盘中(disk)。


构建Inverted Index

假设documents长这样:Friends,Romans,Countrymen.

经过token stream处理以后,变成这样:Friends Romans Countrymen.

tokenizer的作用在于把字符串割成一个个单个的term。

然后再经过一个语言模型,变成这样:friend roman countryman

大小写变了、单复数变了等

所以语言模型的作用在于标准化,canonical form

接下来就可以进行index操作了


上述文本处理的一些细节

  • Tokenize的时候,possessives和hyphenated term应该作何处理?(视情况而定)

  • 规则化的时候,如何把“U.S.A”和"USA"match起来

  • Stemming的时候,是否应该把相同stem的词等效起来?

  • “the\a\to”这些词是否应该扔掉?有时候他们不能扔,譬如:“To be ,or not be ?”


indexer的细节:

遍历所有doc,得到右表。

以term为关键字排序,term相同的时候按docID排序。

  1. 相同的项合并(但词频不增加,仅仅是合并成一项而已)

  2. 分离后term后面紧接着存储该term一共在多少个doc里出现过


占用的空间

  • 存储terms和他们对应的count

  • 存指针

  • 存docID的list


最后看看今天的练习题:

正确答案是第一个。

© 著作权归作者所有

陈清扬
粉丝 5
博文 52
码字总数 23875
作品 0
海淀
私信 提问
李飞飞又有新动向,斯坦福 AI 实验室由 Christopher Manning 接棒

雷锋网(公众号:雷锋网) AI 科技评论按:11 月 19 日,斯坦福人工智能实验室发推文称,Christopher Manning 成为实验室新负责人,而前负责人李飞飞则将工作阵地转移到「以人为中心的 AI 计划...

丛末
2018/11/20
0
0
斯坦福AI实验室换帅!Christopher Manning接替李飞飞

机器之心报道。 今天,斯坦福 AI 实验室(SAIL)在官方 Twitter 上表示 Christopher Manning 成为新的负责人,而前一任负责人李飞飞负责「以人为中心的 AI 计划」。 看过斯坦福 CS224n 的读者...

机器之心
2018/11/20
0
0
重磅 | AI 第一高校 CMU 的「神经网络 NLP」课,中英字幕独家上线!

AI 研习社获得官方授权,汉化翻译卡耐基梅隆大学的11-747神经网络自然语言处理(2019春季),今天正式上线中英双语字幕版课程啦! 我们先来一睹为快—— 第一讲 课程介绍 & 使用神经网络做自...

雷锋字幕组
03/07
0
0
斯坦福自然语言处理习题课1——绪论

对于技术人员来说,如果要问当前最热门的技术是什么?我想大家一定会回答是人工智能技术。而在人工智能技术中,哪个技术方向最火呢?大家肯定会回答是深度学习技术。如果我们要问在深度学习技...

最老程序员闫涛
2018/11/06
0
0
斯坦福 HAI 出品:细数全球 18 件 AI 大事记

雷锋网 AI 科技评论按:3 月 18 日,由李飞飞担任所长之一的「以人为本人工智能研究所」(HAI)自启动以来不短的时间后,终于完成了正式成立的高光时刻。而正式上线的官网日前也更新了两条博...

丛末
03/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Knative Service 之流量灰度和版本管理

本篇主要介绍 Knative Serving 的流量灰度,通过一个 rest-api 的例子演示如何创建不同的 Revision、如何在不同的 Revision 之间按照流量比例灰度。 部署 rest-api v1 代码 测试之前我们需要...

阿里云云栖社区
46分钟前
2
0
代码管理平台git

22.5/22.6 单机上使用git 22.7 简历远程仓库 22.8 克隆远程仓库 22.9 分支管理 22.10 远程分支管理 22.11 标签管理 22.12 git别名 22.13 搭建git服务器 22.14/22.15 安装gitlab 22.16 使用g...

tobej
47分钟前
1
0
压测某HR系统,遇到的坑

遇到的问题:当多个线程组公用一个公共模块功能的时候(登录生成的cookies信息,文件的写入操作),此时出现跨域问题 场景分析: 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的...

覃光林
47分钟前
2
0
学习k8s——基本架构

对部署流水线有了个大致的认知之后,开始学习k8s k8s的基本架构 kubernateskubernates这个单词起源于古希腊,是舵手的意思,所以它的logo既像一个渔网,又像一个罗盘。K8S是它的缩写,用“8...

啊哈关关
59分钟前
1
0
好程序员分享JavaScrip数组去重操作实例小结

好程序员分享JavaScrip数组去重操作实例小结,这篇文章主要介绍了JavaScrip数组去重操作,结合实例形式总结分析了javascript针对数组的遍历、判断、去重等相关操作技巧,需要的朋友可以参考下。...

好程序员IT
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部