文本检索的索引技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统计wenku.baidu.com别的未登录词扩展词典
– –
混合索引
– –
基本词典:“北京”“大学”,无“北京大学”;扩展词典: 有“北京大学” 文档中的“…北京大学…”,基本分词分为“北京”“大学”, 扩展词典基础上在分为“北京大学”,索引按“北京”“大 学”,“/2北京大学”这样三个单位建立。
3。倒排索引创建 。
基本思想:排序
–
结构化,查询和事务型更新 非结构化,查询和事务型更新 非结构化,查询
记录-》文档doc,记录特征-》索引词(index terms)
1。背景和概念-索引形式 。背景和概念-
文本检索常见索引方式
– – –
Brute-force检索 grep 签名文件 signature file hash签名,false match 倒排文件 inverted file 高效,支持多种检索模型 从index term快速查询到doc的索引结构 Doc正常表示为index term的集合,建立索引是把每 个index term表示为其出现的doc的集合,这个过程 称为inversion,即倒排。
字符编码问题
– –
字符集:GB2312,GBK,BIG5,HZ 简、繁转换 (乾杯,乾坤)
UNICODE
分词问题
– –
词?:语法词、词汇词 表达确定的意义(鱼)、非组合性(多媒体)、互译 检查(dioxide -二氧化物)
2。文档分析-中文文本分词 。文档分析-
中文分词歧义
– –
交集型:“部分居民生活水平”[1]
分居、居民、民生、生活、
组合型:“老人家”
老人、老人家
未登录词
–
专有名词(人名、地名、机构名、译名、术语等)、 新词
对大规模中文信息处理,“词典规模是制约分词 精度的主要因素”[2]
2。文档分析-中文文本混合索引 。文档分析-
基本分词词典
–
6万,选词较为严格 统计方法,精度不高 如果加入到基本分词词典中,带来大量组合型歧义问题,不能 正确处理。->混合索引
倒排索引
计算机 。。。
2。文档分析-原则 。文档分析-
索引词的选择范围
– –
人工索引->质量高,但不适用大规模文档数据处理 自动索引
部分索引->title,abstract,keywords, etc(例如:北大图书馆的 WebCat系统) 全文索引->文档中所有词都参与索引。(SE/IR普遍采用)
效率:
–
3。倒排索引创建-整数压缩 。倒排索引创建-
整数压缩
– –
–
<docid,…..>的整数序列压缩存贮。 压缩的基本思想: 高频使用较短的位表示,低频使 用较长的位表示( Huffman编码 ) 频率分布模式 与编码 有序整数序列,记录距离,改变频率分布模式,以提 高压缩比
1,3,7,11,13,14 1,2,4,4,2,1
∑W
Cos (Q, Dd ) = = 1 Wq ⋅ Wd
t∈Q
d ,t
* Wq ,t = N 2 ) ft
∑f
t∈Q
d ,t
* idf * 1 * idf =
Wq ⋅ Wd f d ,t * log(
W q ⋅ Wd
∑
t∈Q
4。索引查询 。
VSM rank查询
– –
Document-level索引:<docid,F(d,t)> 增加文档属性数据库:|D|
–
编码方案
γ 系列、golomb系列、bytecode
4。索引查询 。
文档属性
北京大学
词典 倒排文件 ③ ② <d0,d1,d2…> <d0,d1…> ∧④
①
北京 大学
4。索引查询 。
布尔查询
–
北京 AND 大学
VSM rank查询
– –
相关度用文档相似度来计算 Similarity(Q,D)=COS(Q,D)
结构查询
– –
4。索引查询-效率问题 。索引查询-
索引压缩
– –
减少磁盘io时间,增加cpu处理索引项的时间 折衷:使用Byte code, 更多的IO次数,减少数据传输总量 折衷:控制block大小参数 参考Justin Zobel,Ian Witten,Alistair moffat等人一系 列的paper
短语、临近查询
– –
例如:“北京 网易” ,“北京大学” Word-level索引:<docid,F(d,t),<loc1,loc2…locF(d,t)>> 例如:“北京大学 IN TITLE” 在loc数据中用位标识记录 .VS. 在word-level index基础上使用 text interval
索引的随机访问-加入同步点
– –
有待进一步工作
–
5。其它问题 。
倒排索引-更新
– – – –
查询和更新效率 postinglist连续存储->查询效率高,更新难 postinglist分块链表存储->查询效率低,更新易 成批更新,删除使用结果过滤。 按文档划分 .vs. 按索引词划分 按文档划分,各个节点间在查询过程中相互无需数据 通信,-扩展性好。
倒排索引
– –
1。背景和概念-倒排 。背景和概念-
文档 Doc1 Doc2 Doc3 。。。 内容 ….北京大学计算机系…. ….北京大学主页….. …计算机的发展…
原始文档
倒排
索引项(posting list) <doc1><doc2>。。。 <doc1><doc3>。。。 。。。
索引词 北京大学
减少磁盘的随机访问次数-(大内存环境)
–
–
数据压缩
3。倒排索引创建-两趟算法 。倒排索引创建-
倒排文件
① 词典
③ ④
③
倒排文件
④
① 词典 ② 主 词 典 ④
倒排文件
主 倒 排 文 件
① 词典
③
3。倒排索引创建-两趟算法 。倒排索引创建-
Two-pass索引创建
–
–
–
1。Parsing ,提取index term,统计df和tf,通过hash表转换为 term id,生成词典文件(lexicon file)。 2。按统计得到的index term的tf,df属性,可以估计出对应posting list长度,预申请空间。再次parsing文档集,在内存中执行倒排。 结果保存到临时文件。 3。对多次生成的临时倒排文件,多路合并,压缩输出,得到最 终倒排文件。 Parsing(包括中文分词)为主要时间开销。空间开销在临时文 件(parsing结果,临时倒排文件)上,使用压缩。
文本检索的索引技术
彭波 2003-11-1
提纲
背景和概念 文档分析 索引创建 索引查询 相关资料
1。背景和概念-索引作用 。背景和概念-
索引?
– –
提供从记录的特征快速查询到记录的数据结构(B树、散列表、 位图索引等) 数据库,文档数据库,SE/IR系统
数据库 文档数据库 SE/IR系统 文本检索
<term,doc> <term,doc>
文档分析
文本数据
<term,doc>
排序
先term,再docid
<term,doc>
词典
term,ptr term,ptr
倒排文件
Doc1,doc2 Doc1,doc2
3。倒排索引创建-算法优化 。倒排索引创建-
Term编码(词典组织)
– – –
每个term用整数编码,减小存储空间 英文-前缀编码(liber,liberal,liberalist…) 散列表(MPH,无冲突散列) <termid,docid>在内存中排序,排序结果分批写入磁盘,最后合 并。 两趟算法,在内存中直接倒排,小倒排文件分批写入磁盘,最 后多路合并。
索引词的选择原则
–
Index term ≠ word
理想:表达文档内容的语义单位 字、词、短语(词汇词) 中文分词
2。文档分析-英文文本 。文档分析-
Tokenize (Lexical grammar)
[A-Z][A-Z]+ return UPWORD; [a-zA-Z0-9]+ return WORD; [A-Z][A-Z]+((\')?[s])? return ACRONYM2; [a-zA-Z0-9]+\'[a-zA-Z]+ return CONTRACTION; [A-Z]\.([A-Z]\.)+ return ACRONYM;
问题:“c++”,R&B,U.S.,a.out没有被识别 问题:数字长度、词长度 词规模
Lemertization (曲折词形合并)
–
He,him ->he ; is, are,was ->be Stemmer ->stem ;
Stemmer (取词根)
–
SE为了支持精确查询,往往不使用后两种技术
2。文档分析-中文文本 。文档分析-
分布式结构
– –
5。相关资料 。
http://www.stanford.edu/class/cs276a/ http://www.cs.mu.oz.au/mg/
谢谢! 谢谢