• 参数化索引及域索引


    参数化索引及域索引

      考虑查询“ 寻找由WilliamShakespeare于1601年撰写、其中包含短语alaspoorYorick的文 档” 。和通常一样,查询的处理过程需要进行倒排记录表的合并操作,但是不同的是,这里在处 理上述查询时还会涉及到参数化索引(parametric index)上的合并操作。 (每每一个可搜索的参数分别制作一份倒排索引)

      域(zone)和字段很相似,只是它的内容可以是任意的自由文本。字段通常的取值可能性 相对较小,而域可以由任意的、数目无限制的文本构成。 

      参数化索引及域索引的意思是把参数、域直接加入词典,如下:

      

      但更普遍的方法是把信息记录在文档属性中。

     问题:

      1、目前架构中是否支持参数化索引。

    域加权评分

      假定每篇文档有 l 个域,其对应的权重分别是 g1, . . . , gl [0, 1],它们满足 ∑l gi = 1 。令 si 为查询和文档的第 i 个域的匹配得分(1 和 0 分别表示匹配上 i=1

    和没匹配上)。例如,在 AND 查询下,如果所有查询词项都出现在某个域中,则这个域的对应得分为 1;否则为 0。实际上,域中查询词项到{0,1}集合的出现关系映射可以是其他任何布尔函数而不只是 AND 函数。于是,域加权评分方法可以定义为:

      

      该方法有时也称为排序式布尔检索(ranked Boolean retrieval)。 

      

    权重学习

      人们越来越倾向于从人工标注好的训练数据中学习到这些权重。这种方法属于信息检索中一类被称为机器学习相关性(machine-learned relevance)评分及排序方法的范畴。

      1. 给定一批训练样本(training example),每个样本可以表示成一个三元组<查询 q, 文档 d, q 和 d 的相关性判断>。最简单的情况下,相关性判断的结果要么是相关(relevant) 要么是不 相关(nonrelevant)。更细致的方法在实现时会利用更多级别的相关性判断结果。

      2.利用上述训练样本集合学习到权重 gi,使得利用这些权重在训练集中计算到的每篇文档 的得分尽量接近事先给出的相关性判断结果。 

      对于域加权评分来说,上述过程实际上是在学习一个线性函数,它能够组合不同域的布尔 得分结果。这种学习方法中的较高代价主要来自人工进行的相关性判断,这些判断需要消耗大 量人力,尤其在文档集(如 Web)频繁变化的情况下这种代价更大。 

    词项频率及权重计算

      首先,我们对于词项 t,根据其在文档 d 中的权重来计算它的得分。最简单的方式是将权重设置为 t 在文档中的出现次数。这种权重计算的结果称为词项频率(term frequencey),记为 tft,d,其 中的两个下标分别对应词项和文档。 

    逆文档频率

      某些词项对于相关度计算来说几乎没有或很少有区分能力。 例如,在一个有关汽车工业的文档集中,几乎所有的文档都会包含 auto,此时,auto就没有区分能力。为此,下面我们提出一种机制来降低这些出现次数过多的词项在相关性计算中的重要 性。一个很直接的想法就是给文档集频率(collection frequency)较高的词项赋予较低的权重, 其中文档集频率指的是词项在文档集中出现的次数。这样,便可以降低具有较高文档集频率的词项的权重。 

      实际中,一个更常用到的因子是文档频率(document frequency)dft,它表示的是出现 t 的 所有文档的数目。这是因为文档评分的目的是区分文档,所以最好采用基于文档粒度的统计量 (比如出现 t 的所有文档的数目),而不是采用基于整个文档集的统计量来计算。 

      由于 df 本身往往较大,所以通常需要将它映射到一个较小的取值范围中去。为此,假定所 有文档的数目为 N,词项 t 的 idf(inverse document frequency, 逆文档频率)的定义如下: 

      

    tf-idf 权重计算

      对于每篇文档中的每个词项,可以将其 tf 和 idf 组合在一起形成最终的权重。tf-idf 权重机 制对文档 d 中的词项 t 赋予的权重如下: 

      

      换句话说,tf-idft,d 按照如下的方式对文档 d 中的词项 t 赋予权重:

      (1) t 只在少数几篇文档中多次出现时,权重取值最大(此时能够对这些文档提供最强的 区分能力);

      (2) t 在一篇文档中出现次数很少,或者在很多文档中出现,权重取值次之(此时对最后 的相关度计算作用不大);

      (3) 如果 t 在所有文档中都出现,那么权重取值最小。 

      这样,就可以把文档看成是一个向量(vector),其中的每个分量都对应词典中的一个词项, 分量值为权重值。当某词项在文档中没有出现时,其对应的分量值为 0。 

    向量空间模型

      文档向量的概念,其中每个分量代表词项在文档中的相对重要性。一系列文档 在同一向量空间中的表示被称为向量空间模型(vector space model,简称 VSM)

    假设文档 d 对应的向量用V (d) 表示,其中每个分量对应一个词项。一组文档的集合可以看成向量空间中的多个向量,每个词项 对应一个坐标轴。 计算两篇文档 d1 和 d2 相似度的常规方法是求向量V (d1 ) 和V (d2 ) 的余弦相似度(cosine similarity): 

      

      这实际上就是求cos,以2个向量的夹角大小来确定两向量的相似度。如果结果接近1,则相似,接近0则不相似。

      

    查询向量

      将文档表示成向量的一个令人信服的理由是也可以将查询表示成向量。考虑查询 q=jealous gossip,那么可以将查询转化为单位向量 v (q) = (0,0.707,0.707)。现在,最关键的思路是按照和 q 的内积计算结果对每篇文档 d 进行 评分: 

      

  • 相关阅读:
    【Python编程:从入门到实践】chapter6 字典
    【Python编程:从入门到实践】chapter5 if语句
    【Linux_Unix系统编程】Chapter9 进程凭证
    【Linux_Unix系统编程】Chapter10 时间
    【Linux_Unix系统编程】Chapter8 用户和组
    【Linux_Unix系统编程】chapter7 内存分配
    【Linux_Unix系统编程】chapter6 进程
    书籍 人生
    流程图软件
    技术文章,iOS,iOS开发系列 数学函数
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3575785.html
Copyright © 2020-2023  润新知