950 likes | 1.1k Views
第四讲 文本信息检索研究 (Text Processing). 陆铭 66134922 richard.lu@shu.edu.cn mingler.ccshu.org. Outline. 经典文本检索方法 (1) —— 菊池敏典算法 (2) —— 福岛算法 (3) —— 加权检索 文本预处理 —— 分词、词干 索引和排序 全文检索方法 国内文本和全文检索研究. 1.1 菊池敏典算法 —— 信息检索系统的构成. 信息采集子系统 广泛地、定期地采集各种信息源 标引子系统 人工或者自动标引 建库子系统
E N D
第四讲 文本信息检索研究(Text Processing) 陆铭 66134922 richard.lu@shu.edu.cn mingler.ccshu.org
Outline • 经典文本检索方法 • (1)——菊池敏典算法 • (2)——福岛算法 • (3)——加权检索 • 文本预处理——分词、词干 • 索引和排序 • 全文检索方法 • 国内文本和全文检索研究
1.1 菊池敏典算法——信息检索系统的构成 • 信息采集子系统 • 广泛地、定期地采集各种信息源 • 标引子系统 • 人工或者自动标引 • 建库子系统 • 数据录入、错误检查与处理、数据格式转换、生成各种文档。仅提供定题(SDI)服务,则建立能支持顺序检索的顺排文档。若需支持回溯检索,则建立各种倒排档 • 词表管理子系统 • 管理维护系统中已有的词表,使它与标引、建库等子系统相连接,支持用户查询操作 • 用户接口子系统 • 由用户模型、信息显示、命令语言和反馈机制 • 提问处理子系统 • ①接收提问 ②提问校验 ③提问加工,指对原提问式进行解释性或编译性的加工,生成便于机器处理的目标提问式。加工方式常有顺序检索中的表展开法、倒排检索分别以菊池敏典法和福岛方式 ④检索
菊池敏典算法 • 展开表概念 • 1968年,日本科技情报中心的菊池敏典研究出脱机批处理检索信息的表展开法(菊池敏典算法) • 属于传统的布尔逻辑检索模型,基于文本信息检索,主要适用于二次文献信息的检索。 • 主要思想是将代表用户的逻辑提问式转换成表的形式。该表规定了表的内容走向和是否命中的判断,检索时根据表的走向及其相关信息来判断每条记录是否命中。
菊池敏典算法 • 表展开法的概念 • 用表来表达逻辑提问式,要求: • 能够充分体现提问式中复杂的逻辑运算关系 • 能够准确反映每个检索词的检索匹配要求 • 能够准确给出记录最终的命中与否
菊池敏典算法 • 最简单的例子 • 以展开表法处理提问查询 A*B • 表中,“命中”表示被查比的文献满足查询要求的出口,“落选”表示反之
菊池敏典算法 • 当一篇文献满足条件A时,还应再去查比提问条件B是否也能被满足。如果能,则该文献应被该提问选中,否则,该文献没有被该提问所选中,即落选。 • 当一篇文献不能满足检索条件A时,则不必再去查比检索条件B是否能被满足,即可判定该文献也为落选。
菊池敏典算法 (A+B)*(C+D)的表展开形式
前处理 检索词 供检索匹配的表格 检索运算符 改变运算次序的括号 菊池敏典算法 • 过程
菊池敏典算法——展开表生成 • 前处理 • 判断提问式中的字符,从上而下填写表格 • 若是检索词 • 则将其存入展开表内的检索词栏,并记下在表中的地址 • 若是运算符 • “+”:前一词满足,指向“*”;不满足,指向后一词 • “*”:前一词满足,指向后一词 • 若是括号 • “(”:逢“(”在其后的检索词所在行的“级位”栏值加1 • “)” :逢“)”在其后的检索词所在行的“级位”栏值减1 • 若遇结束,则最后一个检索词所在行的“条件满足指向”栏放入“命中”,“条件不满足”放入“落选”
菊池敏典算法 • 后处理 • 依据表中“级位”值,从下而上填写 • 若当前行级位值大于上一行的级位值,表示上一行的检索词后有右括号 • 若所在行的“条件不满足指向”栏为“空”,则表明当前行和上一行的检索词之间为“*”运算,应把上一行“落选”内容复制到当前行的不满足栏 • 若所在行的“条件满足指向”栏为“空”,则表明当前行和上一行的检索词之间为“+”运算,应把上一行“命中”内容复制到当前行的不满足栏 • 若当前行的级位值等于上一行的级位值,则作以下处理: • 若所在行的“条件不满足指向”栏为“空”,复制上一行“落选”内容到当前行的不满足栏 • 若所在行的“条件满足指向”栏为“空”,复制第一个右括号或提问式结束号前检索词所在行的满足栏内容到当前行的满足栏 • 若当前行的级位值小于上一行的级位值,表示当前行的检索词前有左括号: • 若所在行的“条件不满足指向”栏为“空”,复制表中已处理过的第一个与当前行级位值相等或小的不满足栏到当前行的不满足栏 • 若所在行的“条件满足指向”栏为“空”,复制当前行紧后复合检索项中最后一个检索词所在词所在行的满足栏内容到当前行的满足栏
菊池敏典算法—展开表生成示例 A*(B+C)+(D*(E+F+G))的表展开形式示例
菊池敏典算法—展开表法的检索 • 生成的展开表为若干逻辑提问式的集合,形成展开表提问档 • 检索时,提问展开表调入内存 • 查比时,每从数据库中读取一条记录,生成一个由可检索项组成的检索标识表,每一检索项查对展开表,并对命中的检索词做上标记 • 所有检索项查询完毕,分析提问是否命中,命中者在相应的提问号下记下记录号 • 再取下一记录比对
菊池敏典算法——优点 • 以提问中的提问条件项为检索查比的主动项 • 由于每个独立的提问所涉及的提问条件项的属性范围都不太多,因此,检索时,在文献巾查找的范围只需局限于单个提问所涉及的那一小部分(如关键词,标题等等,具体的提问条件项只在其本身属性范围内查找)。 • 菊池敏典算法用便于查找的提问展开表代替了原来的提问逻辑式 • 电脑可以顺着提问的思路查阅有关文献。一旦提问要求得到判定性的答案后,则可立即停止关于其他提问项的查比,而不一定要求将提问中所有提问条件项都一一查比。 • 菊池敏典算法的实质是: • 凡是可不查阅的文献属性一定不查, • 凡是可不再查比的提问条件项一定不再查, • 节约了机器的查比时间,使菊池敏典算法在早期开发情报检索自动化系统得到相当的重视及广泛的应用
福岛算法—倒排文档的建立 • 倒排文档相对顺排文档而言,是将顺排文档中的可检索字段取出,按照一定的规则排序,归并相同词汇,并把在顺排文档中的记录号集合赋予其后,形成的文档,可看成为辅助文档。 • 倒排文档将两个检索词的逻辑运算转换成了两个检索词之间的记录号集合的运算。目前最常见的倒排文档检索为逆波兰展开法。 • 倒排文档的组成元素主要包括关键字:作者,主题词,分类号目长: 含有该关键字记录的条数记录号集合:所有与该关键字有关的记录号
福岛算法 • 1929年波兰的逻辑学家卢卡西维兹提出将运算符放在运算项后面的逻辑表达式,又称“逆波兰表达式”日本的福岛首先将逆波兰表达式应用于情报检索,故又称“福岛方法” • 逻辑提问式 A*(B+C)+D→逆波兰表达式 ABC+*D+ • 逻辑提问式中运算符优先次序(), -, *, + 逆波兰表达式中的次序(),+,*,-
a + b 运算分量 运算分量 运算符 福岛算法——逆波兰表达式
福岛算法——简单理解一下堆栈 • 可以把堆栈理解为一个只能容纳一个人宽的死胡同,ABCD四人进去,先进去的只有等后进去的人出来才能出来,进去越早出来越晚。 所以“先进后出”就是这种结构的特点。
福岛算法——堆栈中的术语 • 栈底:就是开始放入数据的单元 。 • 压栈:就是把一个人弄进死胡同里。 • 弹出(POP):就是死胡同里的最后一个人出来了~~
-2 11 + - 8 -3 4 2 2 4 - * 福岛算法——逆波兰表达式 • 例: 当遇到这样的计算式时 -2 2 9 4 - 4 8 11 2 * -3 - +
-2 11 + 2 4 - 4 2 * -3 - + P P P P P - 8 -3 4 2 4 2 - * A[2] A[1] A[0] 福岛算法——逆波兰表达式 s 9 -2 11 8 -3 2 4 8 11 4 2 -2 9
福岛算法 • 作者索引
福岛算法 • 选择需要做索引的字段属性(如作者、关键词等),抽出其中的内容,并在其后附上记录号 • 对抽出的内容进行排序,使之便于归并相同内容 • 对相同内容进行归并,把合并后的内容放入倒排文档的主键字段(如标引词、作者等),统计每一数据的频次为目长,把每一内容后的记录号顺序放在记录号集合字段 • 为转换处理开辟三个存储: • 算子区:用于存放转换过程中的运算符 • 检索表存储区:用于存放检索词 • 逆波兰输出区:用于存放逻辑提问式的逆波兰表达式
福岛算法 • 遇运算符 • 若当前运算符的优先级高于前一算符,将该算符送算子栈 • 若当前运算符的优先级低于或等于前一算符,将顶部算符送逆波兰输出区,当前算符再与栈内顶部算符比较,优先级别低者送逆波兰输出区,否则送算子栈 • 遇左括号 • 表示其后存在一个复合检索项,暂不组成运算,而将左括号无条件放入算子栈 • 遇右括号 • 表示与其对应的左括号之间的所有算符都可以组成运算,栈内括号间的所有算符无条件出栈,并送逆波兰输出区,同时放弃这对括号 • 遇运算项 • 将运算项(检索词)存入检索词表,并将其在检索词表的位置送逆波兰输出区 • 遇结束号 • 算子栈内的算子依次出栈送逆波兰输出区
逆波兰法处理示意图 福岛算法 逻辑提问式(A+B)*(C+EF) 检索词表 词表地址 算子 04030201 逆波兰输出区 区分运算项还是运算符
福岛算法—检索指令表的生成 • 逐行扫描逆波兰输出表 ,实现从逆波兰表转换为检索指令表 • 若为检索词 • 若为运算符 • 若为结束行 • 转储操作结束
福岛算法—检索实施 • 按照检索指令表的顺序,依赖检索词表和检索指令表,进行操作: • 若操作码为“1”,进行查找和输入操作 • 若操作码为“2”,转储操作 • 若操作码大于“2”,逻辑运算操作 • 若操作码为“0”,逻辑检索提问式检索结束
1.3 加权检索 • 根据用户的检索要求来确定检索词,并根据每个词在检索要求中的重要程度不同,分别给予一定的数值(权值)加以区别,同时利用给出的检索命中界限( 阈值,threshold)限定检索结果的输出 • 加权检索是对每个检索词赋予一个数值,即“权”,权值越大,检索出的文献命中程度越高。 • 不同的检索系统对加权有不同的定义,也并非所有计算机检索系统都具备加权检索功能。 • 加权检索的侧重点不在于是否检索到某篇文献,而是对检索出的文献与需求的相关度作评判。
加权检索—检索词赋权检索 • 检索要求: • 为了改进企业管理模式,接受新的管理理念,提高企业的竞争力,希望获取知识管理、竞争情报、企业文化父母的文献资料,用加权法列出的提问式如下:W=知识管理(4)竞争情报(2)企业文化(1) • 在所有存储的记录中查找满足上述检索词的文献,然后对检索词加权,文献按匹配的检索词权值之和从大到小排列显示
加权检索结果实例 加权检索—检索词赋权检索
加权检索—词频加权检索 • 根据检索词在记录中出现的频次来计算命中记录的权和,依据命中记录权和从大到小排列,最后由阈值控制输出命中结果 • 词频加权检索建立在全文数据库和文摘数据库基础之上,以免信息量过小,词频加权检索失去意义 • 简单词频加权检索:不论文章长短,以篇为单位计算权和 • 相对词频加权检索: 指定词在文中的频次 文内频率= 该文献词汇总频次 指定词在文中的频次文外频率= 该词在整个数据库中总频次
加权检索—加权标引检索 • 在文献标引时,根据每个标引词在文献中的重要程度不同为它们附上不同的权值,检索时通过对检索词标引权值相加来筛选命中记录 • 反映文献主要内容的标引词给予高权值,反映次要内容的标引词给予低权值。比较检索词赋权检索,结果更具科学性 • 根据词在文中不同位置、出现频率来综合,由计算机自动给予标引词加权
2 文本预处理 • 不论是文档还是查询,都要变成index term的某种形式(布尔表达式、向量、概率、统计语言模型参数) • 抽取什么样东西的作为index term? • 将文档的字符串序列变成词序列 • 英文词法分析:书写时英文词之间通常通过空格或者标点进行区分,因此从英文字符串变成英文词是相对比较容易的。 • 中文词法分析:书写时通常没有空格,需要分词中文分词就是将词语之间没有边界的中文句子分解为一个中文词语ID序列。分词是索引中速度最慢的环节
文本预处理 • 一般完成待索引文档的导入及规范化 • 从文档中抽取文字部分 • 完成编码转换 • 将字符串映射到整数流 • 其他操作
文本预处理——分词 • 语素是最小的语音语义结合体,是最小的语言单位。 • “字”:简单高效,国家标准GB2312-80 中定义的常用汉字为6763个.表示能力比较差,不能独立地完整地表达语义信息。 • 词是代表一定的意义,具有固定的语音形式,可以独立运用的最小的语言单位。 • “词”:表示能力较强,但汉字的词的个数在10万个以上,面临复杂的分词问题
文本预处理 • 哈希函式从上世纪八十年代开始就有了相关研究 • Knuth的研究结果表明,对最常用的31个英文单词建立哈希函式,获得1043种可能的搜索空间,对39个Pascal预定义标识符建立哈希函式,获得搜索空间为2039个节点
文本预处理——分词主要方法 • 基于字符串匹配的分词方法 • 1)正向最大匹配法 • 2)逆向最大匹配法 • 3) 双向最大匹配法 • 4)最少切分 • 基于理解的分词方法 • 基于统计的分词方法
文本预处理—正向最大匹配分词 • 就是从左至右尽可能查找最长的词,直到当前字符与已经处理的字符串不构成词,输出已经识别的词,并从识别出来的词后面接着查找词。 • 分词速度比较快 • 但是分词错误率比较高
文本预处理—快速检索词典的意义 • 分词是索引的瓶颈 • 分词的速度决定了索引的速度 • 分词就是循环的词典查找过程 • 词典的查找速度决定索引的速度
文本预处理——汉字分词 • N元切分法(N-gram) :对一个字符串序列以N为一个切分单位进行切分。 • 如二元切分法: “ABCDEFG”→“AB\CD\EF\G” • 交叉二元切分法(Overlapping Bigram):“ABCDEFG”→“AB\BC\CD\DE\EF\FG” • 简单快速,但会产生大量无意义的标引词,导致标引产生的索引文件的空间,以及检索和进行标引的时间都大大增加。同时,因为它的切分单位并非语言学意义上的词语,所以也会导致检索的查准率下降。
文本预处理——汉字分词 • 切分歧义(Ambiguition)的消除 • 交集型歧义(交叉歧义):“组合成” 我们/小组/合成/氢气了;组合/成/分子;“部分居民生活水平”:部分、分居、居民、民生、生活、活水“学生会组织义演活动”: “学生/会/组织/义演/活动”or “学生会/组织/义演/活动”? • 组合型歧义(覆盖歧义):他/从/马/上/下/来;我/马上/就/来/了 ;“老人家在天津”:老人、老人家请把手拿开这个门把手坏了 • 真/伪歧义“大学生活象白纸”大学 生活 象白纸大学生 活象 白纸
文本预处理——中文词法分析 • 正向最大匹配(基于词典的方法)
文本预处理——中文词法分析 • 逆向最大匹配(基于词典的方法)
文本预处理——基于词典和规则的方法 • 最大匹配 • 正向最大匹配、反向最大匹配和双向最大匹配 • 实现简单,而且切分速度快。但无法发现覆盖歧义,对于某些复杂的交叉歧义也会遗漏。 • 全切分 • 利用词典匹配,获得一个句子所有可能的切分结果。 • 时空开销非常大。 • 基于理解的分词算法 • 模拟人的理解过程,在分词过程中加入句法和语义分析来处理歧义问题。 • 难以将各种语言信息组织成机器可直接读取的形式,还处在试验阶段
文本预处理——汉字分词 • 1.按字切分 • 优点: • 采用单汉字切分的方法,字典体积最小,切分方法最为简单,最接近自然语言。单汉字存储是处理新词和任意汉字串的天然单元,具有其它方法无法比拟的优点 • 缺点 • 不能自动切分主题词,只能在检索时由用户通过对单字的多词匹配组合主题词。另外,随着数据库容量的增加,索引量急骤上升,耗费时空,且检索速度慢,效率低,其查准率和查全率的高低取决于后控制的智能水平。
文本预处理 • 2.按词切分 • 优点: • 字典体积较小,比采用规范主题词更灵活,比单汉字更接近自然语言,便于与其他自然语言处理系统联系。 • 缺点 • 由于切词存在歧义的可能性,切词的组合有随意性,一个名词性概念有代用、相关、属分等关系,动词性概念有方式、工具、强度、时间和原因等谓词框架,所以按词切分技术需要结合其他技术措施。 • 3.按主题词切分 • 优点 • 按主题词切分的方法,以综合、专业主题词典为切词依据,优点是切词正确率和专指性高,借助主题词典便于隐含标引。 • 缺点 • 系统空间开销大,而且不能切分主题词典没有收入的自由词和新词等