信息检索-矩阵理论与线性代数

最近补充线代知识,在书上看到线性代数的应用与模型–信息检索问题,觉得挺有意思,便记录了下来:

如果你此刻在百度百科上搜索“线性代数”,浏览器返回的结果究竟是怎样排序的?在百度的数据库里包含了无数条与“线性代数”有关的数据。通常情况下,一个数据库包含一组文档,通过搜索这些文档找到最符合搜索条件的文档,假设数据库包含m个文档和*n个可用于搜索的关键词(这个关键词应该就是key吧),关键词按字母顺序排列。数据库可以表示成m×n维矩阵*A,每一个文档表示为矩阵的一列,即Aij表示第i个关键词在j文档中出现的相对频率,搜索向量x表示为0与1的组合,如果第i个关键词在搜索列表中,则向量x的第i个元素为1,否则为0;为完成搜索,只需作乘积ATX(T为A的转置)
下面介绍两种常用的搜索方法:

  • 1.简单匹配搜索

这种方法不考虑关键词出现的相对频率.
例如,假设数据库包含下列书名:线性代数、线性代数与空间解析几何、线性代数及其应用,按关键词拼音字母顺序给出关键词集合为“代数、几何、线性、应用”,对于简单匹配搜索,只需要在数据库中使用0和1,而不考虑关键词的出现的相对频率,aij=1表示第i个关键词出现在第j本书的书名中,aij=0表示第i个关键词没有出现在第j本书的书名中,书名对应的数据库矩阵如下图:
在这里插入图片描述

如果搜索的关键词是“代数、几何”,则数据库搜索矩阵A和关键词搜索向量x为
A=
在这里插入图片描述
搜索结果可以表示为在这里插入图片描述
在这里插入图片描述
因此,y的各个分量表示各书名与各搜索向量的匹配程度,y2=2匹配程度最高,故返回第二个书名。

  • 2.相对频率搜索

通常,对数据库的搜索会找到所有包含搜索关键词的文档(不仅仅只搜索书名),并将它们按照相对频率进行排序,数据库矩阵的元素能反应出关键词在文档中出现的频率。例如,假设数据库中存储所有的关键词,均按拼音字母排序,第2个关键词是“代数”,第4个关键词是“线性”,数据库中文档6包含所有关键词的总次数为100,“代数”出现了10次,“线性”出现了5次,那这两个关键词的相对频率为10/100=0.1和5/100=0.05,并且他们对应的数据库矩阵元素值为a26=0.1,a46=0.05,为搜索这两个关键词,将搜索向量的x2=x4=1,其余分量为0,计算yi=ATX,即y6=a261+a461=0.15,取最大值的分量数(即相对频率最大),故优先搜索。

学习了基于线代的信息检索问题的解感觉豁然开朗,以前可能一知半解,对数据的搜索匹配没什么理论上的概念,就认为是匹配了就输出,对于有多种匹配情况,如果输出,输出哪项才是值得探究的问题。

总结一下:基于线性代数的信息检索问题有2种解决方案:1.简单搜索;2.相对频率搜索。简单搜索着重数据库中书名关键词与搜索向量的匹配度,通过搜索关键词是否出现在书名中确定数据库矩阵元素取值0/1,然后与搜索向量相乘。相对频率搜索,根据关键词出现在某文档中的频率确定数据库矩阵aij的取值[0,1],然后与搜索向量相乘。个人认为,后者计算更客观,但是计算量较大。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值