第6章信息检索与web搜索
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web数据挖掘
南京航空航天大学 陈永洲 yzchen@nuaa.edu.cn 2011年4月30日星期六
第6章: 信息检索与Web搜索
Introduction
文本挖掘参考数据挖掘,将文本视为数据. 大部分的文本挖掘使用信息检索方法—— Information Retrieval (IR) methods来预处 理文本文档. 这些方法与传统的对关系数据库的数据处 理方法不完全相同. 网页搜索是IR的一个分支.
3
Information Retrieval (IR)
理论上IR就是要找到所需要的信息, IR帮助用户 找到匹配他们需求的信息.
表达为查询 找出用户查询的文档
IR关于文档的检索强调文档作为基本的单元.
技术上, IR是研究关于获得、组织、存储、检索 和信息的分布的.
4
IR与数据库查询的区别
Aspects Data Operator User’s need Results IR Unstructured Read only keywords DB Structured Read/Write SQL
Similar function Exactly match
IR 基本框架
6
IR查询
关键词查询 布尔查询(using AND, OR, NOT) 短语查询 邻近查询 全文搜索 自然语言查询
7
信息检索模型
IR模型决定文档和查询的表示,以及文档和 用户查询关系的定义. 主要的模型:
Boolean model Vector space model Statistical language model etc
8
Boolean model
每一文档或查询作为一个“bag” of words or terms. 词序不考虑. 给定文档集合D, 词集V = {t1, t2, ..., t|V|}. V 也称 为词汇表vocabulary. 权重wij > 0是文档dj ∈ D 中每一词ti 的. 在文档 dj中不出现的词, wij = 0;其中|V|所有词数目. dj = (w1j, w2j, ..., w|V|j),
9
Boolean model (contd)
组合的查询词间逻辑关系使用Boolean操作符 AND, OR, 和 NOT.
例子, ((data AND mining) AND (NOT text)) 给定一布尔查询, 系统检索出满足布尔逻辑关系为真 的所有文档结果. 称为exact match.
检索
检索结果一般,因为没有考虑词频.
10
The Boolean Model
Ka Kb (1,1,0) (1,1,1)
q = ka ∧ (kb ∨ ¬kc)
(1,0,0)
sim(q,dj) = 1 if gi(vec(qcc)))
∃ vec(qcc) | (vec(qcc) /in vec(qdnf)) ∧ (∀ki, gi(vec(dj)) = 0 otherwise
Kc
布尔模型的缺点
Exact matching No ranking: Awkward: Information need has to be translated into a Boolean expression Too simple: The Boolean queries formulated by the users are most often too simplistic Unsatisfiable Results: The Boolean model frequently returns either too few or too many documents in response to a user query
Vector space model
文档也可以作为词和词组的 “bag”. 每一个文档可以表示为一个向量. 权重不仅为0或1.基于TF或TF-IDF计算每个词 的权重. Term Frequency (TF) Scheme: dj文档中ti的 权重就是在文档dj中出现ti的次数, 用 fij表示. 归一化方法也可以使用.
13
词TF-IDF权重法
所知道的最好的权重 方法
TF: term frequency IDF: inverse document frequency. N: 总文档数 dfi: 具有ti 的文档数目.
最后的TF-IDF词权重:
14
vector space model的检索
查询q用同样或类似的方法表示. 查询q对文档di的关系: 比较查询q和文档di的 相似性. 余弦相似性(两个向量夹角间的余弦值)
余弦一般也在文本聚类中使用
15
例子
三个词表示的文档向量:
hardware, software, users the vocabulary
A1=(1, 0, 0), A4=(1, 1, 0), A7=(1, 1, 1) A2=(0, 1, 0), A5=(1, 0, 1), A8=(1, 0, 1). A3=(0, 0, 1) A6=(0, 1, 1) A9=(0, 1, 1)
文档集定义为:
如果查询是“hardware and software” 那么检索的文档结果是什么?
16
例子 (cont.)
布尔查询匹配:
将检索到 A4, A7 (“AND”) 结果: A1, A2, A4, A5, A6, A7, A8, A9 (“OR”)
q=(1, 1, 0) S(q, A1)=0.71, S(q, A2)=0.71, S(q, A4)=1, S(q, A5)=0.5, S(q, A7)=0.82, S(q, A8)=0.5, 检索的文档集 (排序)=
相似性匹配 (余弦):
S(q, A3)=0 S(q, A6)=0.5 S(q, A9)=0.5
{A4, A7, A1, A2, A5, A6, A8, A9} 17
Okapi相关度方法
另一个直接计算每一文档与查询的相关度. Okapi方法和它的变异变量都是一些流行的方法.
18
关联性反馈
关联性反馈是提高检索效果的方法之一;步骤:
首先用户从初始的检索文档中识别出相关(Dr)和不 相关(Dir)的文档 通过从样本中相关和不相关的文档提取的词组来 拓展q产生qe 执行第二轮检索.
Rocchio 方法(α, β 和 γ 是参数)
19
Rocchio文本分类器
事实上称为Rocchio分类器的Rocchio变异方 法也能提高查询的效果
因此其他的机器学习方法也能. Why?
通过每一类i的向量ci原型构建Rocchio分类器 (这种情况下的相关 或 不相关):
在分类中, 使用了余弦.
20
文本预处理
提取词(词组) 移除停用词 词干提取 频率统计和TF-IDF权重计算.
21
停用词移除
许多常用词在IR和文本挖掘中是无用的 – 这些词称为停用 词. the, of, and, to, …. 必须构建每一特定领域的停用词表 为何要移除停用词?
降低索引 (或数据)文件的大小 停用词计数占所有词计数的20-30%. 提高效率和效益 停用词对搜索和文本挖掘是无用的 停用词可能增加检索系统的负担
22
词干提取
找出词干和词根的技术. 例如:
user users used using
engineering engineered engineer
词干: use
engineer
无用的: 提高IR和文本挖掘的效率
相似词匹配 主要的作用是提高召回率 融合具有相同词根(干)词,可以降低索引40-50%的大小.
23
降低索引大小
基本的词干提取方法
使用规则集. 例如: 结尾移除法
如果一个词的结尾是辅助的s, 删除s. 如果结尾是es, 去除s. 如果结尾是ing, 删除ing, 除非剩下的仅是一个字符或th. 如果结尾是ed,在辅助符之前删除ed,除非仅剩下一个字符. …... 如果一个词结尾是 “ies”,而非“eies”或“aies”,则 “ies --> y.”
24
词变换
频率计数 + TF-IDF
对一词在一个文档中出现的次数计数.
该词在文档中的出现次数表示其重要程度.
如果一词在一文档中频繁出现, 文档极有可能处理 的是与该词相关的事情.
统计包含该词收集的文档数目 TF-IDF 就能计算出来.
25
计算: 精度和查全率
给定的查询:
是否所有检索的文档是相关的? 是否所有相关的文档被检索? 第一个问题是关于搜索的精度(precision) 第二个问题是关于搜索的覆盖率—查全率 (recall).
26
度量系统的效果:
精度—查全率曲线
27
不同的检索算法比较
28
多重查询的比较
计算所有查询的平均精度.
画出精度的召回曲线 进行F-score计算.
29
精度排序
对选出的排序位置上计算其精度. 主要用于Web搜索的估算. 对Web搜索引擎,能计算出精度为前5, 10, 15, 20, 25 和 30的返回页面
用户较少查看30页之后的页面. 原因?
查全率在Web搜索中意义不大.
30
作为巨大的IR系统——Web搜索
一个网络爬虫(robot)收集所有的网页. 服务器建立一个巨大的倒排序数据库和其 他的索引数据库 在查询(搜索)时,搜索引擎进行不同类型的 查询向量匹配.
31
倒排序索引
倒排序索引是所收集文档的一个数据结构
每一不同词(组)后面跟着包含它的文档列表. 找出包含查询词(组)的文档. 多重查询词(组)也容易处理.
在检索中,需要一定量的时间:
32
实例
下面介绍一个例子,之前要了解一下Trie 树
Trie,又称单词查找树,是一种树形结构,是一种哈希树 的变种。典型应用是用于统计和排序大量的字符串(但不 仅限于字符串),所以经常被搜索引擎系统用于文本词频 统计。它的优点是:最大限度地减少无谓的字符串比较, 查询效率比哈希表高。 它有3个基本性质: 1. 根节点不包含字符,除根节点外每一个节点都只包含 一个字符。 2. 从根节点到某一节点,路径上经过的字符连接起来, 为该节点对应的字符串。 3. 每个节点的所有子节点包含的字符都不相同。 这是一个Trie结构的例子:
Trie树
例子
36
构建索引
Easy! See the example,
37
使用倒排序索引搜索
给定一个查询q, 按照下面的步骤搜索: 1.(词搜索): 从倒排序索引中找出查询q包含的每 一词(组). 2.(结果匹配): 融合结果找出具有q包含的词(组) 的文档. 3.(排序分数的计算): 对结果中文档/页面排序,使 用
基于内容的排序 基于链接的排序
38
隐式语义索引
Latent semantic indexing 在随机的词组下,隐藏着语义结构,然 后利用奇异值分解(singular value decomposition: SVD)的统计学方法,来估算这种结构并 去除噪音。
2011-4-30
南京航空航天大学 陈永洲
39
步骤
Create the frequency matrix Frequency_Matrix. SVD construction: Compute the singular valued decomposition of Frequency_Matrix by splitting Frequency_Matrix into 3 matrices, U, S, V. Vector identification: For each document d, let vec(d) be the set of all terms in Frequency_Matrix whose corresponding rows have not been eliminated. Index creation: Store the set of all vec(d)’s, indexed by one of a number of techniques (such as TV-tree).
南京航空航天大学 陈永洲 yzchen@nuaa.edu.cn 2011年4月30日星期六
第6章: 信息检索与Web搜索
Introduction
文本挖掘参考数据挖掘,将文本视为数据. 大部分的文本挖掘使用信息检索方法—— Information Retrieval (IR) methods来预处 理文本文档. 这些方法与传统的对关系数据库的数据处 理方法不完全相同. 网页搜索是IR的一个分支.
3
Information Retrieval (IR)
理论上IR就是要找到所需要的信息, IR帮助用户 找到匹配他们需求的信息.
表达为查询 找出用户查询的文档
IR关于文档的检索强调文档作为基本的单元.
技术上, IR是研究关于获得、组织、存储、检索 和信息的分布的.
4
IR与数据库查询的区别
Aspects Data Operator User’s need Results IR Unstructured Read only keywords DB Structured Read/Write SQL
Similar function Exactly match
IR 基本框架
6
IR查询
关键词查询 布尔查询(using AND, OR, NOT) 短语查询 邻近查询 全文搜索 自然语言查询
7
信息检索模型
IR模型决定文档和查询的表示,以及文档和 用户查询关系的定义. 主要的模型:
Boolean model Vector space model Statistical language model etc
8
Boolean model
每一文档或查询作为一个“bag” of words or terms. 词序不考虑. 给定文档集合D, 词集V = {t1, t2, ..., t|V|}. V 也称 为词汇表vocabulary. 权重wij > 0是文档dj ∈ D 中每一词ti 的. 在文档 dj中不出现的词, wij = 0;其中|V|所有词数目. dj = (w1j, w2j, ..., w|V|j),
9
Boolean model (contd)
组合的查询词间逻辑关系使用Boolean操作符 AND, OR, 和 NOT.
例子, ((data AND mining) AND (NOT text)) 给定一布尔查询, 系统检索出满足布尔逻辑关系为真 的所有文档结果. 称为exact match.
检索
检索结果一般,因为没有考虑词频.
10
The Boolean Model
Ka Kb (1,1,0) (1,1,1)
q = ka ∧ (kb ∨ ¬kc)
(1,0,0)
sim(q,dj) = 1 if gi(vec(qcc)))
∃ vec(qcc) | (vec(qcc) /in vec(qdnf)) ∧ (∀ki, gi(vec(dj)) = 0 otherwise
Kc
布尔模型的缺点
Exact matching No ranking: Awkward: Information need has to be translated into a Boolean expression Too simple: The Boolean queries formulated by the users are most often too simplistic Unsatisfiable Results: The Boolean model frequently returns either too few or too many documents in response to a user query
Vector space model
文档也可以作为词和词组的 “bag”. 每一个文档可以表示为一个向量. 权重不仅为0或1.基于TF或TF-IDF计算每个词 的权重. Term Frequency (TF) Scheme: dj文档中ti的 权重就是在文档dj中出现ti的次数, 用 fij表示. 归一化方法也可以使用.
13
词TF-IDF权重法
所知道的最好的权重 方法
TF: term frequency IDF: inverse document frequency. N: 总文档数 dfi: 具有ti 的文档数目.
最后的TF-IDF词权重:
14
vector space model的检索
查询q用同样或类似的方法表示. 查询q对文档di的关系: 比较查询q和文档di的 相似性. 余弦相似性(两个向量夹角间的余弦值)
余弦一般也在文本聚类中使用
15
例子
三个词表示的文档向量:
hardware, software, users the vocabulary
A1=(1, 0, 0), A4=(1, 1, 0), A7=(1, 1, 1) A2=(0, 1, 0), A5=(1, 0, 1), A8=(1, 0, 1). A3=(0, 0, 1) A6=(0, 1, 1) A9=(0, 1, 1)
文档集定义为:
如果查询是“hardware and software” 那么检索的文档结果是什么?
16
例子 (cont.)
布尔查询匹配:
将检索到 A4, A7 (“AND”) 结果: A1, A2, A4, A5, A6, A7, A8, A9 (“OR”)
q=(1, 1, 0) S(q, A1)=0.71, S(q, A2)=0.71, S(q, A4)=1, S(q, A5)=0.5, S(q, A7)=0.82, S(q, A8)=0.5, 检索的文档集 (排序)=
相似性匹配 (余弦):
S(q, A3)=0 S(q, A6)=0.5 S(q, A9)=0.5
{A4, A7, A1, A2, A5, A6, A8, A9} 17
Okapi相关度方法
另一个直接计算每一文档与查询的相关度. Okapi方法和它的变异变量都是一些流行的方法.
18
关联性反馈
关联性反馈是提高检索效果的方法之一;步骤:
首先用户从初始的检索文档中识别出相关(Dr)和不 相关(Dir)的文档 通过从样本中相关和不相关的文档提取的词组来 拓展q产生qe 执行第二轮检索.
Rocchio 方法(α, β 和 γ 是参数)
19
Rocchio文本分类器
事实上称为Rocchio分类器的Rocchio变异方 法也能提高查询的效果
因此其他的机器学习方法也能. Why?
通过每一类i的向量ci原型构建Rocchio分类器 (这种情况下的相关 或 不相关):
在分类中, 使用了余弦.
20
文本预处理
提取词(词组) 移除停用词 词干提取 频率统计和TF-IDF权重计算.
21
停用词移除
许多常用词在IR和文本挖掘中是无用的 – 这些词称为停用 词. the, of, and, to, …. 必须构建每一特定领域的停用词表 为何要移除停用词?
降低索引 (或数据)文件的大小 停用词计数占所有词计数的20-30%. 提高效率和效益 停用词对搜索和文本挖掘是无用的 停用词可能增加检索系统的负担
22
词干提取
找出词干和词根的技术. 例如:
user users used using
engineering engineered engineer
词干: use
engineer
无用的: 提高IR和文本挖掘的效率
相似词匹配 主要的作用是提高召回率 融合具有相同词根(干)词,可以降低索引40-50%的大小.
23
降低索引大小
基本的词干提取方法
使用规则集. 例如: 结尾移除法
如果一个词的结尾是辅助的s, 删除s. 如果结尾是es, 去除s. 如果结尾是ing, 删除ing, 除非剩下的仅是一个字符或th. 如果结尾是ed,在辅助符之前删除ed,除非仅剩下一个字符. …... 如果一个词结尾是 “ies”,而非“eies”或“aies”,则 “ies --> y.”
24
词变换
频率计数 + TF-IDF
对一词在一个文档中出现的次数计数.
该词在文档中的出现次数表示其重要程度.
如果一词在一文档中频繁出现, 文档极有可能处理 的是与该词相关的事情.
统计包含该词收集的文档数目 TF-IDF 就能计算出来.
25
计算: 精度和查全率
给定的查询:
是否所有检索的文档是相关的? 是否所有相关的文档被检索? 第一个问题是关于搜索的精度(precision) 第二个问题是关于搜索的覆盖率—查全率 (recall).
26
度量系统的效果:
精度—查全率曲线
27
不同的检索算法比较
28
多重查询的比较
计算所有查询的平均精度.
画出精度的召回曲线 进行F-score计算.
29
精度排序
对选出的排序位置上计算其精度. 主要用于Web搜索的估算. 对Web搜索引擎,能计算出精度为前5, 10, 15, 20, 25 和 30的返回页面
用户较少查看30页之后的页面. 原因?
查全率在Web搜索中意义不大.
30
作为巨大的IR系统——Web搜索
一个网络爬虫(robot)收集所有的网页. 服务器建立一个巨大的倒排序数据库和其 他的索引数据库 在查询(搜索)时,搜索引擎进行不同类型的 查询向量匹配.
31
倒排序索引
倒排序索引是所收集文档的一个数据结构
每一不同词(组)后面跟着包含它的文档列表. 找出包含查询词(组)的文档. 多重查询词(组)也容易处理.
在检索中,需要一定量的时间:
32
实例
下面介绍一个例子,之前要了解一下Trie 树
Trie,又称单词查找树,是一种树形结构,是一种哈希树 的变种。典型应用是用于统计和排序大量的字符串(但不 仅限于字符串),所以经常被搜索引擎系统用于文本词频 统计。它的优点是:最大限度地减少无谓的字符串比较, 查询效率比哈希表高。 它有3个基本性质: 1. 根节点不包含字符,除根节点外每一个节点都只包含 一个字符。 2. 从根节点到某一节点,路径上经过的字符连接起来, 为该节点对应的字符串。 3. 每个节点的所有子节点包含的字符都不相同。 这是一个Trie结构的例子:
Trie树
例子
36
构建索引
Easy! See the example,
37
使用倒排序索引搜索
给定一个查询q, 按照下面的步骤搜索: 1.(词搜索): 从倒排序索引中找出查询q包含的每 一词(组). 2.(结果匹配): 融合结果找出具有q包含的词(组) 的文档. 3.(排序分数的计算): 对结果中文档/页面排序,使 用
基于内容的排序 基于链接的排序
38
隐式语义索引
Latent semantic indexing 在随机的词组下,隐藏着语义结构,然 后利用奇异值分解(singular value decomposition: SVD)的统计学方法,来估算这种结构并 去除噪音。
2011-4-30
南京航空航天大学 陈永洲
39
步骤
Create the frequency matrix Frequency_Matrix. SVD construction: Compute the singular valued decomposition of Frequency_Matrix by splitting Frequency_Matrix into 3 matrices, U, S, V. Vector identification: For each document d, let vec(d) be the set of all terms in Frequency_Matrix whose corresponding rows have not been eliminated. Index creation: Store the set of all vec(d)’s, indexed by one of a number of techniques (such as TV-tree).