• 词条归一化


    词条归一化

      词条归一化(token normalization)就是将看起来不完全一致的多个词条归纳成一个等价类, 以便在它们之间进行匹配的过程。最常规的做法是隐式地建立等价类 2,每类可以用其中的 某个元素来命名。比如,在文档和查询中,都把词条anti-discriminatory 和 antidiscriminatory映射 成词项antidiscriminatory, 这样对两个词中的任一个进行搜索,都会返回包含其中任一词的文档。 

      一种建立等价类的方法是维护多个非归一化词条之间的关联关系。该方法可以进一步扩 展成同义词词表的手工构建,比如将car 和 automobile归成同义词。这些词项之间的关系可以通过两种方式来实现。

      1、常用的方式是采用非归一化的词条进行索引,并为某个查询词项维护一张由多个词组成的查询扩展词表。当输入一个查询词项时,则 根据扩展词表进行扩展并将扩展后得到的多个词所对应的倒排记录表合在一块。

      2、另一种方式是 在索引构建时就对词进行扩展。比如,对于包含automobile的文档,我们同时也用car来索引(同样,包含car的文档也用automobile来索引)。 

    跳表合并倒排表

      

      如何设置跳表的宽度?

      

    跳表算法伪代码

      

      如果索引相对固定的话,建立有效的跳表指针则比较容易。但是如果倒排记录表由于经常 更新而发生变化,那么跳表指针的建立就比较困难。恶意的删除策略可能会使跳表完全失效。 

    含位置信息的倒排记录表及短语查询

      搜索引 擎要不仅支持而且能够高效实现短语查询。一个相关但是截然不同的概念是基于词项邻近关系 的权重设置(term proximity weighting),在该设置下一个包含多个词项并且词项出现的位置较 接近的文档会被优先返回。 位置索引信息存储每个token在每个doc中的tokenhit,通过tokenhit的位置距离可以判定是位为短语。(譬如在同一篇文档中的距离为+1或-1)

    二元词索引

      处理短语查询的一个办法就是将文档中每个接续词对看成一个短语。例如,文本 Friends,Romans, Countrymen 会产生如下的二元接续词对(biword):

        friends romans

        romans countrymen
      这种方法将每个接续词对看成词项,这样马上就能处理两个词构成的短语查询,更长的查询可以分成多个短查询来处理。比如,按照上面的方法可以将查询 stanford university palo alto分成如下的布尔查询:

        “stanford university” AND “university palo” AND “palo alto”

      但是相关的名词往往被各种虚词分开,比如短语the abolition of slavery或者renegotiation of the constitution。这种情况下,可以采用如下方法来建立二元词索引:首先对文本进行词条化然后进行词性标注,这样就可以把每个词项归成名词(N,也包括专有名词)、虚词(X,冠词和介词)和其他词。然后将形式为NX*N非词项序列看成一个扩展的二元词。每个这样的扩展二元词对应一个词项。例如:

        renegotiation of the constitution

        N                   X  X    N

      要利用这样的扩展二元词索引处理查询,也需要将查询分析成 N 和 X,然后将查询划分成扩展的二元词,最后在索引中进行查找。

    短语查询的混合索引机制

      二元词索引和位置索引这两种策略可以进行有效的合并。假如用户通常只查询特定的短语,如Michael Jackson,那么基于位置索引的倒排记录表合并方式效率很低。一个混合策略是:对某些查询使用短语索引或只使用二元词索引,而对其他短语查询则采用位置索引。短语索引所收录的那些较好的查询可以根据用户最近的访问行为日志统计得到,也就是说,它们往往是那些高频常见的查询。当然,这并不是唯一的准则。处理开销最大的短语查询往往是这样一些短语,它们中的每个词都非常常见,但是组合起来却相对很少见 1。将查询Britney Spears 加入短语索引可能仅仅对该查询提供一个大概 3 倍的加速效果,这是因为很多提到其中一个单词的文档都是相关文档。而如果将The Who加入短语索引那么会对这个查询有 1 000 的加速效果。因此,实现中更期望将后者加入到短语索引中,尽管相对前者,其出现的频率较低(也就是说这些短语都是非常见查询)。

     

  • 相关阅读:
    python之openpyxl模块(最全总结 足够初次使用)
    随笔 遇见
    浅析企业服务器安全防护的七个切入点
    jQuery.API源码深入剖析以及应用实现(1) - 核心函数篇
    常用Javascript精选(二)
    随笔 生活与生命
    jquery插件 8个很有用的jQuery插件
    jquery插件 5个小插件
    常用Javascript精选(一)
    jQuery库与其他JS库冲突的解决办法(转)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3313696.html
Copyright © 2020-2023  润新知