信息检索领域常用的术语
用 户 需 求
User Need, 简 称 UN。
查询
UN 提交给检索系统时称为查询
文档(Document)
文档是信息检索的对象,文档不仅仅可以是文本,也可以是图像、视频、语音等多媒体文档。文档其实质就是键值对集合,可以简单的理解为JSON对象。
文 档 集
由若干文档构成的集合称为文档集合,文档集有时也称为语料库。海量的互联网网页、文件系统中的文本文件、大量的电子邮件,都是文档集合的具体例子
文 档 编 号 (ocumentID)
文档ID 是给文档集中的每个文档赋予的唯一标识符,通过文档ID 来区分不同的文档,这样能够方便搜索引擎的内部处理。缩写为docID。
词 条 化 tokenization)
词条化是将给定的字符序列拆分成一系列子序列的过程,拆分的每个子序列称为一个词条。词条化的过程中有可能会去除标点符号等特殊字符。下面是一个词条化的具体例子
输入Whatever happens tomorrow,we have had today.
输出: whatever happens tomorrow we have had today
词 项 (Term)
词项是经过语言学预处理之后归一化的词条。词项是索引的最小单位,一般情况下可以把词项当作词,但词项不一定就是词。对于上面的句子,产生词项如下:
what ever happen tomorrow we have had today
词项-文档关联矩阵Incidence matrix )
词项-文档关联矩阵是表示词项和文档之间所具有的一种包含关系的概念模型,下图 展示了其含义。表中的每列代表一个文档,每行代表一个词项,打对勾的位置代表包含关系
词项 频 率 Term frequency )
同一个单词在某个文档中出现的频率。比如,单“apple” 在某文档中出现了3 次,那么该单词在该文档中的词项频率就是3。一个词和一个文档。
文档 频 率 Document frequency )
出现某词项的文档的数目。比如,单词“China” 只出现在文档集合中的文档1 和文档 5,那么该单词的文档频率就是2。一个词多个文档。
倒排 记 录 表 (Postings lists)
倒排记录表用于记录出现过某个单词的所有文档的文档列表以及单词在该文档中出现的位置信息,每条记录称为一个倒排项。通过倒排列表即可获知哪些文档包含哪些单词。
倒排 文 件 ( Inverted file)
倒排记录表在磁盘中的物理存储文件称为倒排文件。
分词算法
词是表达语义的最小单位。分词对搜索引擎的帮助很大,可以帮助搜索引擎程序自动识别语句的含义,从而使搜索结果的匹配度达到最高,因此分词的质量也就直接影响了搜索结果的精确度。
1. 英文分词的原理
基本的处理流程是:输入文本、词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转为小写、结果输出。
2. 中文分词原理
中文分词比较复杂,并没有英文分词那么简单。这主要是因为中文的词与词之间并不像英文中那样用空格来隔开。中文分词主要有3 种方法:基于词典匹配的分词方法、基于语义理解的分词、基于词频统计的分词。
2.1 词典匹配的分词方法
基于字典匹配的分词方法按照一定的匹配策略将输入的字符串与机器字典词条进行匹配。实际上就是把一个句子从左向右扫描一遍,遇到字典中有的词就标识出来,遇到复合词就找到最长的词匹配,遇到不认识的字串则切分成单个词。。按照匹配操作的扫描方向不同,字典匹配分词方法可以分为正向匹配、逆向匹配以及结合了两者的双向匹配算法。;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与词性标注相结合的方法。
正向最大匹配(由左到右的方向)
逆向最大匹配(由右到左的方向)
最少切分(是每一句中切除的词数最小)
实际应用中上述各种方法经常组合使用,以达到最好的效果,从而衍生出了结合正向最大匹配方法和逆向最大匹配算法的双向匹配分词法
2.2语义理解分词法
基于语义理解的分词方法是模拟人脑对语言和句子的理解,达到识别词汇单元的效果。目前基于语义理解的分词系统还处在试验阶段
2.3词频统计分词法
这种做法基于人们对中文词语的直接感觉。通常词是稳定的字的组合,因此在中文文章的上下文中,相邻的字搭配出现的频率越多,就越有可能形成一个固定的词
倒排索引( Inverted index )
索引是构成搜索引擎的核心技术之一。倒排索引( Inverted index ) , 也常被称为反向索引,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射,它是文档检索系统中最常用的数据结构。假设现在有两个文档docl 和doc2 , docl 包含3个关键词:中国、美国、韩国,doc2 中包含4 个关键词:中国、美国、德国、英国,文档和词语的包含关系(也就是正排索引),见下图:
那么词语所属的文档关系,也就是倒排索引
如果想查找包含关键词“美国”的文档, 那么结果就是docl 和doc2。这样从文档包含单词到单词所属文档的转换,即完成词项到词项在文档中存储位置的映射,就是倒排的由来。我们在搜索引擎中输入关键词进行查询,就是一次查找哪些文档包含查询关键词的过程。
布尔检索模型
布尔检索模型中主要有AND, OR, NOT 三种逻辑运算,布尔逻辑运算符的作用是把检索词连接起来,构成一个逻辑检索式。
AND ( 或* ) : 逻辑与,用来表示其所连接的两个检索项的交叉部分,即检索词的交集部分。例如检索同时含有关键词A 和B 的集合:A AND B
• OR ( 或+) : 逻辑或, 用于连接并列关系的检索词。表示查找含有检索词A 和B 之一,或同时包含检索词A 和B 的信息:A OR B
• NOT ( 或: 逻辑非,排除不需要的和影响检索结果的概念。表示含有检索词A 并且不含有检索词B 的信息:A NOT B
运算符之间的优先级:NOT > AND > OR ,如检索表达式:中国NOT 曰本AND 歌曲OR 小说,搜索结果为:名字包含中国但是不包含日本的歌曲或者小说。