精华内容
下载资源
问答
  • 信息检索复习笔记

    万次阅读 2020-12-17 17:14:46
    从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)找出满足用户信息需求的资料(通常是文档)的过程 信息检索的本质 确定文档和查询之间的相关度是IR的核心问题 IR作为一门学科,是研究信息的获取...

    第一讲 搜索

    IR(信息检索是什么样的学科)

    实质上是融合了文本及多媒体检索、数据挖掘、机器学习和自然语言处理的综合学科

    为什么要进行信息检索?信息过载

    搜索

    搜索的过程

    从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程

    信息检索的本质

    确定文档和查询之间的相关度是IR的核心问题

    IR作为一门学科,是研究信息的获取(acquisition)、表示(representation)、存储(storage)、组织(organization)和访问(access)的一门学问

    信息检索本质:给定一个查询Q,从文档集合C中,计算每篇文档DQ相关度,并排序(Ranking)

    什么是相关度

    相关度是一个查询和文档相关的程度,形式上说,信息检索中的相关度是一个**函数*f*,**输入是查询Q、文档D和文档集合C,返回的是一个实数值 R, R = f(Q,D,C)

    相关度(relevance)不同于相似度(Similarity):

    ​ 相关度通常只有相对意义

    ​ (1)相关取决于用户的判断,是一个主观概念

    ​ (2)不同用户做出的判断很难保证一致

    ​ (3)即使是同一用户在不同时期、不同环境下做出的判断也不尽相同

    定义“相关性”的两个角度:(了解)

    系统角度:系统输出结果,用户是信息的接受者。

    用户角度:观察用户对检索结果的反应,是系统输出向用户需求的投射

    现代信息检索研究中仍然主要采用系统角度定义的主题相关性概念,当然也强调考虑用户的认知因素

    信息检索模型

    描述信息检索中的文档、查询和它们之间关系(匹配函数)的数学模型

    信息检索主要技术

    (1)文本分析(NLP)

    (2)建立索引

    (3)查询,包括查询分析(NLP),相关度计算(和信息检索模型相关)

    (4)排序(实验室评价)

    搜索引擎

    工作原理

    (1) 爬行和抓取

    (2) 文本分析

    (3)建立索引(可能会考的知识点:蜘蛛抓取的页面文件分解、分析,并以巨大表格的形式存入数据库,这个过程即是索引(index).搜索引擎的核心数据结构为倒排文件(也称倒排索引))

    (4)搜索词处理 (5)排序 (6)用户反馈

    搜索引擎评价

    (1) 覆盖面 (2)更新周期 (3)响应速度 (4)排序结果是否满足用户的查询要求

    第二讲 网络爬虫技术

    爬虫定义

    一种自动获取网页内容的程序,从一个或若干初始网页的**URL开始,获取并解析它们,提取它们指向的URL,将提取的url放在队列中,获取队列中的每个URL并重复此过程,直到满足系统的一定停止条件**

    通俗的讲,也就是通过HTML源码解析来获得想要的内容

    爬虫必须具有的功能

    4.1 礼貌性: Web服务器有显式或隐式的策略控制爬虫的访问

    只爬允许爬的内容、尊重 robots.txt

    4.2 鲁棒性: 能从采集器陷阱中跳出,能处理Web服务器的其他恶意行为

    4.3 性能和效率: 充分利用不同的系统资源,包括处理器、存储器和网络带宽

    优先抓取“有用的网页”

    4.4 分布式: 可以在多台机器上分布式运行

    ​ •分布式带来的问题

    ​ –哈希表判重

    ​ •解决方法:

    ​ –A、明确每台下载服务器的分工,即一看到某个URL就知道交给哪台服务器去执行

    ​ –B、批量处理,减少通信的次数

    可扩展性: 添加更多机器后采集率应该提高

    4.5 新鲜度: 对原来抓取的网页进行更新

    4.6功能可扩展性:支持多方面的功能扩展,例如处理新的数据格式、新的抓取协议等

    爬取框架

    3、搜索策略:深度优先, 广度优先

    ​ 实际应用的网络爬虫不是对网页次序的简单BFS或者BFS,而是一个相对复杂的下载优先级排序的方法,管理这个系统的叫做“调度系统”(Scheduler),会有一个Priority Queue。BFS成分更加多一些。

    4、URL 判重

    建立一个散列,其中存放访问过每一个网址

    在其中存放网址经过散列函数计算出的对应的固定长度的散列值

    在平均情况下**O(1)**的时间内查找和更新占用O(n)空间的网址列表

    利用哈希法,URL经过哈希函数得到哈希码,判断是否已经在散列中来判断是否爬取过

    爬虫分类

    •5.1基于整个Web的信息采集(Universal Web Crawling)

    ​ •传统的采集方式

    ​ –作为门户搜索引擎和大型的Web服务提供商的数据收集部分

    ​ –是指从一些种子URL扩充到整个Web的信息采集

    •5.2 增量式Web信息采集 (Incremental Web Crawling )

    •5.3 基于主题的Web信息采集(Focused Web Crawling )

    •5.4 基于用户个性化的Web信息采集(Customized Web Crawling )

    •基于元搜索的信息采集(Metasearch Web Crawling)

    常见的开源爬虫

    Nutch Heritrix

    •包括全文搜索和Web爬虫

    ​ –包括爬虫crawler和查询searcher。

    ​ •Crawler主要用于从网络上抓取网页并为这些网页建立索引。

    Pandas模块

    lxml模块

    lxml是一个HTML/XML的解析库

    •主要功能是如何解析和提取HTML/XML数据

    第三讲 网页分析技术

    网页解析方法

    –一种是将文档看作字符流;

    •正则表达式

    –一种是将文档看作树结构

    •基于DOM

    正则表达式

    1、正则表达式的定义

    正则表达式是对**字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。**

    2、基于正则表达式的信息提取的步骤

    (1)在获取数据前应尽量去除无用部分(2)提取网页内的链接 (3)提取网页标题(4)提取网页内的文本

    3、正则表达式的工具有哪些

    Java java.util.regex包 Python的 re模块

    4、正则表达式匹配特点是什么

    (1)正则表达式匹配速度快

    (2)但表达能力较弱,只具有正规文法的表示能力。

    (3)在对网页内容的信噪比要求不高的情况下可以使用基于正则表达式匹配的爬取程序

    (4)受网页噪音影响较大

    DOM

    5、什么叫做DOM

    文档对象模型(document object model,DOM),DOM将一个XML文档转换成一个对象集合,然后可以任意处理该对象模型。

    DOM将HTML视为树状结构的元素,所有元素以及他们的文字和属性可通过DOM树来操作与访问。

    6、开源HTML解析器(能够列出一两种即可)

    (1)JAVA:HTMLParser,jsoup

    (2)C/C++:htmlcxx

    (3)Python:Beautiful Soup

    bs 解析器

    –使用自带的html.parser解析,

    ​ •速度慢但通用

    ​ •soup = BeautifulSoup(html, “html.parser”)

    –Html5lib

    ​ •不规范的html文本转为规范的文本再进行解析

    ​ 用浏览器的方式解析文档

    –lxml

    ​ •python的一个解析库,

    ​ •支持HTML和XML的解析,

    ​ •支持XPath解析方式

    ​ •而且解析效率非常高

    ​ •lxml只会局部遍历

    两种方法比较

    正则表达式匹配

    (1)正则表达式匹配速度快,但表达能力较弱,只具有正规文法的表示能力。

    (2)在对网页内容的信噪比要求不高的情况下可以使用基于正则表达式匹配的爬取程序

    HTML DOM树

    (1)提取HTML DOM树提取在解析HTML时速度较慢,但其表达能力相当于上下文无关文法

    (2)在网页自动分类等需要进行网页去噪处理的情况时使用基HTMLDOM树的爬取程序

    Python爬虫

    工作过程

    –把URL地址中指定的网络资源从网络流中读取出来,保存到本地

    过滤

    Re

    bs4

    Scrapy shell

    交互终端,不启动爬虫的情况下调试代码

    直接用来测试XPath或者CSS表达式,不用import响应模块

    查看运行的结果方便分析网页,测试表达式是否获取到了数据

    python爬虫框架 Scrapy

    •快速、高层次的屏幕抓取和web抓取框架,

    •用于抓取web站点并从页面中提取结构化的数据。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rmF6m42-1608430839949)(C:\Users\yandalao\AppData\Roaming\Typora\typora-user-images\image-20201216162520302.png)]

    •爬虫文件novel_spider.py

    分析需要提取的数据

    ​ •在parse方法中做数据的提取

    ​ •使用Xpath,从页面的HTML Source里面选取要要抽取的数据

    Xpath

    XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言

    •XPath基于XML的树状结构,提供在数据结构找寻节点的能力。

    xpath为scrapy中的解析方式

    xpath函数返回的为列表

    ​ –列表中存放的数据为Selector类型数据。

    ​ –解析到的内容被封装在Selector对象中,需要调用extract()函数将解析的内容从Selector中取出

    Scrapy项目

    •制作 Scrapy 爬虫 一共需要四步:

    –新建项目 :新建一个新的爬虫项目

    –明确目标 (编写items.py):明确你想要抓取的目标

    ​ •items.py: 需要提取的数据结构定义文件

    ​ –Item 定义结构化数据字段,用来保存爬取到的数据,

    ​ •修改novel_spider.py : 分析需要提取的数据

    –制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页

    –存储内容 (pipelines.py):设计管道存储爬取内容

    yield

    •只要是数据持久化存储,parse方法必须有返回值(也就是return后的内容)

    ​ –return items

    yield将函数转换成生成器。我们可以理解成一种特殊的return方法。

    •yield返回的是一个生成器,也是可迭代对象,有利于减小服务器资源

    •生成器相当于一种方法而不是具体的信息,占用内存小。

    爬取多个网页

    •start_urls

    •起始爬取列表,可以是多个url

    start_urls = (‘http://example.com/page1’, ‘http://example.com/page2’,)

    爬取多层网页

    •解析函数的末尾,通过Request方法对下一个页面手动发起请求

    •**先提取二级页面url,**再对二级页面发送请求

    比较

    •request和bs4

    页面级爬虫,功能

    –并行性考虑不足,性能较

    –重点在于页面下载

    •Scrapy

    网站级爬虫,框架

    并行性好,性能较

    –重点在于爬虫结构

    元搜索引擎

    •元搜索引擎又称多搜索引擎

    •通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索工具的全局控制机制

    第四讲 爬虫与网站的博弈

    本章知道每个方面的思路和所用工具就可

    Robot 协议

    •网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

    User-agent

    •向访问网站提供访问者信息

    •UA字符串在每次浏览器 HTTP 请求时发送到服务器

    –反爬虫

    IP屏蔽

    爬虫:对策

    连接代理服务器

    –写了个IP代理池

    •多个IP并行

    增大爬取时间间隔

    用户登陆

    分析登陆过程的方法

    4.1 发送post请求

    4.2 分析post过程中隐藏的变量名

    4.3 分析 Cookie

    ​ –http 请求带着Cookie

    ​ •它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,用于用户身份的辨别

    •流程

    ​ –**第一个网页通过GET(****POST)参数提交参数

    ​ •参数序列化成字符串

    ​ •和基础****url 拼接

    ​ •Urllib.request.urlopen**()**

    ​ –后台接受请求,生成cookie,发给用户

    ​ –用户带着Cookie继续访问其他网页

    4.4 携带Cookie访问已登陆网站

    •保存cookie到文件

    •从文件中读取cookie并访问

    •利用cookie模拟登录

    模拟浏览器进行交互

    selenium

    •反爬虫: 用户登陆

    1. –输入用户名
    2. –输入口令

    –点击登陆按钮

    •Selenium用程序模拟整个操作过程

    1. –忽略post或者get方式差异
    2. –不需要知道参数名字

    处理Cookie:

    selenium 获取登录****cookies,

    ​ –selenium有一个 get_cookies() 函数可以帮我们获取当前网页的cookie值

    保存cookies到文件

    并添加cookies自动登录

    AJAX 动态加载

    •通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新

    在不重新加载整个网页的情况下,对网页的某部分进行更新

    验证码

    图像识别

    6.1 获取图片

    分析网页下载图片

    屏幕截图

    6.2 图片处理 Pillow与PIL模块

    6.3 获取图片中文字内容 ocr

    -6.4 图片滑动验证码

    第五讲 词项词典

    如何建立词项词典?

    一、文档解析(Parsing a document)

    ~~二、词条化 (Tokenization)~~这俩不考

    三、词项归一化 (Normalization)

    四、词干还原 (Stemming)

    五、词形归并 (Lemmatization)

    六、去掉停用词 (Stop Words)

    词项归一化

    将文档和查询中的词条“归一化”成一致的形式(希望USA和U.S.A.之间也能形成匹配 )

    归一化的结果: 在IR系统的词项词典中,形成多个近似词项的一个等价类

    策略:建立同义词扩展表

    a) 为每个查询维护一张包含多个词的查询扩展词表

    b) 在建立索引建构时就对词进行扩展

    词干还原

    a) 通常指去除单词两端词缀的启发式过程

    b) 词干还原能够提高召回率,但是会降低准确率

    词形归并

    a) 利用词汇表和词形分析来减少屈折变化的形式,将其转变为基本形式。

    b) 词形归并可以减少词项词典中的词项数量

    词干还原和词形归并的区别

    a) 代表意义不同。

    ​ i. Stemming通常指很粗略的去除单词两端词缀的启发式过程。

    ​ ii. Lemmatization通常指利用词汇表和词形分析来去除屈折词缀,从而返回词的原形或词典中的词的过程。

    b) 两个过程的区别还在于:

    ​ i. 词干还原在一般情况下会将多个派生相关词合并在一起,

    ​ ii. 而词形归并通常只将同一词元不同屈折形式进行合并。

    c) 词干还原和词形归并,都体现了不同语言之间的差异性

    d) 词干还原过程可能仅返回 s,

    e) 而词形归并过程将返回see或者saw,

    停用词

    a) 应用太广泛,区分度太低

    b) 对这样的词搜索引擎无法保证能够给出真正相关的搜索结果,难以帮助缩小搜索范围,同时还会降低搜索的效率

    消除停用词的优缺点

    a) 优点:

    ​ i. 停用词消除可以减少term的个数

    ​ ii. 缩小搜索范围,

    ​ iii. 提高搜索的效率

    ​ iv. 机器学习文本分类算法的文档的预处理

    b) 缺点:

    ​ i. 有时消除的停用词对检索是有意义的

    如何确定停用词

    a) 查表法

    b) 基于文档频率

    第六讲 中文分词

    分词方法

    a) 基于理解的分词方法

    NLP、语义分析、句法分析

    b) 基于字符串匹配的分词方法

    查字典。

    按照扫描方向:正向匹配和逆向匹配

    按照扫描长度:最大匹配和最小匹配

    a) 优点:简单,占用资源少,可自定义词库

    ​ i. 程序简单易行,开发周期短;

    ​ ii. 仅需很少的语言资源(词表),

    ​ iii. 不需要任何词法、句法、语义资源。

    ​ iv. 可以自定义词库,增加新词

    b) 缺点 : 效果差

    ​ i. Out of Vocabulary

    ​ ii. 歧义消解能力差;

    ​ iii. 切分正确率不高,一般在95%左右。

    c) 基于统计的分词方法

    字与字相邻出现的频率来反应成词的可靠度,统计语料中相邻出现的各个字的组合的频度,当组合频度高于某一个临界值时,我们便可认为此字组可能构成一个词语

    基于统计的分词方法的优缺点:

    a) 优点:

    ​ i. 分词准确度高;

    ​ ii. 能够平衡地看待词表词和未登录词的识别问题。

    b) 缺点:

    ​ i. 局限性,会经常抽出一些共现频度高、但并不是词的常用字组

    ​ ii. 对常用词的识别精度差,时空开销大

    ​ iii. 学习算法的复杂度往往较高,计算代价较大,依赖手工定义的特征工程

    基于HMM的中文分词方法

    HMM作用

    用来描述一个含有隐含未知参数马尔可夫过程。

    隐含状态之间存在转换概率;隐含状态和可见状态之间存在发射概率

    HMM模型是一个五元组:

    StatusSet: 状态值集合

    ObservedSet: 观察值集合

    TransProbMatrix: 转移概率矩阵 A

    EmitProbMatrix: 发射概率矩阵 B

    • –在某一状态下对应到某字的概率
    • –P(Observed[i]|Status[j])
      • •基于观察值只取决于当前状态值这一假设
      • •其实也是一个条件概率

    InitStatus: 初始状态分布

    ​ –句子的第一个字属于{B,E,M,S}这四种状态的概率

    •HMM三要素[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZlhDCqDG-1608430839951)(image\image-20201216190517905.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BROKijaw-1608430839953)(image\image-20201216190525015.png)]

    HMM模型可以用来解决三种问题

    a) 模型参数学习问题

    b) 预测问题

    c) 评估观察序列概率

    HMM分词

    预测问题,也叫解码问题

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGSEDXN9-1608430839955)(image\image-20201216190642734.png)]

    Viterbi 算法

    如何分词:将句子中的词看成有可能四个状态BMES,最后求出最有可能的状态序列(根据路径)。就分词成功

    一种动态规划算法,它用于寻找最有可能产生 观测事件 序列的维特比路径——隐含状态序列

    •二维数组 weight[4] [7]

    ​ –4是状态数(0:B,1:E,2:M,3:S),

    ​ –7是输入句子的字数。

    ​ –P(Observed[i]|Status[j])

    ​ »比如 weight[0] [2] 代表 状态B的条件下,出现‘市’这个字的可能性。

    •二维数组 path[4] [15]

    –path[0] [2] 代表 weight[0] [2]取到最大时,前一个字的状态,

    •比如 path[0] [2] = 1, 则代表 weight[0] [2]取到最大时,前一个字(也就是明)的状态是E。

    第七讲 布尔模型与倒排索引

    在这里插入图片描述

    1、什么是信息检索模型

    信息检索模型(IR model),依照用户查询,对文档集合进行相关排序的一组前提假设和算法。IR模型可形式地表示为一个四元组< D, Q, F, R(qi,dj) >

    D是一个文档集合,Q是一个查询集合,R(qi,dj) 是一个排序函数,它给查询qi和文档 dj 之间的相关度赋予一个排序值,F是一个框架,用以构建文档,查询以及它们之间关系的模型

    2、基于内容的信息检索模型有哪些?

    • 集合论模型:布尔模型、模糊集合模型、扩展布尔模型

    • 代数模型: 向量空间模型、广义向量空间模型、潜在语义标引模型、神经网络模型

    • 概率模型: 经典概率论模型、推理网络模型、置信(信念)网络模型

    • 深度学习模型

    3、布尔模型是什么

    一种简单的检索模型,建立在经典的集合论和布尔代数的基础上

    遵循两条基本规则:

    (1)每个索引词在一篇文档中只有两种状态:出现或不出现,对应权值为 0或1。

    (2)每篇文档:索引词(0或1)的集合

    进行查询的时候,用布尔表达式进行匹配,计算二值的相关度。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Py4ldaW5-1608430839958)(image\image-20201217120733627.png)]

    4、什么是bag of words 模型

    在信息检索中,Bag of words model假定

    (1)对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,

    (2)文本中每个词的出现都是独立的,不依赖于其他词是否出现,在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。

    5、搜索引擎核心数据结构倒排文件(Inverted Files)(也叫倒排索引)

    6、什么是倒排索引

    有词项和倒排记录组成,**词项词典:**对于每一个词项,存储所有包含这个词项的文档的一个列表。**倒排记录表:**一个文档用一个序列号docID来表示。

    •建立索引的步骤:

    –词条序列Token Sequence

    ​ •(修改过的词条,文档ID)对 序列

    –排序

    ​ •先按照词条排序,

    ​ •再按照docID排序

    –构建词典和倒排表

    ​ •同一篇文档中多次出现的词被合并

    ​ •分割成词典和倒排表

    9、布尔检索模型的特点是什么

    优点:(1)查询简单,因此容易理解(下面的具体说明理解即可)

    • 布尔模型也许是IR系统中的最简单的模型

    • 是近30年来最主要的商业搜索工具

    • 当前使用的很多系统依然是使用的布尔模型

    • 电子邮件,图书馆分类系统,mac osx的spotlight

    (2)通过使用复杂的布尔表达式,可方便地控制查询结果

    • 同义关系 电脑 OR 计算机

    • 词组 数据 AND 挖掘

    缺点 (1)准确匹配,信息需求的能力表达不足。不能输出部分匹配的情况

    (2)无权重设计 无法排序

    (3)用户必须会用布尔表达式提问,一般而言,检出的文档或者太多或者太少。

    (4) 很难进行自动的相关反馈

    第八讲 向量空间模型

    排序检索

    系统根据文档与query的相关性排序返回文档集合中的文档;有布尔查询自由文本查询两种方式

    Jaccard 系数

    • 一种常用的衡量两个集合A,B重叠度的方法

    • Jaccard(A,B) = |A ∩ B| / |A ∪ B|(回答这个公式即可)

    • Jaccard(A,A) = 1

    • Jaccard(A,B) = 0 if A ∩ B = 0

    • 集合A和B不需要具有同样的规模

    –没有考虑

    ​ •文档长短

    ​ •词项频率(词项在文档中出现的次数)

    ​ •罕见词比高频词的信息量更大,更加具有区分度

    词项频率

    1. 词项t在文档d中出现的次数,记为tft,d)

      一种替代原始tf的方法: 对数词频 原始的词频tf以10为底取对数再加一

    2. 什么是idf:是逆文档频率,idft = log10(N/dft),df是文档频率,指出现词项的文档数目

      文档频率 (Document frequency,df)

      文档频率:出现词项的文档数目

      dft 文档集合中包含t的文档数目

      – 与词项t包含的信息量成反比

      dft <= N (N是文档的总数)

      idf (inverse document frequency)逆文档频率

      idft = log10(N/dft)

      idft 是反映词项t的信息量的一个指标

      – 用log (N/dft) 代替N/dft 来抑制idf的作用

    3. tf-idf是什么

      是信息检索中最著名的权重计算方法,表示t对于文档d的重要程度,词项t的tf-idf 由它的tf和idf组合而成 wt,d=(1+log tft,d) × log10(N/dft)

      (理解一下和重要程度是否符合:tf-idf值随着词项在单个文档中出现次数(tf)增加而增大,tf-idf值随着词项在文档集中数目(df)增加而减小)

    4. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9lj0KLn-1608430839959)(image\image-20201217145033660.png)]

    向量空间模型

    是一个**|V|维实向量空间**(V是词项集合,|V|表示词项个数),空间的每一维都对应一个词项,每篇文档表示成一个基于tf-idf权重的实值向量,向量的维度是词项的个数,文档是空间中的点或者向量,这就是向量空间模型

    向量相似度计算

    余玄相似度:(认为cos(di,q) > cos(dj,q),夹角更小,所以di比dj与q更相关)

    R(d,q) = cos(d,q) = d·q/|d|×|q|

    文档长度归一化

    •一个文档向量除以它的L2 范数(Xi的平方和取根号)就是给这个文档进行了长度归一化

    向量空间模型特点

    优点:

    (1)帮助改善了检索结果。

    (2)部分匹配的文档也可以被检索到。

    (3)可以基于向量cosine 的值进行排序,提供给用户。

    缺点:

    (1)这种方法假设标记词是相互独立的,但实际可能不是这样,如同义词、近义词等往往被认为是不相关的词

    (2)维度非常高:特别是互联网搜索引擎,空间可能达到千万维或更高

    (3)向量空间非常稀疏:对每个向量来说大部分都是0

    第九讲 检索排序

    精确top K 检索及其加速办法

    (一般)步骤:对每个文档评分(余弦相似度),按照评分高低排序,选出前K个结果

    如何加速:

    方法一:快速计算余弦

    方法二:堆排序法N中选K(不对所有文档的评分结果排序而直接选出Top K篇文档)只是缩减了排序这一步骤

    方法三:提前终止计算 (不需要计算所有篇文档的得分

    非精确top K检索

    简答题不用细答,看看了解

    基本思想:找一个文档集合AK < |A |<< N,利用A中的top K结果代替整个文档集的top K结果

    下面的策略就是为了缩减文档的数量

    • 策略一:索引去除(Index elimination)

    ​ 只考虑那些词项的idf 值超过一定阈值的文档

    ​ 只考虑包含多个查询词项

    • 策略二:胜者表(Champion list) 每个词项t对应tf值高的表

    • 策略三:静态得分 不仅相关,还权威,根据相关和权威度加权,对doc进行排序

    • 策略四:影响度(Impact)排序 以词项为单位,串行遍历词项的倒排索引表

    • 策略五:簇剪枝方法—预处理

    Pagerank算法

    •随机游走模型 是个一阶马尔可夫链

    ​ –用来描述不稳定的移动。

    ​ –移动节点随机选择一个方向和速度来从当前位置移动到新的位置

    PageRank的思路:在随机游走过程中访问越频繁的网页越重要

    PageRank的一般定义

    •PageRank一般定义的想法是在基本定义的基础上导入平滑项

    一个一定平稳分布的马尔可夫链:

    ​ M是转移矩阵,–R 是n维向量,表示的就是有向图的一般PageRank

    R=dMR+1dn1R=d M R+\frac{1-d}{n} 1

    ​ •第一项表示(状态分布是平稳分布时)依照转移矩阵M访问各个结点的概率,

    ​ •第二项表示完全随机访问各个结点的概率

    • 第一项表示:•在任意一个网页上,浏览者或者以概率d决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页
    • 第二项表示:•或者以概率(1-d)决定完全随机跳转,这时以等概率1/n跳转到任意一个网页
    • •第二个机制保证从没有连接出去的超链接的网页也可以跳转出。这样可以保证平稳分布,即一般PageRank的存在,因而一般PageRank适用于任何结构的网络。

    对于一个节点A

    PR(A)=(PR(B)L(B)+PR(C)L(C)+PR(D)L(D)+)d+1dNP R(A)=\left(\frac{P R(B)}{L(B)}+\frac{P R(C)}{L(C)}+\frac{P R(D)}{L(D)}+\cdots \cdot \cdot\right) d+\frac{1-d}{N}

    其中,PR(A)表示页面A的级别,页面Ti链向页面A,L(Ti) 是页面Ti 链出的链接数量

    迭代算法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CgRIEJHX-1608430839960)(image\image-20201217155401700.png)]

    HITS算法

    了解思想就行

    • 在HITS算法中,对每个网页都要计算两个值**:权威值(authority)与中心值(hub)**

    HITS和PageRank的区别

    a.HITS算法将重要性分为两个值权威值(authority)与中心值(hub),PageRank只计算一个值

    b.HITS和查询有关系,PageRank算法和查询无关

    机器学习排序

    步骤:

    –人工标注训练数据,给出文档和查询相关度

    –文档特征抽取、确定特征数量,文档转化为特征向量

    –学习分类函数、

    -在实际搜索系统中采用机器学习模型

    它有以下3种方法:

    (计算损失函数的方法,也是构造训练集的方法)

    单文档方法

    PointWise Approach

    • 损失函数评估单个 doc 的预测得分和真实得分之间差异

    文档对方法

    PairWise Approach

    • 是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系

    文档列表方法

    ListWise Approach

    • 搜索结果列表整体作为一个训练实例

    第10讲 信息检索的评价

    检索评测基础

    、•信息检索系统的目标是较少消耗情况下尽快、全面返回准确的结果。

    测试集由一个文档集、一组信息查询实例、对应于每个信息查询实例的**一组相关文档(由专家提供)**所组成

    无序评测

    查全率和查准率

    无序检索结果的评价

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ri4IinkS-1608430839961)(image\image-20201217161456944.png)]

    查准率(Precision):返回的结果中真正相关结果的比率,也称为查准率, P∈ [0,1]

    召回率(Recall): 返回的相关结果数占实际相关结果总数的比率,也称为查全率,R∈ [0,1]
    P=RRRR+RNR=RRRR+NR P=\frac{R R}{R R+R N} \quad R=\frac{R R}{R R+N R}
    关于召回率的计算:增加一个缓冲池: •对多个检索系统的Top N个结果组成的集合进行人工标注,标注出的相关文档集合作为整个相关文档集合。查准率不变,召回率增大

    精确率,不用它

    平均

    –宏平均(Macro Average): 对每个查询求出某个指标,然后对这些指标进行算术平均

    –微平均(Micro Average): 将所有查询视为一个查询,将各种情况的文档总数求和,然后进行指标的计算

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pBY2WnOS-1608430839962)(image\image-20201217162720957.png)]

    F值(F-measure)

    F值(F-measure):召回率R和查准率P加权调和平均值

    • F1 标准则综合了精度和查全率,将两者赋予同样的重要性来考虑。F1的计算由下面的公式决定(调和平均数)
    F(i,j)=2×recall(i,j)× precision(i,j)recall(i,j)+precision(i,j) F(i, j)=\frac{2 \times \operatorname{recall}(i, j) \times \text { precision}(i, j)}{\operatorname{recall}(i, j)+\operatorname{precision}(i, j)}

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8TG2e0UG-1608430839963)(image\image-20201217162932501.png)]

    调和平均值
    F=21r+1p F=\frac{2}{\frac{1}{r}+\frac{1}{p}}

    排序评测

    R-查准率是什么

    • 计算序列中第R个位置文献的查准率。在公式里指分母

    • R是指与当前查询相关的文档总数.

    • R=10, R-查准率=4/10;

    • R=3, R-查准率=2/3

    查准率/查全率曲线

    横轴查全率,纵轴查准率

    曲线下的面积被称为AP分数(Average precision score)

    去掉锯齿,对一x取最大y

    Mean Average Precision (MAP)是什么

    • 平均查准率均值

    • MAP是多个查询/排名的平均精度

    • 在每个相关文档位置上查准率的平均值,被称为平均查准率 Average Precision (AP)

    也就是对每个查询相关的R-查准率(在R位置上的那个文档是相关的)累计求和取均值

    NDCG是什么

    一种总体观察检索排序效果的方法,利用检索序列加和(每个搜索结果都要有个评价分,越高越好)的思路来衡量。

    第11讲 概率检索模型

    不考推导,只看思想,只有填空

    看不懂,这点分,不要也罢

    Probability ranking principle PRP概率排名原则

    令x代表集合中的文档。令R代表文件w.r.t.的相关性。给定(固定)查询,令R = 1表示相关,而R = 0不相关。

    • 概率检索模型作为一个分类问题

    • 对于某个文档d来说,如果其属于相关文档子集的概率大于属于不相关文档子集的概率,我们就可以认为这个文档与用户查询q
    是相关的。

    • P(R=1|q,d)代表给定一个文档D对应的相关性概率
    • P(R=0| q,d)则代表该文档的不相关概率

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZfmzRkaD-1608430839964)(image\image-20201216194643050.png)]

    概率检索策略

    1. 估计每个词项对相关性的贡献
    2. 合并以查找文档相关性概率
    3. 通过概率降低顺序对文档进行排序

    BIM Binary Independence Model 二元独立模型

    Binary” =布尔值:文档表示为词项的二进制关联向量

    Independence:term在文档中独立出现

    词包模型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpCcQel0-1608430839965)(image\image-20201216195435537.png)]

    BM25

    BM25是信息索引领域用来计算query与文档相似度得分的经典算法

    • 不同于TF-IDF,BM25的公式主要由三个部分组成:
      • query中每个单词t与文档d之间的相关性
      • 单词t与query之间的相似性
      • 每个单词的权重

    目标:对术语频率和文档长度敏感,同时不添加太多参数

    文件生成模型

    ​ 使用多项式分布从词典中独立绘制单词

    ​ 词项频率(tf)的分布遵循二项式分布-由泊**松(Poisson)**近似

    泊松模型

    ​ 假设文档中的词频(tfi)遵循泊松分布

    ​ •“固定间隔”表示文档长度固定…认为大小恒定的文档摘要•…稍后将修复

    第12讲 隐语义空间

    奇异值分解需要了解,但是不考了

    •用前r大的奇异值来近似描述矩阵

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WX65Uzzn-1608430839966)(C:\Users\yandalao\AppData\Roaming\Typora\typora-user-images\image-20201220095654805.png)]

    PCA主成分分析(回忆计算机视觉)

    隐语义分析 LSA

    在这里插入图片描述

    什么是LSA

    1. –使用统计计算的方法对大量的文本集进行分析,
    2. –从而提取出词与词之间潜在的语义结构,并用这种潜在的语义结构,来表示词和文本
    3. 达到消除词之间的相关性和简化文本向量实现降维的目的

    高维的向量空间模型(VSM)表示中的文档映射低维的潜在语义空间

    基本步骤

    (1)建立词频矩阵

    (2)计算矩阵的奇异值分解

    (3)对于每一个文档d,用排除了SVD中消除后的词的新的向量替换原有的向量

    (4)用转换后的矩阵进行文档索引和相似度计算

    LSA优点

    (1)文档和单词都映射到同一个语义空间,所以可以计算文档和文档的相似度,词项和词项的相似度,词项和文档的相似度

    (2)语义空间的维度明显明显少于源单词-文章矩阵

    最关键的性质:每个奇异值对应的是每个“语义”维度的权重

    •将不太重要的权重置为0,可以保留重要的信息,去掉一些信息“枝节”。。枝节信息可能会使本来应该相似的对象不相似

    LSA缺点

    a) 无法解决多义词的问题

    b) 特征向量的方向没有对应的物理解释

    c) SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练

    d) 维数的选择是ad-hoc的

    e) LSA具有词袋模型的缺点,即在一篇文章,或者一个句子中忽略词语的先后顺序

    f) LSA的概率模型假设文档和词的分布是服从联合正态分布的,但从观测数据来看是服从泊松分布的

    概率潜在语义分析 pLSA

    什么是pLSA

    a) PLSA是以统计学的角度来看待LSA,是基于双模式和共现的数据分析方法延伸的经典的统计学方法

    生成模型

    •在概率统计理论中,

    • –生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。
    • 它给观测值和标注数据序列指定一个联合概率分布

    什么是主题模型?

    1. 一篇文档(Document) 可以由多个主题(Topic) 混合而成
    2. 每个Topic 都是词汇上的概率分布
    3. 每个词都是由一个固定的 Topic 生成的

    “文档-词项”的生成模型的训练?

    a) 按照概率选择一篇文档d

    b) 选定文档后,从主题分布中按照概率选择一个隐含的主题类别p(z|d)

    c) 选定后,从词分布中按照概率p(w|z)选择一个词

    PLSA生成文档的过程?

    a) pLSA中生成文档的整个过程便是选定文档生成主题,确定主题生成词

    b) 自动地发现文档集中的主题(分布)

    ​ i. 根据大量已知的文档-词项信息p(w|d) ,

    ​ ii. 训练出文档-主题p(z|d)和主题-词项p(w|z)

    EM算法

    PLSA有哪些应用?

    根据p(z|d)来的

    a) 文本聚类

    b) 文本分类

    PLSA的优势?

    a) 定义了概率模型,而且每个变量以及相应的概率分布和条件概率分布都有明确的物理解释

    b) 相比于LSA隐含了高斯分布假设,pLSA隐含的Multi-nomial分布假设更符合文本特性

    c) pLSA的优化目标是是KL-divergence最小,而不是依赖于最小均方误差等准则

    d) 可以利用各种model selection和complexity control准则来确定topic

    pLSA不足

    •随着document和term 个数的增加,pLSA模型也线性增加,变得越来越庞大;

    •PLSA可以生成其所在数据集的的文档的模型,但却不能生成新文档的模型。

    •EM算法需要反复的迭代,需要很大计算量;

    •概率模型不够完备

    ​ –不是完整的贝叶斯模型

    –文档-主题p(z|d)和主题-词项p(w|z)是直接根据数据估计出来的,没有进一步引入先验

    这两点在LDA模型做了优化

    LDA模型

    什么是LDA模型?

    a) 一个隐含狄利克雷分布的主题模型

    和pLSA主题模型有什么区别

    增加了狄利克雷的先验知识,所有的参数都不是设定的,而是进行了全贝叶斯化,更符合实际的情况

    GENSIM

    Gensim是一个用于从文档中自动提取语义主题的Python库

    第一步、准备训练语料

    第二步、预处理

    ​ –分词(tokenize the documents)、去除停用词和在语料中只出现一次的词

    第三步、文本向量化

    第13讲 词嵌入

    重点:统计语言,表征学习

    统计语言模型

    什么是语言模型和统计语言模型?

    a) 语言模型根据语言客观事实而进行的语言抽象数学建模

    b) 统计语言模型为上下文相关的特性建立数学模型

    语言模型的公式

    –S :一连串特定顺序排列的词ω1,ω2,…,ωn

    a) S 的概率 P(S)等于每一个词出现的概率相乘

    b) P(S) =*P*(ω1)•*P*(ω2|ω1)•*P*(ω3|ω1,ω2)•••*P*(ωn|ω1,ω2,…,ωn-1)

    什么是n-gram语言模型?

    N-1阶马尔可夫假设:

    ​ 假定文本中的每个词ωi和前面的N-1个词有关,而与更前面的词无关

    对应的语言模型称为N元模型(N-Gram Model)

    统计语言模型、n-gram语言模型有什么应用

    • 文本生成、机器翻译

    • 拼写纠错

    • 语音识别

    • 音字转换

    • 分词

    n-gram语言模型的缺点

    a) 简单有效

    b) 只考虑了词的位置关系,

    c) 没有考虑词之间的相似度,词语法和词语义,

    d) 还存在数据稀疏的问题

    文档重复检测

    判断重复的思路:

    –为每一个web文档通过hash的方式生成一个指纹(fingerprint)。

    –将高维的特征向量映射成一个f-bit的指纹(fingerprint),

    通过比较两篇文章的f-bit指纹的Hamming Distance来确定文章是否重复或者高度近似

    shingl算法

    •核心思想是将文件相似性问题转换为集合的相似性问题

    –给定正整数k及文档d的一个词项序列,可以定义文档dk-shingled中所有k个连续词项构成的序列。

    –a rose is a rose is a rose → 4-Grams

    a_rose_is_a

    ​ rose_is_a_rose

    ​ is a rose is

    ​ a_rose_is_a …

    直观上看,如果两个文档的shingle集合几乎一样,那么它们就满足近似重复

    局部敏感哈希 LSH

    局部敏感哈希可以用来降维

    MinHash的用处

    a) 可以用来快速估算两个集合的相似度。

    b) 用于在搜索引擎中检测重复网页。

    c) 它也可以应用于大规模聚类问题

    SimHash的步骤

    a) 分词、hash、加权、合并、降维

    w指的是每个term的权重

    加权:遇到1则hash值和权值正相乘,遇到0则hash值和权值负相乘 例如W(CSDN) = 100101 4 = 4 -4 -4 4 -4 4

    降维:对于n-bit签名的累加结果,如果大于0则置1,否则置0

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IfucazqJ-1608430839967)(image\image-20201216220909219.png)]

    相似度判断:每篇文档得到SimHash签名值后,接着计算两个签名的海明距离即可

    表征学习和词嵌入

    •表征学习:

    –在机器学习中,表征学习是学习一个特征的技术的集合

    –将原始数据转换成为能够被机器学习来有效开发的一种形式。

    ​ •向量

    •嵌入(embedding)

    ​ –是一种可用于将离散变量表示成连续向量的方法。

    神经网络语言模型

    NNLM

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JBzTbHC-1608430839968)(image\image-20201217085938669.png)]

    知道这个图各部分意思,下面的word2vec就是改进了一下上面

    word2vec

    •对原始的NNLM模型做如下改造:

    1. –移除前向反馈神经网络中非线性的hidden layer( tanh 隐藏层),直接将中间层的embedding layer与输出层的softmax layer连接;
    2. –忽略上下文环境的序列信息:输入的所有词向量均汇总到同一个embedding layer;
    3. –将future words纳入上下文环境

    •连续词袋模型 CBOW

    根据某个词前面的C个词或者前后C个连续的词,来计算某个词出现的概率

    步骤,PPT非常清晰了

    V是词项数量,N是中间向量那个O的维度

    具体步骤:

    1. 模型输入:上下文的one hot表示方式

      ​ –1xV的向量

      ​ –V 词汇表大小

    2. 输入分别跟同一个VxN的大小的系数矩阵W1相乘得到C个1xN的隐藏层hidden layer,

    3. 然后C个取平均所以只算一个隐藏层

    4. •隐藏层跟另一个NxV大小的系数矩阵W2相乘得到1xV的输出层,

      ​ –这个输出层每个元素代表的就是词库里每个词的事后概率。

    5. •输出层需要跟ground truth也就是“coffee”的one hot形式做比较计算loss

    6. •通过大量的数据迭代,使用梯度下降更新W和W’,来最小化loss函数,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yf0THKo1-1608430839969)(image\image-20201217090553751.png)]

    •Skip-Gram Model

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8BKqtI1Y-1608430839970)(file:///D:\360MoveData\Users\yandalao\Documents\Tencent Files\2922610627\Image\C2C\AB502D3E6C82F00132C9127A669EA5E0.jpg)]

    Skip-Gram Model相反,是根据某个词,然后分别计算它前后出现某几个词的各个概率

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dR2lyz5a-1608430839970)(image\image-20201217091825010.png)]

    Skip-gram–名称源于该模型在训练时会对上下文环境里的word进行采样

    •基于成对的单词来对神经网络进行训练,

    ​ –训练样本是 ( input word, output word ) 这样的单词对

    ​ –input word和output word都是one-hot编码的向量。

    ​ –最终模型的输出是一个概率分布

    ​ •输出层使用了sotfmax。

    •模型的本质:

    ​ 计算输入word和输出word的余弦相似度,并进行softmax归一化(想象一下softmax图像,所有的值都被分配到[0,1]之间的数)

    •直接对词典里的 V 个词计算相似度并归一化,显然是一件极其耗时的impossible mission。为了加快速度优化:

    1. 负采样:
    2. –层次Softmax(Hierarchical Softmax)

    word2vec 应用

    列出所有相似词语列表 和程序猿相似词语,比如攻城狮,比如猝死

    词汇的语义的类比 皇帝-皇后=男-女

    寻找对应关系: 男人——男孩 女人——女孩

    第14讲 图片检索

    图像检索

    跨媒体检索Cross-Media Retrieval

    不同媒体映射到同一低维度空间

    •基于文本的[图像检索技术]TBIR

    ​ –查询词:文本

    ​ –搜索引擎

    ​ •爬虫 图片

    ​ •索引 图片对应的文字,锚文本,URL

    ​ •基于图像周围文本的检索

    ​ •基于链接锚文本的检索

    基于内容的图像检索CBIR

    –用户输入一张图片,以查找具有相同或相似内容的其他图片

    ​ CBIR 的关键技术:图像特征提取和特征匹配

    图像特征

    •图像的特征主要包括低层特征(Primitive Features)和语义特征(Semantic Features)

    –低层视觉

    1. •与图像的具体类型或内容无关,

      –颜色、形状、纹理等

    2. •某些先验知识(或假设)

      –人的面部特征

      –指纹特征

    图片的特征有颜色特征、形状特征、纹理特征

    颜色特征

    底层、直观,鲁棒性强

    颜色特征的表示有几种

    1、颜色直方图(Color Histogram) 直方图,就是CV教的那个,但是是对颜色来的,不是灰度

    ​ 没有体现空间信息,平移尺度旋转不变性

    • **2、颜色相关图(Color Correlogram)**不考

    3、颜色矩(Color Moment)

    –在颜色直方图的基础上计算出每个颜色的矩估计

    4、颜色一致性矢量(Color Coherence Vectors, CCV)

    纹理特征

    一般说纹理就是指在图像中反复出现的局部模式和它们的排列规则

    基于统计特征的纹理特征提取

    1.灰度差分统计法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJPGNRYU-1608430839972)(image\image-20201217105234873.png)]

    2.基于灰度共现矩阵的纹理特征 –常用统计量:对比度、相关度、方差、熵

    3.Tamura纹理特征

    •Tamura纹理特征中所有纹理特征都在视觉上有意义。

    对比度(contrast)、粗糙度(coarseness)、方向性(directionality)对于图像检索尤为重要。

    –线像度(1ine likeness)、规整度(regularity)和粗略度(roughness)。

    基于信号处理方法描述纹理特征

    –利用某种线性变换、滤波器或者滤波器组将纹理转换到变换域,

    –然后应用某种能量准则提取纹理特征。

    形状特征

    有一定的语义信息

    •基于轮廓的形状描述符

    1. 链码–差分结果第一位是原链码最后一位和第一位相减的结果。–例如,对于4向链码10030321的一阶差分的结果为03031333

    2. 基于网格的方法

    3. 傅里叶描述子

      –物体轮廓线表示成一个一维的轮廓线函数

      –傅立叶级数中的一系列系数z(k)是直接与边界曲线的形状有关的,称为傅立叶描述子.

      •基于物体轮廓坐标序列的傅立叶描述子具有最佳的形状识别性能.

    4. 感知哈希算法

      •全局特征降维

      (1)对每张图片生成一个**“指纹”(fingerprint)字符串,也就是图片的特征**

      (2)然后比较不同图片的指纹,结果越接近,就说明图片越相似(用海明距离来计算)

      (之前计算文档相似度的局部敏感哈希也是用hash法,比较哈希码的相似度来判断文档相似程度,都是用海明距离)

      那么怎么将图片变为哈希码呢?

      (1)均值Hash算法

      缩小尺寸,收缩色彩度(比如300-64),计算所有像素的灰度平均值,阈值二值化,二值化结果为哈希值

      (2)pHash算法

      (3)颜色分布法–红绿蓝分别有4个区(颜色分段)

      –总共可以构成64种组 4^3。

      •任何一种颜色必然属于这64种组合中的一种——特征为64维向量,计算余弦相相似度

      ​ (4)•内容特征法

      (图片二值化)–原图转成一张较小的灰度图片,确定一个阈值,将灰度图片转成黑白图片

      –两张图片很相似,它们的黑白轮廓应该是相近的

    •基于区域的形状描述符

    大津法Otsu’s method

    a) 证明了 "类内差异最小"与"类间差异最大"是同一件事

    b) 计算方法:

    ​ i. 灰度值小于阈值的像素为 n1 个,

    ​ ii. 大于等于阈值的像素为 n2 个

    ​ iii. w1 和 w2 表示这两种像素各自的比重

    ​ iv. w1 = n1 / n

    ​ v. 类内差异 = w1(σ1的平方) + w2(σ2的平方)

    ​ vi. 类间差异 = w1w2(μ1-μ2)^2

    图像局部特征

    LBP特征

    局部二值模式 Local Binary Patterns,结合了纹理图像结构像素统计关系纹理特征描述方法

    LBP怎么构造

    • LBP算子定义为在3*3的窗口内,

    • 以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素 点的位置被标记为1,否则为0。

    • 3*3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像 素点的LBP值,并用这个值来反映该区域的纹理信息。

    LBP的应用中,如纹理分类、人脸分析等,采用LBP特征谱的统计直方图作为特征向量用于分类识别。可将一幅图片化为多个子区域,分别求每个子区域的统计直方图。

    HOG特征

    关键词:cell,梯度直方图,行人检测

    HOG是什么?

    a) 方向梯度直方图,Histogram of Oriented Gradient, HOG

    b) 一种在计算机视觉和图像处理中用来进行物体检测的特征描述子

    c) 通过计算和统计图像局部区域的梯度方向直方图来构成特征

    Hog特征结合 SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功

    HOG特征如何提取?

    a) 灰度化

    b) 采用Gamma校正法对输入图像进行颜色空间的标准化(归一化)

    c) 计算图像每个像素的梯度

    d) 将图像划分成小cells

    e) 统计每个cell的梯度直方图

    梯度直方图,横轴是梯度方向,y轴是在该梯度方向的梯度值的和

    f) 将每几个cell组成一个block

    g) 将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image的HOG特征descriptor了

    HOG算法的优缺点?

    a) 优点

    ​ i. 由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不 变性,这两种形变只会出现在更大的空间领域上。

    ​ ii. 其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿 势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。

    ​ iii. 因此HOG特征是特别适合于做图像中的人体检测的

    SIFT

    SIFT特征是什么

    尺度不变特征转换,Scale-invariant feature transform或SIFT,在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。

    SIFT特征和HOG特征好处

    SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果,Hog没有旋转和尺度不变性

    SIFT有哪几个步骤

    – 步骤一:建立尺度空间

    • 即建立高斯差分(DoG)金字塔

    – 步骤二:在尺度空间中检测极值点,并进行精确定位和筛选

    – 步骤三:特征点方向赋值,

    • 完成此步骤后,每个特征点有三个信息:位置、尺度、方向

    – 步骤四:计算特征描述子

    SIFT特征的匹配是暴力匹配

    图像检索算法

    图像检索算法

    a) 图像检索领域:将局部特征表示成全局特征的编码

    b) 通常继承了局部特征的部分不变性,如对平移、旋转、缩放、光照和遮挡等与语义相关不大的因素保持不变

    三种经典的编码

    a) [BoW](http://yongyuan.name/blog/Bag of visual words model: recognizing object categories)

    b) VLAD局部聚合向量

    c) FV

    BOF

    图像视为文档,局部特征经过聚类后看作一个视觉词汇(也就是词)

    BOF算法先求出特征点,再聚类生成类心,得到视觉词汇,生成直方图(横轴视觉词汇,纵轴频数),再根据TF-IDF调整权重

    查询时,求夹角余弦

    BOF算法流程

    – 1.用surf算法生成图像库中每幅图的特征点及描述符。

    • surf算法是关键点计算和描述算法,作用和SIFT相似。

    – 2.再用k-means算法对图像库中的特征点进行训练,生成类心。

    – 3.生成每幅图像的BOF,

    • 判断图像的每个特征点与哪个类心最近,最近则放入该类心,最后将生成一列频数表,即初步的无权BOF(直方图向量)。

    – 4.通过tf-idf对频数表加上权重,生成最终的bof。

    • 因为每个类心对图像的影响不同。比如超市里条形码中的第一位总是6,它对辨别产品毫无作用,因此权重要减小。

    • TF/IDF

    – 5.对查询图像也进行3.4步操作,生成该图的直方图向量BOF。

    – 6.将查询图像的Bof向量与图像库中每幅图的Bof向量计算相似度

    • 求夹角余弦。

    Fisher vector

    FV考虑了特征点到每个聚类中心的距离,也就是用所有聚类中心的线性组合去表示该特征点

    ​ –FV描述局部特征和GMM中心之间的平均一阶和二阶差异

    VLAD特征

    •可以认为VLAD是FV的简化版本

    •如同BOF先建立出含有k个visual word的codebook,只考虑离特征点最近的聚类中心

    ​ -采用的是计算出local descriptor和每个visual word(ci)在每个分量上的差距,将每个分量的差距形成一个新的向量来代表图片

    展开全文
  • 信息检索专题复习

    万次阅读 2017-06-20 16:06:49
    信息检索复习重点,山东大学信息检索考前独家整理资料。

    信息检索

    Made by ® Isaac. Ty

    信息检索模型:描述信息检索中的文档、查询和他们之间的关系(匹配函数)的数学模型

    IR新课题

    • 自然语言理解
    • 多媒体检索
    • 垂直检索技术
    • 移动搜索
    • 对社会媒体信息检索
    • 问答
    • 知识发现
    • 行为分析、舆情控制
    • 自动对话

    2.布尔检索

    信息检索模型概述

    定义

    文档表示

    一个文档被表示为关键词(bag of words)的集合

    查询表示

    查询式(Queries)被表示为关键词的布尔组合,用“与、或、非”连接起来(主析取范式)

    相关度计算
    • 一个文档当且仅当它能够满足布尔查询式时,才将其检索出来
    • 检索策略是二值匹配
    非结构化数据

    没有清晰和明显的语义结构的数据,计算机不易处理这些数据

    结构化数据

    最典型的时关系数据库,用来保存公司的产品清单和人事记录

    聚类(clustering)

    基于文档内容进行自动聚团的任务。很像在书架上将一系列书按照它们所属的主题重新摆放的过程。

    分类(classification)

    根据给定的主题、固定的信息需求或者其他类别体系,将每一个文档分到一个或多个类别的任务。

    布尔模型:优缺点

    优点
    • 查询简单,容易理解
    • 通过使用复杂的布尔表达式,可方便地控制查询结果
    • 相当有效的实现方法
    • 经过某种训练的用户可以容易地写出布尔查询式
    • 布尔模型可以通过扩展来包含排序的功能
    缺点
    • ,不支持部分匹配,完全匹配会导致结果太多或太少
    • 非常刚性:“与”意味着全部;“或”意味着任何一个,所有匹配文档都将被返回
    • 不考虑索引词的权重,所有文档都以相同的方式和查询相匹配
    • 很难进行自动的相关反馈

    信息检索的基本假设

    • 集合:固定数量的文档
    • 目标:找到与用户信息需求相关的含有信息量的文档,帮助用户完成一个任务。

    典型的搜索模型

    • 构造矩阵→信息需求→文字形式→查询→查询优化→结果

    返回文档的好坏

    查准率

    返回的能满足用户信息需求的文档占总的返回文档的百分比

    召回率

    返回的能满足用户信息需求的文档占总的能满足用户信息需求的文档的百分比

    倒排索引

    • 对于每一个词项,存储所有包含这个词项的文档的一个列表。一个文档用一个**序列号**docID来表示
    • 应当使用可变长度的记录表
      • 在硬盘上,一串连续的记录是正常的,也是最好的
      • 在内存里,可以使用链表,或者可变长度的数组

    倒排索引建立步骤

    1. 收集需要建立索引的文档
    2. 将每篇文档转换成一个个词条(token)的列表,此个过程称为词条化(tokenization)
    3. 进行语言预处理,产生归一化的词条来作为词项
    4. 对所有文档按照其中出现的词项来建立倒排索引,索引中包括一部分词典和一个全体倒排索引表

      • 词条序列Token Sequence

    (修改过的词条,文档ID)对序列

    • 排序

      先按照词条排序,再按照docID排序

    • 词典和倒排表

      • 同一篇文档中多次出现的词被合并
      • 分割成词典倒排表
      • 词汇的文档频率也被记录
    • 查询的处理:AND

      • 考虑这样的查询: Brutus AND Caesar
      • 在字典中找到Brutus,得到它的倒排记录表
      • 在字典中找到Caesar,得到它的倒排记录表
      • 合并两个倒排列表
      • 同时扫描两个倒排记录表求交集,所需时间和倒排记录的数量呈线性关系。

    布尔检索模型

    文档表示

    一个文档被表示为关键词的集合

    查询表示

    查询式(Queries)被表示为关键词的布尔组合,用“与、或、非”连接起来(主析取范式DNF)

    相关度计算

    • 一个文档当且仅当它能够满足布尔查询式时,才将其检索出来
    • 检索策略是二值匹配{0,1}

    形式化表示

    1. 定义:用q~dnf~ 表示查询q的析取范式,q~cc~表示q~dnf~的任意合取分量
    2. 文献d~j~与查询q的相似度为

    布尔检索模型:布尔代数

    布尔变量
    • 只有“真”、“假”取值的变量
    布尔操作(关系)
    布尔表达式

    精确匹配

    布尔模型可以用来处理布尔表达式形式的查询

    • 布尔查询使用AND,OR和NOT来连接查询词汇
      • 将文档看作词汇的集合
      • 精确:匹配或不匹配
    • 布尔模型式IR系统中最简单的模型

    查询优化

    • 按照文档频率的顺序进行处理。先处理文档频率小的,再处理大的。

    3.词项词典和倒排记录表

    建立词项词典

    文档解析

    • 文档格式
    • 文档中的语言
    • 文档的编码方式

    词条化

    • 将给定的字符序列拆分成一系列子序列的过程,其中每一个子序列称之为一个“词

      条”Token。

    • 词条(Tokens)、词项(Terms)

    • 针对不同的语言,采用不同策略的词条化方法

    • 分词的基本方法:

      • 基于词典的最大匹配法
      • 机器学习方法

    停用词

    • 停用词表:将词项按照文档集频率,从高到低排列。选取与文档意义不大,高频出现的词,例如a ,an , the , and, ….
    • 优点:停用词消除可以减少term的个数
    • 缺点:有时消除的停用词对检索有意义的 。 的士 , to be or not to be
    • 消除方法:查表法,基于文档频率

    词项归一化

    • 将不完全一致的多个词条归纳成一个等价类,以便在它们之间进行匹配。
    • 归一化结果:在IR系统的词项词典中,形成多个近似词项的一个等价类
    • 归一化策略:建立同义词扩展表

    词干还原

    • 很粗略的去除单词两端的词缀的启发式过程
    • 能提高召回率,但是会降低准确率
    • porter算法

    词形归并

    • 利用词汇表和词形分析来减少曲折变化的形式,将其转变为基本形式
    • 词形归并可以减少词项词典中的词项数量

    区别:

    • 词干还原在一般情况下会将多个派生相关词合并在一起
    • 词形归并通常只将同一词元的不同曲折形式进行合并

    实现倒排记录表

    合并算法

    • 通过在两个倒排表之间同时移动指针来实现合并,此时的操作与线性表的总数成线性关系。

    基于调表的倒排记录表快速合并算法

    • 跳表指针能够跳过那些不可能出现在检索结果中的记录项
    • 如果倒排表的长度是L,那么在每个L处均放置跳表指针
    • 跳表指针只对AND类型查询有用,对OR类型查询不起作用

    短语查询

    二元词索引
    • 将文档中每个连续词对看成一个短语,其中的每个二元词对豆浆作为词典中的词项。
    扩展的二元词索引
    位置信息索引
    • 在此索引中,对每个词项,都采取以下方式存储倒排表记录:

      <词项,词项频率;

      文档1:位置1,位置2,……

      文档2:位置1,位置2,……

    4.索引构建

    硬件基础

    语资料库

    索引构建算法

    基于块的排序索引算法(BSBI:Blocked sort-based Indexing)

    • 在索引构建过程中需要依次分析所有的文档,不能很容易利用压缩技巧。只有分析完所有文档,最终的倒排记录表才会完整。

    • 基本思想:对每一个都生成倒排记录,并排序,写入硬盘。然后将这些块合并成一个长的排好序的倒排记录。

    • 每条数据占用12字节(4+4+4)(词项,文档,频数)
    • 在内存中处理,累积放满固定的块,排序后写入硬盘f~i~ ,合并所有索引文件成一个
    基于BSBI排序算法存在的问题
    • 假设能够将词典存入内存
    • 需要该词典动态增长去查找任一词项和词项ID之间的对应关系。
    • (一个可扩展的,但效率非常低的构建索引算法)

    内存式单遍扫描索引算法(SPIMI Single-pass in-memory indexing)

    • 核心思想:为每个块单独生成一个词典—— (不需要维护全局的<词项,词项ID>映射表)

    • 不进行排序。有新的<词项,文档ID>对时直接在倒排记录表中增加一项。

      • 可以为每个块生成一个完整的倒排索引,然后将这些单独的索引合并为一个大的索引
    • 压缩技术将会使SPIMI算法更加高效
      • 压缩词项
      • 压缩倒排记录表

    分布式索引构建(Distributed indexing)

    • Web规模的索引构建

      必须使用一个分布式的计算机集群

    • 计算机都是故障频发的

      • 可能会在任意时刻失效
    • 利用集群中的主控节点来指挥索引构建工作

      • 认为主控节点是“安全的”
    • 将索引构建过程分解成一组并行的任务

    • 主控计算机从集群中选取一台空闲的机器并将任务分配给它

    • 采用两组不同的并行任务

      • Parsers分析器

        1. 主节点将一个数据片分配给一台空闲的分析服务器

        2. 分析器依次读取文档并生成<词项,文档>对。

        3. 分析器将这些<词项,文档>按照词项对分成j个段

        4. 每一段是按照词项首字母划分的一个区间。

          例如:a-f,g-p,q-z 这里j=3

        5. 然后进行索引的倒排

      • Inverters倒排器
        1. 对于一个词项分区,倒排器收集所有的<词项,文档>对(倒排记录)。
        2. 排序,并写入最终的倒排记录表。
    • 首先,将输入文档集分割成n个数据片

      • 每个数据片就是一个文档子集(与BSBI/SPIMI算法中的数据块相对应)
      • 两种分割方法
        • 基于词项的分割
        • 基于文档的分割
    • 数据流图

    动态索引

    动态索引构建方法

    文档集通常不是静态的

    • 文档会不断的加入进来
    • 文档也会被删除或者被修改

    词典和倒排记录表需要修改

    • 对于已在词典中的词项更新倒排记录
    • 新的词项加入到词典中

      1. 周期性索引重构
    • 建立索引的同时,旧索引继续工作

    • 条件

      • 更新次数不是很多
      • 能够接受对新文档检索的一定延迟(重构之前新文档检索不到)
      • 有足够的资源进行重构

        1. 维护一个大的主索引
      • 新文档信息存储在一个小的辅助索引中(位于内存)
      • 检索可以同时遍历两个索引并将结果合并
      • 删除
        • 文档的删除记录在一个无效位向量
        • 在返回结果前利用它过滤掉已删除文档
      • 定期地将辅助索引合并到主索引中
      • 文档更新通过先删除后插入的方式实现

    主索引与辅助索引存在的问题

    • 频繁的合并带来很大开销
    • 合并过程效率低
      • 如果每个词项的倒排记录表都单独成一个文件,那么合并主索引和辅助索引将会很高效。
      • 合并是一个简单的添加操作
      • 需要使用很多倒排文件—— 对文件系统来说是低效的

    对数合并

    • 维护一系列索引I0,I1,I2,,每个都是前一个的两倍大小
    • 辅助索引Z0存储在内存中,而较大的(I0,I1,I2,,)存储在磁盘中
    • Z0达到上限时,将它写入磁盘I0中,当下一次达到上限时,它会和I0合并,生成Z1
      • 此时,如果I1不存在,存储到I1
      • 如果I1已存在,则Z1I1合并成Z2(大小22n)
      • 此时,如果I2不存在,存储到I2
      • 如果I2已存在,则Z2I2合并成Z3 (大小22n)
      • ……

    4.索引压缩

    压缩

    • 节省磁盘空间
    • 提高内存的利用率(加快速度)
    • 加快数据从磁盘到内存的传输速度
      • [读取压缩数据][解压缩] 比直接 [读取未压缩的数据]快
      • 前提:解压缩算法要很快

    压缩倒排索引的原因

    • 词典
      • 压缩的足够小以便放入内存中
      • 当词典足够小时,也可以在内存中存储一部分倒排索引记录表
    • 倒排记录文件
      • 减少所需要的磁盘空间
      • 减少从磁盘读取倒排记录文件所需的时间
      • 大的搜索引擎在内存中存储了很大一部分倒排记录表
      • 压缩可以在内存中存储的更多
    • 将涉及各种基于IR系统的压缩架构

    词项统计量

    词典压缩

    有损压缩和无损压缩

    • 无损压缩:压缩之后所有原始信息都被保留
      • 在IR系统中常采用无损压缩
    • 有损压缩:丢掉一些信息
    • 一些预处理步骤可以看成是有损压缩:大小写转化,停用词剔除,词干还原,数字去除等
    • 有损还是无损与需求相关

    Heaps定律:M=kT^b^

    • M是词项的数目,T是文档集中词条的个数
    • 词汇量大小M和文档集大小T在对数空间存在斜率为1/2的线性关系。
    • 不同单词的数目与文本篇幅之间存在幂函数的关系,其幂指数小于1
    • 提供了对文档集中词汇量的估计

    Zipf定律

    • 词项在文档中的分布情况

    • 排名第i多的词项的文档集频率与1/i成正比

    • 词项t~i~在文档集中出现的次数
    • 高频词项很少,低频罕见词项很多

    为什么要压缩词典

    • 搜索从词典开始
    • 想将词典放入内存中和其他应用程序共享内存资源
    • 手机或者嵌入式设备通常只有很小的内存
    • 即使不在内存中,也希望足够小以便搜索能够快速启动

    压缩词项列表:将词典看成单一字符串

    • 将所有词项存储为一个长字符串
      • 指向下一词项的指针同时也标识着当前词项的结束
      • 期望节省60%词典空间

    按块存储(Blocking)

    • 每k个词项分词一块,只保留第一个指针
    • 需要存储词项长度(额外一字节)

    前端编码

    • 按照词典顺序排列的连续词项之间往往具有公共前缀
    • (块内k个词项的最后k-1个)

    倒排记录表压缩

    • 倒排记录表远大于词典,至少10倍
    • 紧密地存储每一个倒排记录表
    • 每个倒排记录用文档ID来定义

    倒排记录表:相反的两点

    • 像“arachnocentric”这样的词项可能在一百万 个文档中才会出现一次 可以用log21M ≈ 20 bits来存储这一倒排记录。
    • 像“the”这样的词项在每个文档中都会出现, 所以对它采用20bit/倒排记录太浪费了。
      • 这种情况更希望是0/1的bit向量

    倒排记录表项中文档ID的间距(GAP)

    • 按照文档ID的递增顺序来存储一个词项的倒排列表
      • Computer: 33,47,154,159,202,…
    • 可以存储间距
      • 33,14,107,5,43,…
    • 期望:绝大多数间距存储空间都远小于20bit

    可变长度编码

    • 目标:
      • 对于arachnocentric,使用20bit/间距项
      • 对于the,使用1 bit/间距项
    • 如果词项的评价间距为G,我们想使用log2Gbit/间距项
    • 关键问题:需要利用整个字节对每个间距编码
      • 可变长度编码:对一些小数字用短码来实现
    • 可变字节码:
      • 用一个字节来存储G,并分配1bit作为延续位
      • G127 对7位有效码采用二进制编码并设置延续位c=1(结束)
      • G>127 则先对G低阶的7位编码,然后采用相同的算法用额外字节对高阶bit位进行编码
      • 设置最后一个字节的延续位为1(c=1),其他字节的c=0(未结束)

    5.Web搜索

    Web搜索基础

    重复文档

    • 完全复制Duplication : 可以通过指纹(fingerprints)来检测精确匹配
    • 近似重复Near-Duplication:通过编辑距离计算语法上的相似性

    相似性计算

    • 搭叠Shingles(N元词N-Grams)
      • 给定正整数K及文档d的一个词项序列可以定义文档d的k-shingle为d中所有k个连续词项构成的序列
    • Jaccard系数:衡量重复度
      • 表示公式: 交集 / 并集
      • 计算所有文档对之间搭叠的精确交集非常费时而且难以处理
      • 使用冲Shingles中选出一个子集(素描sketch)来近似计算(抽样Sample)

    小结:近似重复检测

    • Shingle算法的核心思想是将文件相似性问题转换为集合的相似性问题
    • 数量较大时,对Shingle集合进行抽样,以降低空间和时间计算复杂性
    • shingle取样三种方法:Min-Wise,Modm,Mins

    Web采集

    采集器

    1. 从已知种子URL开始
    2. 获取页面并解析
      1. 提取页面中包含的链接
      2. 将链接放入URL队列
    3. 对队列中的URL转2
    采集器必须具有的功能
    • 礼貌性:Web服务器有显示或隐式的策略控制采集器的访问
    • 鲁棒性:能从采集器陷阱中跳出,能处理Web服务器的其他恶意行为
    • 分布式:可以在多台机器上分布运行
    • 可扩展性:添加更多机器后采集效率应该提高
    • 性能和效率:充分利用不同的系统资源,包括处理器、存储器和网络带宽
    • 新鲜度:对原来爬取的网页进行更新
    • 功能可扩展性:支持多方面的功能扩展,例如处理新的数据格式、抓取新的协议。

    采集器基本架构

    采集器

    Web 图

    Web →Web图
    • 将静态Web看成静态HTML网页通过超链接互相连接而成的有向图,其中每个网页图的顶点,而每个超链接式图的有向边
    • 该有向图可能不是一个强连通图,即从一个网页出发,沿着超链接前进,有可能永远不会到达另外某个网页
    • 指向某个网页的链接称为 入链接(in-link),而从某个网页指出去的链接称为出链接(out-link)。
    • 入度:网页的入链数目。 出度:网页的出链数目
    邻接表
    • 每个网页都用唯一的整数来表示
    • 建立一个类似于倒排索引的邻接表,每行对应一个网页,按照其对应的整数大小排序。
    • 任一网页P对应的行中包含的也是一系列整数的排序结构,每个整数对应链向P的网页编号。(那些网页指向P)

    链接分析

    Web是有向图
    • 假设1:A到B的超链接表示A的作者对B的认可
    • 假设2:指向页面B的锚文本式对B一个很好的描述
    索引锚文本
    • 索引文档D的时候,也索引指向文档D的锚文本
    • 可以根据锚文本所在页面的权威性来确定锚文本的权重
    小结:锚文本
    • Web上很多网页的内容并不包含对自身的精确描述
    • Web搜索者不一定要使用网页中的词项来对网页进行查询,而使用锚文本。
    • 锚文本周围窗口中的文本也可以当成锚文本一样来使用。

    链接分析:PageRank

    PageRank
    • 对Web图中的每个节点赋一个0~1间的分值,这个分值为PageRank
    • 查询词无关的排序
    • 第一代版本:使用链接的数目作为流行程度的最简单度量
    • 两个改进:
      • 无向流行度:赋予每个页面一个分:出链数+入链数
      • 有向流行度:页面分数 = 入链数
    查询处理
    • 检索出所有满足文本查询词的页面,然后把这些页面按照链接的流行的排序。
    • 更复杂:把链接按流行度当作静态得分,结合文本匹配的分数进行综合排序
    PageRank打分
    • 假设一个浏览者在网络上随机行走
      • 从一个随机页面开始,每一步从当前页等概率地选择一个链接,进入链接所在页面
    • 在稳定状态下,每个页面都有一个访问概率——用这个概率作为页面的分数
    • 当浏览者在Web上进行节点间的随机游走时,某些节点的访问次数会比其他的节点更多
    • 访问频繁的节点具有很多从其它频繁访问节点中指向的入链接
    • PageRank思路:在随机游走过程中越频繁访问的网页越重要
    随机跳转(Teleporting)
    • 遇到dead end时,随机跳转到一个页面,如果页面总数总是N,那么随机跳转的概率式1/N
    • 非dead end, 以a(值较小)的概率跳转到一个随机页面;以剩余1-a的概率从页面的出链中选择一个
    • 随机跳转结果:不会再困在一个地,将会有比率表示所有网页长期被访问的概率
    马尔科夫链
    • 一个Markov链有N个状态,以及一个NxN的转移概率矩阵P。每一步只能处在一个状态
    • 1i,jN,转移概率矩阵P~ij~给出了从状态i到下一个状态j的条件转移概率
    • P中每一行的元素之和为1,从该页面跳转道其所有出链的概率之和为1
    • 满足上述性质的非负矩阵被成为随机矩阵。最大特征值是1,与该特征值对应的有一个左特征向量
    • 马尔科夫链中下一个状态的分布仅仅依赖于当前的状态,与如何到达当前状态无关。
    • 马尔科夫链的状态概率分布可以看成一个概率向量,每个元素都在[0,1],且所有元素的和为1(行)
    邻接矩阵A→概率转移矩阵P
    • 如果一行没有1(没有出链),用1/N代替每个元素
    • 否则
      • 每行中用1的个数除每个1。(归一化) 若某行3个1,每个1用1/3表示
      • 上面处理的结果矩阵乘以1-a
      • 上面结果矩阵元素加上 a/N
    概率向量的变化
    • 最终访问频率收敛与固定的、稳态概率π
    • 算法: 给 X 乘上P的k次方,k不断增加,直到乘积稳定
    • π***P = π*
      • 解矩阵等式得到π
      • π是P的主左特征向量,π~i~是页面i的PageRank

    链接分析:HITS

    • 对每个网页给出两个得分 hub值(导航) ,authority值(权威)
    • 确定基本集
    • 精选出Hub页和Authority页
    • 迭代跟新h(x),a(x)
      • 输出h(x)最高作为Top Hub页,a(x)最高作为Top Authority页
    • 大概5次迭代就会稳定
    • h是AAt的特征向量,a是AtA的特征向量

    6.向量模型

    排序式检索

    布尔检索:文档要么匹配要么不匹配。对自身需求和文档集性质非常了解的专家而言,布尔查询式不错的选择。然而对大多数用户来说不方便

    • 布尔查询的结果不是太多就是太少
    • 需要花费很多精力去构造一个合适的query才可以获得一个在数量上可以接受的查询结果。

    排序检索模型

    • 在排序检索模型中,系统根据文档与query的相关性排序返回文档集合中的文档,而不是简单地返回所有满足query描述的文档集合。
    • 自由文本查询:用户query是自然语言的一个或多个词语而不是由查询语言构造的表达式。
    • 总体上,排序检索模型中有布尔查询和自由文本查询两种方式,但是实际中排序检索模型总是与自由文本查询联系在一起,反之亦然。

    过多、过少不再是问题

    • 当系统给出的式有序的查询结果,查询结果数目多不再是问题。只需要给出top K(10个左右)个结果,为用户减轻负担。
    • 前提是有合适的排序算法

    排序检索的基本—-评分

    希望根据文档对查询者的有用性大小顺序将文档返回给查询者

    • 给每个“查询—文档”对进行评分,在[0,1]之间
    • *这个评分值衡量文档与query的匹配程度*
    • 以单个单词组成的query为例
      • 如果单词不出现在文档中,该文档得分为0
      • 该词项在文档中出现的频率越高,则评分越高
    评分方案一—-Jaccard系数

    一种常用的衡量两个集合A,B重叠度的方法

    • Jaccard(A,B)=|AB|/|AB|
    • Jaccard(A,A)=1
    • Jaccard(A,B)=0 if AB=0
    • 集合A和B不需要具有同样的规模
    • Jaccard(A,B)的取值在[0,1]

    用Jaccard系数评分的问题

    • 没有考虑词项频率(词项在文档中出现的次数)
    • 没有考虑罕见词比高频词的信息量更大,更具区分度

    词项频率

    词项–文档二值关联矩阵

    • 每个文档用一个二值向量表示 {0,1}|v| 。每个词项是否属于某个文档

    词项—文档词频关联矩阵

    • 考虑词项在文档中出现的频率,将每个文档看成是一个词频向量:矩阵中的一列

    词袋模型(Bag of words)

    • 不考虑词在文档中出现的顺序

      “John is quicker than Mary” 和 “Mary is quicker than John” 的表示结果一样

    词项频率tf(Term frequency)

    词项频率:词项t在文档d中出现的次数,记为tft,d

    1. 采用原始tf值(raw tf)
      • 某个词项在A文档中出现10次,即tf=10,在B文档中tf=1,那么A比B更相关,但是相关度不会相差10倍
      • 相关性不会正比于词项频率
    2. 对数词频
      • 词项t在文档d中的对数频率权重
      • 对数词频
        • 文档——词项的匹配得分是所有同时出现query文档d中的词项的词频的对数之和
        • Score(q,d)=tqd(1+logtft,d)
        • 评分为0,表示文档和query没有公共词项

    tf-idf权重计算

    除词项频率tf之外,利用词项在整个文档集中的频率进行权重和评分计算

    罕见词所期望的权重

    • 罕见词比常见词所蕴含的信息更多
    • 考虑查询中某个词项,它会在整个文档集中非常罕见
    • 某篇包含该词项的文档很可能相关,故罕见词项将有较高权重

    常见词项所期望的权重

    • 常见词项的信息量不如罕见词
    • 考虑一个查询此项,它频繁出现在文档集中
    • 一篇包含该词项的文档当然比不包含该词项的文档的相关度要高
    • 但是,这些词对于相关度而言并*不是非常强的指示词*,故*给一个正的权重,但是整个权重小于罕见词权重*

    文档频率(Document frequency,df)

    • 罕见词项赋予高权重
    • 常见词项赋予正的低权重
    • 文档频率df因子来计算 查询–文档的匹配得分
    • 文档频率:出现词项的文档数目

    idf(inverse document frequency)逆文档频率

    • dft是词项t的文档频率文档集合中包含t的文档数目
      • dft与词项t包含的信息量反比(出现文档数目越多,该词项的信息量相对较小)
      • dftN (N是文档的总数)
    • 定义t的逆文档频率idf

      idft=log10(N/dft)

    • idft是反应词项t的信息量的一个指标
    • log10(N/dft)来代替Ndft来抑制idf的作用

    idf对排序的影响

    • 对于含有两个以上查询词的queryidf才会影响排序结果;只有一个查询词的query,idf对排序结果没有影响
    • 例如 Query: arachnocentric line , idf会提高 arachnocentric的相对权重,同时减低line的相对权重

    文档集频率和文档频率

    • 文档集频率(collection frequency,cf)是指t在整个文档集合中出现的*词的次数*
    • 文档频率(document frequency,df)包含该词项的*文档数目*
    • df比cf更适合权重计算

    tf–idf文档-逆文档频率(单个词)

    • tf-idf是信息检索中最著名的权重计算方法
    • 词项t的tf-idf式由它的tf和idf组合而成
    • wt,d=(1+logtft,d)×log10(N/dft)
    • tf-idf值随着词项在单个文档中出现次数(tf)增加而增加,随着词项在文档集中数目(df)增加而减小

    Query 最终文档排序

    Score(q,d)=tqdtfidft,d

    向量空间模型

    • 二值关联矩阵:每个文档用一个二值向量表示 0,1|v|
    • 词频矩阵:每篇文档表示成一个词频向量 N|v|
    • tf-idf矩阵:每篇文档表示成一个基于tf-idf权重的实值向量R|v|

    文档表示成向量

    • 每篇文档表示成一个基于tf-idf权重的实值向量R|v|(V式词项集合,|v|表示词项个数)
    • |v|维实向量空间
      • 空间每一维都对应词项
      • 文档是空间的点或者向量
      • 维度非常高:特别是互联网搜索引擎,空间可达千万维或更高
      • 向量空间非常稀疏:对每个向量来说大部分都是0

    Queries表示成向量

    1. 对于查询做同样的处理,即将查询表示成统一高维空间的向量
    2. 在向量空间内根据query与文档相量间的距离来排序

    利用夹角代替距离

    • 按query与文档夹角递减给文档排序,按余弦递增给文档排序 是的等价的。
    • 按余弦cosine(query,document)递减给文档排序,只考虑相对顺序

    文档长度归一化

    • 利用二范数对文档长度进行归一化,一个文档向量除以它的L~2~范数就是给这个文档进行长度归一化

    6.检索系统

    排序的重要性

    • 用户只希望看到一些而不是成千上万的结果
    • 很难构造只产生一些结果的查询,即使是专家也很难
    • →排序能够将成千上万条结果缩减至几条结果,因此非常重要
    • 实际上大部分用户只看到1-3条结果

    摘要阅读

    用户更可能阅读前几页(1, 2, 3, 4)的结果的摘要

    点击

    点击的分布甚至更有偏向性

    • 一半情况下,用户点击排名最高的页面
      • 即使排名最高的页面不相关,仍然有30%的用户会点击它
    • 正确排序相当重要,把相关的页面放在首页非常重要

    结果排序的实现

    tf和idf的存储

    • 词典中保存每个词的idf

    • 词项频率tf存入倒排索引

      term|idf → d1,tf , \

    精确top K检索机器加速办法

    • 从文档集所有文档中找出K个离查询最近的文档
    • 步骤:对每个文档频繁(余弦相似度),按评分高低排序,选出前K个结果
    • 如何加速:
      • 加快每个余弦相似度的计算
      • 不对所有文档的评分结果排序而直接选出top K篇
      • 能否不需要计算所有N篇文档的得分

    快速计算余弦相似度

    • 检索排序就是找查询的k临近
    • 如果查询很短,可以加速
      • 查询的多个词项无权重
      • 排序只需要相对得分

    堆排序法N中选K

    • 检索时,通常只需要返回前K条结果
    • 令J=具有非零余弦相似度值的文档数目,利用对结构从J中选K个最大的

    提前终止计算

    非精确top K检索的可行性

    • 索引去除:
      • 对于一个包含多个词项的查询来说,可以只考虑至少包含一个查询词项的文档
      • 只考虑那些词项的idf值超过一定阈值的文档
      • 只考虑包含多个查询词项
    • 胜者表
      • 对于词典中的每个词项t,预先计算出r个最高权重的文档
      • 词项t所对应的tf值最高的r篇文档构成t的胜者表,r值在索引建立时给定可能r

    评价

    信息检索的目标式*较少消耗情况下尽快、全面返回准确的结果。*

    评价方式

    效率(Efficiency)

    • 时间开销
    • 空间开销
    • 响应速度

    效果(Effectiveness)

    • 返回的文档中有多少相关文档
    • 所有相关文档中反回了多少
    • 返回得靠不靠前

    其他指标

    • 覆盖率(Coverage)
    • 访问量
    • 数据更新速度

    评价效果

    • 相同的文档集合,相同的查询主题集合,相同的评价指标不同的检索系统进行比较。

    无序检索结果的评价

    对单个查询进行评估的指标

    对整个文档集合的划分
    • 未检索出(Not Retrieved)
      • 未检索出的相关文档(NR)
      • 未检索出的不相关文档 (NN)
    • 检索出(Retrieved)
      • 检索出的相关文档(RR)
      • 检索出的不相关文档(RN)
    评价指标
    • 召回率(Recall):RR/(RR+NR),返回的相关结果数占实际相关结果总数的比率,也称为查全率,R[0,1]
    • 正确率(Precision):RR/(RR+RN),返回的结果中真正相关的比率,也称查准率,P[0,1]
    • 两个指标分别度量检索效果的某个方面,忽略任何一个方面都有偏失。
    • 两个极端情况
      1. 返回有把握的1篇,P=100%,但R极低
      2. 全部文档都返回,R=1,但P极低
    • 虽然Precision和Recall都很重要,但是不同的应用、不同的用户对两者的要求不一样。

    正确率和召回率的问题

    • 应用领域

      • 拼写校对、中文分词、文本分类、人脸识别、……
    • 召回率难以计算

      • Pooling方法,或则不考虑召回率
    • 两个指标分别衡量了系统的某个方面,但是如何评价哪个系统好
      • 将两个指标融成一个指标
    • 两个指标都是基于集合(无序)进行计算,并没有考虑序的作用
      • 引入序的作用
    召回率的计算

    对于大规模语料集合,列举每个查询的所有相关文档不可能,因此不可能准确地计算召回率
    - 缓冲池(Pooling)方法:对多个检索系统的TopN个结果组成的集合进行人工标注,标注相关文档集合作为整个相关文档集合

    使用查准率/查全率的问题
    • 需要在大规模的文档集合和查询集合上进行计算
    • 需要人工对返回的文档进行评价

      • 由于人的主观因素,人工评价往往不可靠
    • 评价是二值的

      • 无法体现细微的差别
    • 文档结合和数据来源不同,结果也不同,有严重的偏差
      • 评价结果只适用于某个范围,很难引申到其他范围

    综合评价准则 F=P和R融合

    • F值(F-measure):召回率R和查准率的加权调和平均值
    • F=1α1p+(1α)1R=(β2+1)PRβ2P+R
    • Fβ :表示召回率的重要程度是查准率的β(>=0)
      • β>1 更重视召回率,β<1更重视查准率
      • 取等权重
      • Fβ=1=2PRP+R
    • 调和平均比较保守

    精确率不适合IR的原因

    • 和查询相关的文档占文档集的极少数,即使什么都不返回也会得到很高的精确率
    • 用户希望找到某些文档并且能够容忍结果中有一定的不相关性
    • 返回一些即使不好的文档也比不反回任何文档好

    有序检索结果的评价

    评价排序后的结果

    • P、R、F值都是基于集合的评价方法,它们都是利用无序的文档集合进行计算。如果搜索引擎输出为有序的检索结果时,需要扩展
    • 对于特定检索词的有序检测结果
      • 系统可能返回任意数量的结果(=N)
      • 考虑Top k返回的情形
      • 则每个k的取值对应一个R和P
    • 计算得到查准率-查全率曲线

    P-R的优缺点

    • 优点:
      • 简单直观
      • 既考虑了检索结果的覆盖度,又考虑了检索结果的排序情况
    • 缺点:
      • 单个查询的P-R曲线虽然直观,但是难以明确表示两个查询的检索结果的优劣

    基于P-R曲线的单一指标

    • 固定检索等级的查准率
      • Precision@k:前k个结果的查准率
      • 对大多数的web搜索适合,因为用户看重在前几页中有多少好结果
      • 平均的方式不好,通常所用指标中最不稳定的
    • 11点平均正确率
      • 对每个信息需求,插值的正确率定义在0,0.1,0.2,…,0.9,1共11个召回率水平上
      • 对每个召回率水平,对测试集中多个查询在该点的插值正确率求算术平均

    更多的评价准则:AP

    • 平均查准率(Average Precision,AP):对不同召回率点上的正确率进行平均

      • 未插值AP:某个查询Q共有6个相关结果,某系统排序反回了5篇相关文档,其位置分别为 第1,第2,第5,第10,第20位。
      • AP=(11+22+35+410+520+0)/6,等价于6点平均

      • 插值的AP:在召回率分别为0, 0.1, 0.2, … ,1.0的十一个点上的正确率求平均,等价于11点平均

      • 只对返回的相关文档进行计算的AP

        AP=(11+22+35+410+520)/5,倾向返回那些快速返回结果的系统,没有考虑召回率,等价于5点平均

    不考虑召回率

    • Precision@N:在第N个位置上的正确率
      • 对于搜索引擎,大量统计数据表明,大部分搜索引擎用户只关注前一、两页结果。因此P@10、P@20对大规模搜索引擎来说是很好的指标

    宏平均vs微平均

    • 平均的求法:
      • 宏平均(Macro Average):对每个查询求出某个指标,然后对这些指标进行算术平均
      • 微平均(Micro Average):将所有查询视为一个查询,将各种情况的文档总数求和,然后进行指标运算。(一个系统的所有查询)
      • Eg: MicroPrecision=
      • 宏平均对所有查询一视同仁,微平均受返回相关文档数目比较大的查询影响(宏平均保护弱者)

    平均查准率均值 Mean Average Precision(MAP)

    • 每个相关文档位置上查准率的平均值,被称为平均查准率(AP)
    • 对所有查询求宏平均,就得到平均查准率均值(MAP)
    • Map(Q)=1|Q||Q|j=11mjmjk=1Precision(Rjk)
    • Q为信息需求,qjQ所对应的所有相关文档集合为{d1,d2,,dmj}Rij是查询qj的返回结果,该结果中包含而不含有dk+1及以后的相关文档

    面向用户的评价指标

    • 假定用户已知的相关文档集合为U,检索结果和U的交集为Ru,则覆盖率
      • C=RuU检索系统找到的用户已知的相关文档比例
    • 假定检索结果中返回一些用户以前未知的相关文档Rk,则可以定义新颖率
      • N=|Rk||Ru|+|Rk|,表示系统返回的新相关文档的比例

    GMAP

    • AP的集合平均值(更能体现细微差别)

    NDCG

    • 每个文段不仅仅只有相关和不相关,而是有相关级别
      • 相关度级别越高的结果越多越好
      • 相关度级别越高的结果越靠前越好

    摘要

    • 标题通常是从文档的元数据中自动抽取出来的
      • 用户根据描述信息来判断这个文档是否相关
    • 两种基本类型
      • 静态:不论输入什么查询,文档的静态摘要都是不变的
      • 动态:动态摘要依赖于查询,试图解释当前文档返回的原因

    本讲小结

    • 信息检索的评价方法
      • 不考虑序的检索评价指标:P、R、F
      • 考虑序的评价指标:P/R曲线、MAP、NDCG
    • 检索结果的摘要

    相关反馈及查询扩展

    • 交互式相关反馈:在初始检索结果基础上,通过用户指定哪些文档相关或不相关,然后改进检索的结果。Rocchio相关反馈
    • 查询扩展(Query expansion):通过在查询中加入同义或者相关的词项来提供检索结果。人工编辑的同义词辞典、自动构造的同义词词典、查询日志

    动机

    搜索中提高召回率的方法

    • 提高召回率的方法—— 相关反馈及查询扩展
    • 返回不包含查询词项的相关文档

    关于召回率Recall

    • 放松召回率的定义,给用户返回更多的相关文档

    提高召回率的方法

    • 局部(local)方法:对用户查询进行局部的实时分析
      • 主要局部方法:相关反馈(relevance feedback)
    • 全局(global)方法:进行一次性的全局分析产生同/近义词词典(thesaurus)
      • 利用该词典进行查询扩展

    相关反馈基础

    相关反馈的基本思想

    • 用户提交一个(简短的)查询
    • 搜索引擎返回一系列文档
    • 用户将部分返回文档标记为相关的,将部分文档标记为不相关
    • 搜索引擎根据标记结果计算得到信息需求的一个新查询表示。(希望好于初始查询)
    • 对新查询进行处理,返回新结果。
    • 新结果渴望有更高的召回率

    相关反馈分类

    • 用户相关反馈或显示相关反馈(User Feedback or Explicit Feedback):用户显示参加交互过程
    • 隐式相关反馈(Implicit Feedback):系统跟踪用户的行为来推测返回文档的相关性,从而进行反馈
    • 伪相关反馈或盲目相关反馈:(Pseduo Feedback or Blind Feedback):没有用户参与,系统直接假设返回文档的前K篇相关的,然后进行反馈。

    相关反馈详细介绍

    相关反馈中的核心概念:质心

    • 质心是一系列点的中心
    • 前面将文档表示成高维空间中的点
    • 计算文档质心的公式:

    相关反馈基本理论

    • 基本理论:假定要找一个最有查询向量q,它与相关文档之间的相似度最大且同时又和不相关文档之间的相似度最小。
    • q~opt~是将相关文档与不相关文档区分开的向量
    • 当sim()函数采用余弦相似度计算时,能够将相关文档与不相关文档区分开的最有查询向量为:
    • 最优查询向量等于相关文档的质心向量和不相关文档的质心向量的差

    Rocchio算法

    • 假定有一个用户查询,并知道部分相关文档和不相关文档的信息,最优查询向量为
    • q-
    • 修改后的新查询从q~0~开始,向相关文档质心靠近,同时与不相关文档质心远离。
    • 相关文档的质心移动一个量,该量为相关文档质心和不相关文档质心的差异量
    • 修改后的新查询,向着相关文档的质心向量靠近了一段距离,与不相关文档的质心向量远离了一段距离。

    相关反馈策略的评价

    • 使用初始查询q~0~ ,计算”查准率-查全率“曲线
    • 使用相关反馈后修改查询q~m~,然后计算”查准率-查全率“曲线
      • 方案1:在整个文档集合上评价
      • 有显著的改善,但是有作弊嫌疑部分原因是会把已知的相关文档排在很前
      • 需要用用户没有看到的文档集合来评价
      • 方案2:使用剩余的文档集合来评价(总的文档集合减去评价过的相关性文档)
      • 评价结果往往比初始查询的结果差,但是这种方法更现实
      • 可以用来有效比较不同相关反馈方法之间的相对效果
      • 方案3:使用两个文档集合
      • 在第一个文档集合上使用初始查询q~0~,并进行相关反馈
      • 在第二个文档集合上使用初始查询q~0~和修改过的查询q~m~进行评价

    评价的误区

    • 评价不同相关反馈的效用的时候,必须考虑消耗时间的要素。
    • 代替相关反馈的方法:用户修改并重新提交查询
    • 相对于判断文档的相关性,用户可能更愿意修改并重新提交查询
    • 没有证据能表明相关反馈占用了用户的时间就能给用户带来最大的效用。

    查询扩展

    • 提高召回率
    • 查询重构的全局方法。在全局查询扩展中,查询基于一些全局的资源进行修改。
    • 主要使用 同义词或近义词词典(人工构建和自动构建)

    概率检索模型

    向量空间模型回顾

    向量空间模型

    • 文档表示成向量
    • 查询也表示成向量
    • 计算两个向量之间的相似度:余弦相似度、内积相似度
    • 向量表示中的词项权重计算方法主要是tf-idf公式,实际考虑**tf、idf及文档长度**3个因素

    向量空间模型优缺点

    优点
    • 简洁直观,可以应用到很多其他领域(文本分类、生物信息学)
    • 支持部分匹配和近似匹配,结果可以排序
    • 检索效果不错
    缺点
    • 理论上不够:基于直觉的经验性公式
    • 索引项之间的独立性假设与实际不符:实际上,term的出现之间是有关系的,不是完全独立。

    基本概率统计知识

    随机试验和随机事件

    概率和条件概率

    乘法公式、全概率公式和贝叶斯公式

    事件独立性

    概率检索模型

    • 概率检索模型:通过概率的方法将查询和文档联系起来
      • 定义3个随机变量R、Q、D:相关度R={0,1},查询Q={q1,q2,…},文档D={d1,d2,…}
      • 通过计算条件概率P(R=1|Q=q,D=d)来度量文档和查询的相关度

    概率排序原理PRP

    • 利用概率模型来估计每篇文档和需求的相关概率P(R=1|d,q),然后对结果进行排序
    • 最简单的PRP情况
      • 检索没有任何迭代因子,或者说不会对不同行为或错误采用不同的权重因子。
      • 在返回一篇不想管文档或者返回一篇相关文档不成功的情况下,将失去1分
      • 而检索的目标是对于用户给定的k值,返回可能性最高的文档前k篇作为结果输出。即RPR希望可以按照P(R=1|d,q)值的降序来排列所有文档
    • 公式的理解

    基于检索代价的概率排序原理

    • C~1~表示一篇相关文档未返回所发生的代价
    • C~0~表示返回一篇不相关文档所发生的代价
    • PRP认为,如果对于一篇特定的文档d及其所有其他未返回的文档d’都满足:
    • C0P(R=1|d)C1P(R=0|d)C0P(R=1|d)C1P(R=0|d)
      • C0P(R=1|d):当d不相关时却返回的代价(判为相关)
      • C1P(R=0|d):当d相关却没有返回的代价
      • 两者相减表示返回文档d的代价函数,即此时前者越低越好,后者越高越好
    • 那么d就应该是下一篇被返回的文档

    二值独立概率模型BIM

    • 为了对概率函数P(R|q,d)进行估计,引入了一些简单假设。
      • ”二值“等价于布尔值:文档和查询都表示为词项出现与否的布尔向量
      • 类似,查询q表示成词项出现向量q
      • ”独立性“指的式词项在文档中的出现是相互独立的,BIM不识别词项之间的关联。

    平滑

    • 在减少出现事件的概率估计值的同时提高未出现事件的概率估计值的方法

    BIM模型的优缺点

    优点
    • BIM模型建立在数学基础上,理论性较强
    缺点
    • 需要估计参数
    • 原始BIM没有考虑TF、文档长度因素
    • BIM中同样存在词项独立性假设

    理论上的概率估计方法

    • P~t~词项出现在一篇相关文档中的概率
    • pt=P(xt=1|R=1,q)=s/S
    • u~t~词项出现在一片不相关文档中的概率
    • ut=P(xt=1|R=0,q)=(dfts)/(NS)

    基于语言建模的检索模型

    • 传统概率模型
      • 需要对文档d与查询q的相关概率P(R=1|q,d)进行显示建模
    • 概率语言模型
      • 首先对每篇文档d建模得到文档的概率语言模型 Md
      • 然后按照模型生成查询q的概率P(q|Md)的高低来对文档进行排序

    语言模型

    最简单的语言生成器模型

    • 一个简单的又穷自动机及其生成语言中的一些字符串
      • 指向的是自动机的初始状态
      • 双圈节点对应的是终止状态
    • 如果每一个节点都有一个生成不同词项的概率分布,便得到一个语言模型,或概率语言模型,或统计语言模型
      • 语言模型的概念本质上是基于概率的

    有穷自动机语言模型

    • 一个语言模型(LM)是从某词汇表上抽取的字符串概率的一个映射函数。对字母表上的语言模型M有:sP(s)=1
    • 最简单的语言模型等价于一个仅仅包含一个节点的概率有穷自动机,只有一个生成不同词项的概率分布,因此有tVP(t)=1
    • 假定停止概率是固定的,因此不会影响文档的排序。因此可以不考虑停止概率,但形式上得到的结果将不再是概率,而只是概率的部分项

    语言模型的比较

    • 比较两个模型,可计算似然比,即将其中一个模型的数据生成概率除以另外一个模型数据的生成概率。

    语言模型的种类

    对于词项序列如何求解其生成的概率值

    • 根据链式规则将一系列事件的概率分解成多个连续事件概率之积,每个概率是每个事件基于其历史事件的条件概率。
    • P(t1t2t3t4)=P(t1)P(t2|t1)P(t3|t1t2)P(t4|t1t2t3)

    语言模型的种类n-gram

    • 一元语言模型(Unigram LM):上下文语言无关模型,是最简单的语言模型,去掉所有条件概率中的条件来独立地估计每个词项的概率

      • Puni(t1t2t3t4)=P(t1)P(t2)P(t3)P(t4)
      • 词袋模型Bag of words
    • 二元语言模型(Bigram LM):即计算条件概率时只考虑前一个词项的出现情况

      • Pbi(t1t2t3t4)=P(t1)P(t2|t1)P(t3|t2)P(t4|t3)
    • 三元语言模型(Trigram LM)

    词的多项式分布

    • 词的多项式分布

    语言模型应用到IR

    总体分布&抽样

    • 文档模型实际是某种总体分布
    • 文档和查询都是该总体分布下的一个抽样样本示例
    • 根据文档,估计文档的模型,即求出该总体分布,然后计算该总体分布下抽样出查询的概率
    • 文档 总体分布 查询

    查询似然模型

    • 每篇文档d构建其对应的语言模型Md
    • 将文档按照其余查询相关的似然P(d|q)排序
      • P(d|q)=P(d|q)P(d)P(q)
    • 最后会按照P(d|q)进行排序,它是在文档d对应的语言模型Md下生成q的概率

    • IR中的语言建模方法实际上是在对查询的过程进行建模

      • 首先每篇文档d对应一个文档模型Md
      • 然后计算查询被视为每个文档模型的随机抽样样本的概率
      • 最后根据这些概率对文档排序
      • P(q|Md)=KqtVP(t|Md)tft,d
      • Kq是查询q的多项式系数,对于某个特定查询,是一个常数可以忽略。
    • 模型的直观意义是,用户脑子里有一篇原型文档,然后按照该文档中的词语用法来生成查询。

    查询生成的概率估计

    • 每篇文档d构建其对应的语言模型Md
    • 采用最大似然估计:使得观察样本出现概率最大的估计
      • P(q|Md)=tqPmle(t|Md)=tft,dLd
      • Ld是d中的词条数目

    线性插值LM示例

    平滑的方法:线性插值LM

    • 需要对文档LM的概率进行平滑(Smoothing),即对出现事件的概率结果进行折扣,并对未出现的词的概率赋予一定的值。

    • 将基于文档的多项式分布和基于全部文档集估计出的多项式分布相混合

    • P(t|d)=λPmle(t|Md)+(1λ)Pmle(t|Mc)
      • λ(0,1) , Mc是基于全部文档集构造的LM

    扩展的LM方法

    • a查询似然类:文档建模,计算查询的似然
      • 基本QLM模型、翻译模型
    • b文档似然类:查询建模,计算文档的似然
      • BIM模型、相关性模型
    • c模型比较类:文档建模,查询建模,kl距离模型

    文本分类及朴素贝叶斯分类器

    本讲要点

    • 什么是文本分类
    • 什么是朴素贝叶斯分类器
    • 朴素贝叶斯分类器的生成模型
    • 朴素贝叶斯分类器的性质
      • 条件独立假设&位置独立性假设
    • 特征选择:互信息、x2统计量、词项频率
    • 文本分类评价:宏平均和微平均

    文本分类

    • 给定分类体系,将一篇文本分到其中一个或者多个类别中的过程。

    • 文本分类中,给定文档dX 和一个固定的类别集合 C={C1,C2,,Cj} , 其中X表式文档空间,类别也通常称为类或类标签

      • 按类别书目:binary vs multi-class
      • 按每篇文档赋予的标签书目: sing label vs multi label

    分类方法1: 手工方法

    • 使用人工分类方法来分类,如果专家来分类精度会非常高
    • 如果问题规模和分类团队都很小时,能否保持分类结果的一致性

    分类方法2:规则方法

    • 繁琐,开销大

    分类方法3:机器学习方法

    • 文本分类被定义为一个学习问题,包括:
      • 通过有监督的学习,得到分类函数γ,然后将其应用于对新文档的分类
    • 一系列的分类方法:朴素贝叶斯、Rocchio、KNN、SVM
    • 当学习方法基于统计时,此方法也称为统计文本分类:
      • 在统计文本分类中,对每个类别需要一些好的文档样例(训练文档)
      • 需要人来标注训练文档,所以对人工分类的需求依然存在
      • 标注(labeling)指对每篇文档赋予类别标签的过程

    基于学习的文本分类

    • 文档空间X
      • 文档都在该空间下表示—— 通常都是某种高维空间
    • 固定的类别集合C=C1,C2,...,Cj
      • 类别往往根据应用的需求来人为定义
    • 训练集D,文档d用c来标记,<d,c>X×C
      • 利用学习算法,可以学习一个分类器γ,它可以将文档映射成类别: γXC
    • 文档分类的实现
      • 对于文档空间中文档,dX,可确定γ(d)C即确定d最可能属于的类别ci=γ(d),cC

    无监督/有监督的学习

    • supervised learning 监督学习
      • 利用一组已知类别的样本调整分类器的参数,使其达到所求性能的过程,也称为监督训练或有教师学习
    • 无监督学习
      • 若所给的学习样本不带有类别信息,就是无监督学习

    搜索引擎中的文本分类应用

    • 语言识别
    • 垃圾网页识别
    • 是否包含淫秽内容
    • 领域搜索或垂直搜索—— 搜索对象限制在某个垂直领域
    • 静态查询
    • 情感识别

    朴素贝叶斯分类器

    • 是一个概率分类器
    • 文档d属于类别c的概率计算
    • P(c|d)=P(c)P(d|c)P(d)P(c)P(d|c)P(c)1KndP(tk|c)
    • t~k~是d中的词条,n~d~是文档的长度(词条个数)
    • P(t~k~|c)是此项t~k~出现在类别c中文档的概率,或类别c生成词项t~k~的概率,或是度量的是当c是正确类别时t~k~的贡献
    • P(c)是类别c的先验概率
    • 如果文档的词项无法提供属于哪个类别的信息,那么直接选择P(c)最高的那个类别

    朴素贝叶斯理论

    两种模型文本生成过程

    • 给定类别时文档生成的条件概率计算有所不同
      • 多项式模型P(d|c)=P(<t1,,tk,,tnd>|c)
      • 贝努利模型P(d|c)=P(<e1,,ek,,eM>|c)
      • 其中 多项式模型是d中出现的词项序列(去掉词)
      • 贝努利模型是一个M维的布尔向量,表示每个词项在文档d中存在与否。
    • 两种不同的文档表示方法
      • 多项式模型是文档空间X是所有词项序列的集合
      • 贝努利模型是文档空间X是{0,1}M

    具有最大后验概率的类别

    • 朴素贝叶斯分类的目标是寻找“最佳”类别

    特征选择

    • 文本分类中,通常要将文本表示在一个高维空间下,每一维对应一个词项。特征选择是从训练集合出现的词项中选出一部分子集的过程。在文本分类过程也仅仅使用这个子集作为特征
    • 特征选择有两个主要目的:
      1. 通过减少有效的词汇空间来提高分类器训练和应用的效率。这对除NB之外的其他训练开销较大的分类器来说尤为重要。
      2. 特征选择能够去除噪音特征,从而提高分类的精度。
    • 噪音特征:加入文本表示之后反而会增加新数据上的分类错误率的特征
    • 由于训练集的偶然性导出的不正确的泛化结果称为过学习

    特征选择算法

    • 给定类别c,对词汇表中的每个词项t,计算效用指标A(t,c),然后从中选择k个具有最高值的词项作为最后的特征。

    不同的特征选择方法

    • 特征选择方法主要基于其所使用特征效用指标来定义
    • 特征效用指标
      • 频率法—— 选择高频词项
      • 互信息—— 选择具有最高互信息的那些词项
      • 卡方x^2^

    分类评价

    • 评价必须基于测试数据进行,而且该测试数据与训练数据完全独立。
    • 很容易通过训练可以子训练集上达到很高的性能
    • 常用指标:正确率、召回率、F~1~值、分类精确率等等
    • 宏平均:在类别之间求平均值 微平均:将每篇文档在每个类别上的判定放入一个缓冲池,然后基于这个缓冲池计算效果指标。

    宏平均

    • 对类别集合C中的每个类都计算一个F~1~值
    • 对C个结果求平均

    微平均

    • 对类别集合C中的每个类都计算TP、FP和FN
    • 将C中的这些数字累加
    • 基于累加的TP、FP、FN计算P、R和F~1~

    宏平均和微平均的适用范围

    • 宏平均和微平均的计算结果可能会相差很大。宏平均对每个类等同对待,而微平均则对每篇文档的判定结果等同对待
    • 由于F1值忽略判断正确的负例,所以它的大小主要由判断正确的正例数目所决定,所以在微平均计算中大类起支配作用。

    基于向量空间模型的文本分类

    • Rocchio方法
      • 基于质心或原型将整个向量空间划分成多个区域
    • kNN方法
      • 将K个最邻近文档所属的主类别赋给测试文档
    • 线性分类器
      • 指基于特征的简单线性组合就可以对文档进行分类的分类器

    基于向量空间的分类方法

    向量空间表示

    • 每个文档表示成一个向量,向量的每一维表示一个term
    • 向量可以归一化成单位长度
    • 高维向量空间
      • 维度非常高
      • 每个term就是一个坐标轴
      • 文档表示为空间的向量

    向量空间模型

    • 词项——文档矩阵:二值—> 计数 —> 权重矩阵(tf-idf)
    • 相关性 = 向量距离 : 欧式距离—> 夹角 —> 余弦相似度

    • 利用向量空间模型进行文本分类的思路主要基于邻近假设

      1. 同一类的文档会构成一个邻近区域
      2. 不同类的邻近区域之间互不重叠
    • 如何找到分类面决策边界(decision boundary)

    Rocchio方法

    Rocchio方法进行向量空间分类的思路

    • 利用质心来定义分类边界
    • 一个类别c的质心可以通过类中文档向量的平均向量或者质心想来来计算
    • 计算公式:

    Rocchio算法

    • 计算每个类的中心向量(所有文档向量的算术平均)
    • 将每篇测试文档分到离它最近的那个中心向量

    Rocchio算法中的决策边界

    • 利用质心来定义分类边界
    • 两类的边界由那些到两个类质心等距的点集组成(超平面)

    Rocchio分类方法的缺陷

    • 为了遵循邻近性的要求,Rocchio 分类中的每个类别一定要近似球形,并且它们之间具有相似球半径。

    KNN邻近方法

    kNN(k邻近)方法

    • kNN = k nearnest neighbors, k邻接
    • k = 1情况下的kNN:将每篇测试文档分给训练集中离它最近的那篇文档所属的类别。
    • 1NN不很鲁棒 —— 一篇文档可能会分错类或者这篇文档本身就返常
    • k>1情况下的kNN:将每篇测试文档分到训练集中离它最近的k篇文档所属类别中最多的那个类别
    • kNN的基本依据
      • 根据邻近假设,一篇测试文档d将和其邻域中的训练文档应该具有相同的类别。

    1NN分类器

    • 1NN分类器的判别边界是Voronoi剖分形成的多个线段的连接。Voronoi剖分会将整个平面分成|D|个凸多边形,每个多边形仅包含其对应的文档,而每个凸多边形是在二维空间种通过直线围成的凸区域。

    小结:KNN方法

    • 思路:将每篇测试文档分到训练集中离它最近的k篇文档所属类别中最多的那个类别
    • KNN的基本依据:根据邻近假设,一篇测试文档d将和其领域中的训练文档应该具有相同的类别
      • 当训练集非常大的时候,KNN分类精度很高
      • 当训练集非常小的时候,KNN效果很差

    线性分类器

    • 定义

    基于向量空间模型的文本分类

    二元线性SVM

    • SVM是最大间隔分类器的一种,它是局域向量空间的机器学习方法,其目标是找到两个类别之间的一个决策边界,使之尽量远离训练集上的任意一点。
    • SVM定义的准则是寻找一个离数据点最远的决策面。从决策面到最近数据点的距离决定了分类器的间隔

    小结:SVM要点

    • 线性SVM的结果分类器为:
    • SVM基本过程:
      • 基于给定训练数据集,通过二次优化过程寻找最佳的分类超平面
      • 对于待分类的新数据点,利用分类函数计算该点到超平面的距离
      • 距离的正负(分类函数的符号)决定了该数据点类别的归属
      • 如果该点在分类器的间隔之内,分了器可以在原来的两个类之外,返回“类别未知”

    文本聚类

    聚类介绍

    聚类的定义

    • 文档聚类是将一系列文档按照相似性聚团成子集或者簇的过程
    • 簇内文档之间应该彼此相似,相似度不大
    • 聚类是一种最常见的无监督学习方法
      • 无监督学习意味着没有已标注好的数据集

    分类VS聚类

    • 分类:有监督的学习
    • 聚类:无监督的学习
    • 分类:类别事先人工定义好,并且是学习算法的输入的一部分
    • 聚类:簇在没有人工输入的情况下从数据中推理而得
      • 但是很多因素会影响聚类的输出结果:簇的个数、相似度计算方法、文档的表示方式等。

    聚类在IR中的应用

    聚类假设

    • 在考虑文档和信息需求之间的相关性式,同一簇中的文档表现互相类似。
    • 聚类在IR中的应用所有应用都直接或间接基于上述聚类假设

    聚类在IR中的应用

    应用 聚类对象 优点
    搜索结果聚类 搜索结果 提供面向用户的更有效的展示
    “分散-集中”界面 文档集和文档子集 提供了另一种用户界面,即不需要人工输入关键词的搜索界面
    文档聚类 文档集 提供了一种面向探索式浏览的有效性的信息展示法
    基于语言建模的IR文档集 文档集 提高了正确率和/或召回率
    基于聚类的检索 文档集 加快了搜索的速度

    文档聚类用于提高召回率

    • 实现将文档集中的文档进行聚类
    • 当文档和查询匹配时,也返回包含d的簇所包含的其它文档
    • 我们希望通过上述做法,在输入查询“car”时,也能包含“automobile”的文档
    • 由于聚类算法会把包含“car”的文档和包含“automobile”的文档聚在一起

    聚类的要求

    • 一般目标: 将相关文档放到一个簇中,将不相关文档放到不同的簇中
    • 簇的数目应该合适,以便于聚类的数据集吻合
      • 一开始,假设给定簇的数目为K
      • 后面介绍K的半自动的方法
    • 其它目标:
      • 避免非常小和非常大的簇
      • 定义的簇对用户来说很容易理解
      • 其它……

    扁平聚类vs层次聚类

    • 扁平算法:

      • 通过一开始将全部或部分文档随机划分为不同的组
      • 通过迭代不断修正
      • 代表算法: K-均值聚类算法
    • 层次算法:

      • 构建具有层次结果的簇
      • 自底向上(Bottom-up)的算法称为凝聚式算法
      • 自顶向下的(Top-down)算法称为分裂式算法

    硬聚类vs软聚类

    • 硬聚类:每篇文档仅仅属于一个簇
      • 很普遍并且相对容易实现
    • 软聚类:一篇文档可以属于多个簇

    扁平算法

    • 扁平算法将N篇文档划分成K个簇
    • 给定一个文档集合及聚类结果簇的个数K
    • 寻找一个划分将这个文档集合分成K个簇,该结果满足最优划分规则
    • 全局优化:穷举所有的结果划分,从中选择最优的那个划分结果(无法处理)
    • 高效的启发式方法:k-均值聚类算法

    K-均值聚类算法

    最著名的聚类算法,算法十分简单,但是在很多情况下效果不错

    聚类中的文档表示

    • 向量空间模型
    • 欧式距离计算向量之间的相关性

    K-均值聚类算法

    • K-均值聚类算法中的每个簇都定义为其质心向量
    • 划分准则:使得所有文档到其所在簇的质心向量的平方和最小
    • 质心向量的定义:
    • 通过下列两部来实现目标优化:
      1. 重分配:将每篇文档分配给离它最近的簇
      2. 重计算:重新计算每个簇的质心向量

    K-均值聚类算法一定会收敛

    • RSS(Residual Sum of Squares)残差平方和 = 所有簇上的文档向量到质心向量的距离的平方和的总和
    • 每次重新分配之后RSS会下降
      • 因为每个向量都被移到离它最近的质心向量所代表的簇中
    • 每次重新计算之后RSS也会下降
    • 可能的聚类结果是有穷的,因此一定会收敛到一个固定点
    • 如果出现了等值的情况,算法都采用前后一致的方法来处理
    • 如果不关心少许文档在不同簇之间来回交叉的话,收敛速度通常会很快。但是完全收敛需要很庞大的迭代过程

    K-均值聚类算法的最优性

    • 收敛并不意味着会达到全局最优的聚类结果,这是K-均值聚类算法最大缺点之一。如果开始的种子选择不好,最终的聚类结果可能会非常糟糕。

    K-均值聚类算法的初始化

    • 种子的随机选择只是K-均值聚类算法的中初始化方法之一
    • 随机选择不太鲁棒:可能会获得一个次优的聚类结果
    • 更好的办法:
      • 非随机地采用某些启发式方法来选择种子(比如,过滤掉一些离群点,或则寻找具有较好文档空间覆盖度的种子集合)
      • 采用层级聚类算法寻找好的种子
      • 选择i次不同的随机种子集合,对每次产生的随机种子集合运行K-均值聚类算法,最后选择具有最小RSS的聚类结果。

    K-均值聚类算法的时间复杂度

    O(IKNM)-线性

    聚类评价

    内部准则

    一个内部准则的例子:K-均值聚类算法的RSS值。

    但是内部准则往往不能评价聚类在应用中的实际效用

    外部准则

    • 按照用户定义的分类结果来评价,即对一个分好类的数据集进行聚类,将聚类结果和事先的类别情况进行比照,得到最后的评价结果。
    • 目标:聚类结果和给定分类结果一致

    纯度

    • 对每个簇,找到类别cj,该类别包含wk中的元素最多,为nkj个,也就是说wk的元素最多分布在cj
    • 将所有n_{kj}求和,然后除以所有的文档数目N

    簇个数确定

    • 基本思路:
      • 从一个簇开始(K=1)
      • 不断增加簇
      • 对每个新的簇增加一个惩罚项
    • 在惩罚项和RSS之间折中,选择满足最佳折中条件的K
    • 给定聚类结果,定义文档的代价为其到质心向量的距离(失真率)
    • 定义全部失真率RSS(K)为所有文档代价和
    • 对每个簇一个惩罚项λ ,对于具有K个簇的聚类结果,总的聚类惩罚项为Kλ
    • 定义聚类结果的所有开销为失真率和总聚类惩罚项的和:RSS(K)+Kλ
    • 选择使得(RSS(k)+Kℷ)最小的K值

    本讲小结

    • 聚类的概念
    • 聚类在IR中的应用
    • K-均值聚类算法
    • 聚类评价
    • 簇个数确定
    展开全文
  • 后根据刷新该文件夹时出现的错误信息“ 无法从服务器中检索文件夹信息”百度了一下,即刻解决了问题,原来需要如此操作:其原因是由于缓冲造成的。 可以直接删除 Documents and Settings下对应用户的文件夹下的...

    今天有以为同事离职,把他手头的项目整合起来的时候发现一个项目文件夹无论如何也显示不了下面的文件,即使加入项目也如此。折腾了3个小时,不断的重新建立项目,更改IIS均无法解决。后根据刷新该文件夹时出现的错误信息“ 无法从服务器中检索文件夹信息”百度了一下,即刻解决了问题,原来需要如此操作:

    其原因是由于缓冲造成的。 
    可以直接删除 Documents and Settings下对应用户的文件夹下的VSWebCache的文件夹中对应的项目目录即可。

    最初用搜狗搜 了一下,没有找到答案,还是百度牛一点。

     

    展开全文
  • 使用JDBC检索MySQL数据库,如果遇到timestamp字段的值为空,那么会立即报出异常: ### Error querying database. Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql...

    使用JDBC检索MySQL数据库,如果遇到timestamp字段的值为空,那么会立即报出异常:

    ### Error querying database.  Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

    解决这个问题需要修改链接数据库JDBC的连接串,加上&zeroDateTimeBehavior=convertToNull

    例如:

    url=jdbc:mysql://192.168.129.136:3308/rhea?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull


    刷新项目,问题就解决了,返回的是null

    展开全文
  • 去掉word 2007可恶的信息检索

    千次阅读 2013-08-06 21:58:52
    word 2007,有时候会弹出信息检索的窗口,而且很难关掉。在遇到几次后,百度了下解决办法,再次记录下备忘。 按住 alt 键去点信息检索窗口的下拉箭头,可以展示下拉箭头,然后点击 关闭 即可。 (如果不...
  • 分布式信息检索

    千次阅读 2007-07-02 20:11:00
    本科毕业设计(论文) 题目 分布式信息检索
  • 信息检索常用方法 常用法 顺查法:以检索课题的起始年代为起点,按时间顺序由远及近查找。 优点:系统、全面、可靠。 倒查法:由近及远,一般用于新开课题,比较关注近期发表的文献,以便掌握近期该课题所达到...
  • 信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估的活动。通过评估可以评价不同技术的优劣,不同因素对系统的影响,从而促进本领域研究水平的不断提高。信息检索系统的目标是较少消耗情况下...
  • 因为我是在Google支付Demo运行的,结果把base64EncodedPublicKey 复制进去之后,就出现这个问题,一开始百度就说没有上传测试包到Google后台,至少是alpha版本的,我照做了,发现还是不行,后来我检查一下代码发现,...
  • 1、 检索产品信息 //MARK: - 格式化产品的价格 func formattedPrice(product:SKProduct) -> String {// NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init]; let numberFormatter:N
  • 网上查找一番,发现遇到同样问题的人还不少, 一种解决方法是:按住Alt,点击"信息检索"(Research)窗口的"X" 这种方法只能临时关闭该窗口,不能治本。   最终解决办法: 在Excel 2010版本
  • 全文检索 存储引擎 存储引擎记得设置为 InnoDB 创建倒排索引 ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名称 (字段1,字段2,字段3) WITH PARSER ngram; 注意:后面要加上WITH PARSER ngram 才可以进行中文检索,...
  • 搜索引擎是一个提供信息检索”服务的网站,它使用某些程序把因特网上的所有信息归类以帮助人们在茫茫网海搜寻有信息归类以帮助人们在茫茫网海搜寻到所需要的信息。 搜索引擎常常是用户利用网上资源的第一途径...
  • 信息检索基础知识总结

    千次阅读 2017-04-25 09:46:19
    在文本检索和处理应用, 可以通过该模型很方便的计算词频。有如下例子: S1:more ugly less bug is ugly. S2:more ugly less bug have bug. 根据上述S1、S2出现的单词, 我们能构建出一个字典,{1:"more",2:...
  • String hql = "from User u where u.id=? and u.name=:name";hibernate不报错,String hql = "from User u where u.name=:name  and u.id=?";hibernate会报 严重: cannot define positional parameter after...
  • 笔者在为手机安装全家桶时遇到了上图所示的问题。经过一番搜索,发现有大神指出,该问题的根本原因是软件要请求的services.googleapis.cn域名被解析到了国内。 解决思路就是将该域名解析到国外即可,有以下几种办法...
  • uniapp容易遇到问题

    千次阅读 2019-12-10 16:49:36
    当我们遇到一个图片上面需要添加label或text等子控件的时候,我们这时候就不要去使用image组件了,而是换成view,使用他的background-image属性,但是使用过程遇到一个问题,那就是如果这张图片我们是从后台获取...
  • .Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂 CLSID 为 {XXX} 的组件失败 Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂 CLSID 为 XXX 的组件失败 现将文章...
  • 布尔检索模型

    万次阅读 2017-10-08 20:53:01
    最近在看《Introduction to Information Retrieval》(中文版为《信息检索导论》,下文简称为“IR”),是最经典的信息检索书籍之一了。由于淞姐要求我细读这本书然后跟同事分享,就有了这个版块,之后会陆续添加...
  • 在做项目的过程,我遇到这样一个问题,就是本身的tableview 调用 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 方法的时候,最后几个位置点击后不能准确定位,比如说“#” 不管我如何...
  • 最近,在论坛遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。 1、求...
  • 电商项目中遇到的经典问题

    万次阅读 多人点赞 2019-01-13 10:35:05
    从3个方面来回答这个问题: |--系统背景及系统概述 |--系统包括的业务模块及主业务流程 |--责任模块 【回答示例】 第一个方面:系统背景及系统概述 优购时尚商城是香港上市公司百丽国际公司为拓宽旗下运动品牌...
  • vs2003打开一个项目时,出现了“项目刷新失败,无法从服务器中检索文件夹信息”的错误,解决如下:该问题是由于缓冲造成的。 删除 Documents and Settings下对应用户的文件夹下的VSWebCache的文件夹对应的项目目录...
  • 信息检索和网络数据领域(WWW, SIGIR, CIKM, WSDM, ACL, EMNLP等)的论文常用的模型和技术总结 引子:对于这个领域的博士生来说,看懂论文是入行了解大家在做什么的研究基础,通常我们会去看一本书。看一本书...
  • 信息检索、pooling method、MAP values、python 画图
  • 常用检索技术

    2012-05-16 12:29:41
    1. 布尔逻辑检索 利用布尔逻辑算符进行检索词或代码的逻辑组配,是现代信息检索系统最常用的一种技术。常用的布尔逻辑算符有三种,分别是逻辑或“OR”、逻辑与“AND”、逻辑非“NOT”。  2. 截词检索 截词检索...
  • 由于以前没有怎么认真弄过sql查询的问题,所以还是用最简单的方法去查询,但是这次遇到了单表上百万记录。我用select * from song where songname like '%key%';去查询,结果效率低到难以忍受。竟然用了三十多秒才出...
  • 信息检索和网络数据领域(WWW, SIGIR, CIKM, WSDM, ACL, EMNLP等)的论文常用的模型和技术总结 引子:对于这个领域的博士生来说,看懂论文是入行了解大家在做什么的研究基础,通常我们会去看一本书。看一本书固然...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,375
精华内容 48,150
关键字:

信息检索中遇到的问题