从Lucene到Elasticsearch:全文检索实战之信息检索模型

常用术语::

7180a88f368e3ecce438ea529bdca3b6ea9.jpg

7616e69959917e58b639426a16b90da72af.jpg

40599a09b9413f8a28c04164214639ca5b5.jpg

 

60499a2d67c0d6e49f087b080a337688159.jpg

分词算法::

  • 词典匹配分词法
    • 与机器字典词条匹配
    • 包括:
      • 正向最大匹配
      • 逆向最大匹配
      • 最小切分(一句话切的词数最小)
  • 语义理解分词法
    • 目前中文分词没达到这种级别
  • 词频统计分词法
    • 相邻的字搭配出现的频率越高,越有可能是个词
    • 不需要切分词典
    • 高频共同出现的两个字有的也不是一个词,需要专门处理以提高精度
    • 应与字典分词结合使用
    • 可以很好的解决新词未被收录词典的问题

倒排索引

  • 反向索引

布尔检索模型

  • 布尔运算符连接各个检索词
  • 优先级:NOT>AND>OR
    • AND
    • OR
    • NOT

单词-文档矩阵

1dde157712ccb9dfdc81a9b64a035f9d177.jpg

2c8d539d8863db97116cb1be4759c686bae.jpg

8630017101f8bf625177b0dba72425cda40.jpg

  • 结果是0101:代表文档2 和文档4 为查询结果

布尔运算模型优点:

  1. 符合人们思维
  2. 表达式直观清晰
  3. 方便扩检、缩检
  4. 易于计算机实现

布尔运算模型缺点:

  1. 仅仅基于0、1二元判断标准
    • 不能进行关键词重要性排序
  2. 没有反应语义含义
    • 很多用户想查询的东西很难用表达式表达
  3. 完全匹配导致太少的结果被返回
    • 没有加权的概念,容易出现漏检

tf-idf 权重计算

  • tf-idf 叫词频-逆文档频率
  • 词项(item)的重要性由:
    • 在文档中出现的频率正相关
    • 在文档集中出现的次数反相关
    • f0b1072515348cb4c450ecc42a7072d1548.jpg
  • lucene 采取的计算词频标准化的方法:
    • 588ee8bad1a6447fe4ab80d8564f285dac9.jpg
  • df 代表文档集中出现词项的文档数量
    • 88f560a1e4b50e4a734446e5b0909e480b2.jpg
      • + 1 是因为分母不能为零
  • 词项权重::
    • eaa72a03afc6500fee7ef489a9f7eca2be5.jpg
  • 一个文档就可以表示成是 n 维词项向量
    • 3dc843640ea6334f9c5747622bf33e7530d.jpg

向量空间模型::

  • 向量求余弦的方法计算相似性
  • 余弦相似性理论:
    • 7259097926fe833c072ea97d2411b54e5ab.jpg
    • e5cafef5664f6b41c5842360c2b47088f63.jpg
  • Lucene 的评分机制更加复杂:
    • d58b33d742dca12baf45c132bf9ce9987f6.jpg
    • cf01c56f0718b95d86ba3c41eeea4270959.jpg
    • 上述公式整体依然是按照tf-idf 和向量空间模型的相似性计算

概率检索模型::

  • 从概率排序原理推导而来
  • 基本思想:
    • 给定一个查询,返回结果是按照与查询语句相关性得分排序的
  • 比如:BM25模型(best match 25)
    • 最成功的概率检索模型
  • 贝叶斯决策理论
    • 概率检索模型的数学基础
    • 在机器学习、自然语言处理等领域广泛应用
    • 海量文本数据分类:
      • 比如垃圾邮件甄选、过滤
    • 核心思想:选择高概率对应的类别

a11147343f5c668eabac9c22783b0e266cd.jpg

c8fdf7fd2846e83066aceccbfd0ccb92394.jpg

文档D,P(R|D)属于相关文档集的概率、P(NR|D) 不属于相关文档集的概率

  • 由贝叶斯公式计算:
    • 1a21982ff127328f0b6a7ac8b82860a6020.jpg
  • 推导得出公式:

2d47ff0adbadd87d950c9667492779122eb.jpg

二值独立模型::

  • 词项的独立性假设(假设每个词都是独立出现的
  • 文档频率转换成词项概率的乘积
    • c43e68a5ff63f0011987d159b8ecadf32cb.jpg
    • 84aa7ff5f20fdefaa1b073b1b011510fa4a.jpg
    • 6f8d05c617f5dcff8aa79b2c3460504a160.jpg
  • 推导出公式::
    • 85aed108b25b45030af92cbd8ccf2c6c28c.jpg
      • Pi 表示第i 个词项出现在文档中的概率
      • Si 表示第i 个词项在不相关文档集中出现的概率
      • Di = 1 表示单词在文档出现
      • Di = 0 表示单词在文档不出现
    • 7ae52dcfc5e87acb51d7202f16f76d9b262.jpg
    • 最后是计算log 值,做一个平滑处理不影响结果 大小顺序
      • 分子分母 加上常数,避开log(0)
        • d6d9a4b17ae80d39921bf4ccc9f301530e3.jpg
  • 最后公式::
    • 2d644ae24ffe1692db1a01312f0e4edcff0.jpg

Okapi BM25 模型::

  • 二值独立模型,仅仅考虑了词项出现与否,没有考虑单词的权重,实际效果不理想
  • BM25 进行了改进,考虑进去了:
    • idf 因子、文档长度、查询词频等因素
      • cec3df7870bc6b55ab192ef1aef41ed1040.jpg

BM25F ::

  •  Okapi BM25 仅仅是把文档当做整体考虑
  • 没有考虑不同区域的权重差异
    • 比如网页,标题、主题词、摘要、内容权重是不一样的

b3e9bfafa76d7d9277a8eb84fe233862db7.jpg

转载于:https://my.oschina.net/u/3847203/blog/2996346

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值