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

如果你此刻在百度百科上搜索“线性代数”,浏览器返回的结果究竟是怎样排序的?在百度的数据库里包含了无数条与“线性代数”有关的数据。通常情况下,一个数据库包含一组文档,通过搜索这些文档找到最符合搜索条件的文档,假设数据库包含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为


搜索结果可以表示为

因此,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],然后与搜索向量相乘。个人认为,后者计算更客观,但是计算量较大。

信息检索-矩阵理论与线性代数相关推荐

  1. 线性代数及矩阵论(七)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 文章目录 第二十三讲:微分方程和eAte^{At}eA ...

  2. 线性代数及矩阵论(十一)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 第三十四讲:左右逆和伪逆 前面我们涉及到的逆(inve ...

  3. 线性代数及矩阵论(三)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 文章目录 十一.矩阵空间.秩1矩阵和小世界图 1.矩阵 ...

  4. 线性代数及矩阵论(十)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 文章目录 第三十二讲:基变换和图像压缩 1.图像压缩 ...

  5. 1024-开启人工智能学习之旅

    个人简介   本人本科毕业于某985机械工程专业,学习了四年发现这个行业实在太过于枯燥,更实际的想法是当时觉得这个行业出去薪资待遇过低,因此保研到另一所985高校之后,选择了车辆工程专业,研究方向为: ...

  6. 《谱图论》读书笔记(第一章)

    目录 Chapter 1. 特征值和图的拉普拉斯算子 1.1 介绍 1.2 拉普拉斯算子和特征值 1.3 Basic facts about the spectrum of Graph 1.4 Eig ...

  7. 2014秋C++第14周OJ题目参考

    课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在 云学堂"贺老师课堂"同步展示,使用的帐号请 ...

  8. 【经典书】随机矩阵理论与无线网络

    来源:专知 本文约2000字,建议阅读5分钟 本文提供了一个关于随机矩阵的教程. 随机矩阵理论自提出以来,在物理学.统计学和工程学等领域都有广泛的应用.尽管早期的发展是由实际的实验问题所推动的,但随机 ...

  9. 机器学习--线性代数基础

    数学是计算机技术的基础,线性代数是机器学习和深度学习的基础,了解数据知识最好的方法我觉得是理解概念,数学不只是上学时用来考试的,也是工作中必不可少的基础知识,实际上有很多有趣的数学门类在学校里学不到, ...

  10. 科学计算:Python VS. MATLAB(3)----线性代数基础

    科学计算:Python VS. MATLAB(3)----线性代数基础 按:在介绍工具之前先对理论基础进行必要的回顾是很必要的.没有理论的基础,讲再多的应用都是空中楼阁.本文主要设涉及线性代数和矩阵论 ...

最新文章

  1. C# WinForm给Button按钮或其它控件添加快捷键响应
  2. redhat 配置yum代理源
  3. OpenGL延迟着色之三
  4. QTP- 对输入格式的检查
  5. Spring5参考指南:IOC容器
  6. (六)数据结构之“集合”
  7. 数据下发非标准用户权限测试
  8. 斐波那契数列不用数组_兔子数列——斐波那契数列
  9. mssql 查询每个业务员_每个社区管理员应阅读的7本书
  10. 【演讲实录】下一代企业级应用架构管理体系
  11. 【Hadoop】新旧Java MapReduce API的差异
  12. JDBC连接池DBUtils
  13. 极限编程价值观及最佳实践
  14. Python数据挖掘实战-唐宇迪-专题视频课程
  15. [审核]App审核被拒绝(本地网络权限弹框“Local Network”)
  16. KNN和Kmeans比较
  17. 如何系统学习领域驱动设计(DDD)?
  18. Linux-打包、压缩命令
  19. 微信小程序 - 如何利用百度飞桨实现图像分类识别
  20. 提高网络泛化能力,过拟合

热门文章

  1. 电子和程序设计学习网址
  2. 华为四核处理器K3V2
  3. 一个指导人机系统评估的框架
  4. 云计算(期末复习题含答案)
  5. Print Conductor中文版
  6. 国内遥感卫星资源综述
  7. FastStone Capture 下载
  8. 阿里巴巴android图标素材网,阿里巴巴图标素材库
  9. WAP1.x协议栈浅析-WSP协议
  10. Java 战国大富翁,中国古代八大富翁,比皇帝还有钱!其中三位是历史上公认的商圣...