热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

布尔模型和向量空间模型上的问题求解

布尔模型和向量空间模型上的问题求解原文:https://www . geesforgeks . org/布尔模型和向量空间模型上

布尔模型和向量空间模型上的问题求解

原文:https://www . geesforgeks . org/布尔模型和向量空间模型上的问题解决/


布尔模型:

它是一个基于集合论和布尔代数的简单检索模型。查询被设计成具有精确语义的布尔表达式。检索策略基于二元决策准则。布尔模型认为索引项在文档中存在或不存在。

问题解决:

考虑 5 个包含 6 个术语的文档


  • 文档 1 =“术语 1 术语 3”

  • 文件 2 = '条款 2 条款 4 条款 6 '

  • 文件 3 = '条款 1 条款 2 条款 3 条款 4 条款 5 '

  • 文件 4 = '条款 1 条款 3 条款 6 '

  • 文件 5 = '条款 3 条款 4 '

布尔模型中的文档


|   | **第一期** | **第二学期** | **第三学期** | **第 4 期** | **第 5 期** | **第 6 期** |
| **文件 1** | one | Zero | one | Zero | Zero | Zero |
| **文件 2** | Zero | one | Zero | one | Zero | one |
| **文件 3** | one | one | one | one | one | Zero |
| **文件 4** | one | Zero | one | Zero | Zero | one |
| **文件 5** | Zero | Zero | one | one | Zero | Zero |

考虑一下这个查询

找到包含条款 1 和条款 3 而不是条款 2的文件

term1 ∧ term3 ∧ ¬ term2


|   | **术语 1** | **第二学期** | **第三学期** | 第四学期 | 第五学期 | 第六学期 |
| **文件 1** | **1** | **1** | **1** | Zero | Zero | Zero |
| **文件 2** | **0** | **0** | **0** | one | Zero | one |
| **文件 3** | **1** | **0** | **1** | one | one | Zero |
| **文件 4** | **1** | **1** | **1** | Zero | Zero | one |
| **文件 5** | **0** | **1** | **1** | one | Zero | Zero |


  • 文档 1 : 1 ∧ 1∧ 1 = 1

  • 文档 2 : 0 ∧ 0 ∧ 0 = 0

  • 文档 3 : 1 ∧ 1 ∧ 0 = 0

  • 文件 4 : 1 ∧ 1 ∧ 1 = 1

  • 文档 5 : 0 ∧ 1 ∧ 1 = 0

基于以上计算文档 1文档 4 与给定的查询相关

矢量模型:

执行运算的方法和计算所需的公式在第 1 部分的上一篇文档中有介绍。考虑以下文档集合。


  • 文档 1 = '一二'

  • 文件 2 = '三二四'

  • 文档 3 = '一二三'

  • 文档 4 = '一二'

使用的公式

tf_i,_j = \frac {freq_i,_j}{max_l(freq_l,_j)}

idf_i = log\frac{N}{n_i}

w_i,_j = tf_i * log\frac{N}{n_i}

sim(dj,q) = \frac{\sum_{i=1}^t w_i,_j * w_i,_q}{\sqrt{\sum_{i=1}^t w^2_i,_j} * \sqrt{\sum_{i=1}^t w^2_i,_q}}

有些术语在文档中出现三次、两次,有时只有一次。文档总数 N=4。因此,这些术语的 IDF 值为:

one --> log2(4/3) = 0.4147
two --> log2(4/4) = 0
three --> log2(4/2) = 1
four -->log2(4/1) = 2

布尔模型中的表示


|   | **一** | **两个** | **三** | **四** |
| **文件 1** | one | one | Zero | Zero |
| **文件 2** | Zero | one | one | one |
| **文件 3** | one | one | one | Zero |
| **文件 4** | one | one | Zero | Zero |

词频计算

one --> 3/4 = 0.75
two --> 4/4 = 1
three --> 2/4 = 0.5
four --> 1/4 = 0.25

权重的计算(tf * idf )

weight(one) --> 0.75 * 0.4147 = 0.3110
weight(two) --> 1 * 0 = 0
weight(three) --> 0.5 * 1 = 0.5
weight(four) --> 0.25 * 2 = 0.5

用权重表示向量模型


|   | **一** | **两个** | **三** | **四** |
| **文件 1** | 0.3110 | Zero | Zero | Zero |
| **文件 2** | Zero | Zero | Zero point five | Zero point five |
| **文件 3** | 0.3110 | Zero | Zero point five | Zero |
| **文件 4** | 0.3110 | Zero | Zero | Zero |

查询:包含“一三三”的文档

计算查询术语的权重(术语频率)


  • 重量(一)–> 1/3 = 0.333

  • 重量(三)–> 2/3 = 0.667

向量表示


  • 文件\vec{d}_j = {0.3110, 0, 0.5, 0.5 }

  • 查询\vec{q} = {0.333, 0, 0.667, 0 }

相似度计算

sim(d1,q) = \frac{0.3110 * 0.333 + 0 * 0 + 0 * 0.667 + 0 * 0}{\sqrt{ (0.3110^2 + 0^2 + 0^2 + 0^2) } *\sqrt {(0.333^2+ 0^2 + 0.667^2 + 0^2)}} = 0.4466\ sim(d2,q) = \frac{0 * 0.333 + 0 * 0 + 0.5 * 0.667 + 0.5 * 0}{\sqrt{ (0^2 + 0^2 + 0.5^2 + 0.5^2) } *\sqrt {(0.333^2 + 0^2 + 0.667^2 + 0^2)} }= 0.4001 \ sim(d3,q) = \frac{0.3110 * 0.333 + 0 * 0 + 0.5 * 0.667 + 0 * 0}{\sqrt{ (0.3110^2 + 0^2 + 0.5^2 + 0^2)} * \sqrt{(0.333^2 + 0^2 + 0.667^2 + 0^2)}} = 0.9086\ sim(d4,q) = \frac{0.3110 * 0.333 + 0 * 0 + 0 * 0.667 + 0 * 0}{\sqrt {(0.3110^2 + 0^2 + 0^2 + 0^2)} * \sqrt{(0.333^2 + 0^2 + 0.667^2 + 0^2)}} = 0.4466\

文档的排名(对于排名,我们遵循了统计中的方法,将相同的排名分配给两个不同的项目)


| 文档 | **第二** |
| 文档 | **第四节** |
| 文档 | **1 号** |
| 文档 | **第二** |

由于文档 3 之间的相似性大于其他文档之间的相似性,第三文档与查询更相关。


推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了求解gcdexgcd斐蜀定理的迭代法和递归法,并解释了exgcd的概念和应用。exgcd是指对于不完全为0的非负整数a和b,gcd(a,b)表示a和b的最大公约数,必然存在整数对x和y,使得gcd(a,b)=ax+by。此外,本文还给出了相应的代码示例。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
author-avatar
荣媛厉4
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有