该系统是对深圳大学公文通的检索系统的简单实现,既然是简单实现,也就说只实现了初始的功能,现在暂时只能对一个月的公文通进行检索,而且是系统初始化时所抓取的数据。之后有时间会不断让系统升级,使得可以实时检索和有更高的性能。
源码请点击这里:Artist。

系统结构及最终效果

系统结构

最终效果

基本的页面结构:

各个选项详细:

爬虫及文本提取器

页面分析

下面仅仅通过显示的图片进行说明页面的分析,准确的分析需要通过页面html代码进行更详细的分析。

这里的文本提取器使用的是POI对Office文档进行文本提取(适应了97-2003版本 和 2007+版本),使用pdfbox对PDF文档进去文本提取。同时使用了简单工厂模式进行封装。

索引构造系统

该索引构造系统使用的是自己实现的算法,而非第三方(如lucene)工具。系统的基本结构如下:

索引构造器:
将传入的文章按照文章标题、文章内容、附件标题、附件内容进行创建倒排索引。

索引管理器:
保存、添加和获取不同域的倒排索引、文件长度表。

索引检索器:
根据传入的query,计算文件与query的余弦相似度,并进行排序返回。

索引构造器

将传入的文章按照文章标题、文章内容、附件标题、附件内容进行创建倒排索引。

遍历文章列表:

  1. 对文章标题构建倒排索引
  2. 对文章内容构建倒排索引
  3. 对文章附件标题构建倒排索引
  4. 对文章附件内容构建倒排索引

处理主要分为两个部分:

  1. 将内容分词,添加到创建的倒排索引中
  2. 计算内容的词汇量,添加到文件长度表中

为了能够对文本进行正确的分析,这里对第三方的开源分词工具HanNP进行了分装为类WordSegmenter。此外,分词的工作交由类IndexTool。该类进行方法的分装,分词时将调用IndexTool.termTokenize()方法,该方法中会将英文词汇统一转化为小写。

索引管理器

两个重要仓库:
regionMapPostings: 保存不同域的倒排索引
regionDocLengths: 保存不同域的{文档编号和对应的文档词频}

此外regionDocLengths还隐式地保存了不同域的文档总数。并分装了相应的获取不同域的文档总数方法。

索引管理器

添加不同域的倒排索引表到索引管理器中,添加不同域的文档长度记录表到索引管理器中已经从中获取相关数据。

索引检索器

根据传入的query,计算文件与query的余弦相似度,并进行排序返回。

检索器整合了构造器和管理器,其中管理器是最重要的部件,是检索的数据来源。

CosineScore是检索器最重要的方法,用于计算文档与请求的相似度,从而确定放回符合用户请求的文档内容。其中Wf_td和w_tq分别是词项t在请求中的权重和词项t在文档中的权重。均为TF-IDF。

CosineScore(q)
float Score[N] = 0
Initialize Length[N]
for each query term t
do calculate w_tq and fetch postings list for tfor each pair(d, tf_td) in postings listdo Scores[d] += wf_td * w_tq
Read the array Length[d]
for each d
do Scores[d] = Scores[d]/Length[d]
return Top K components of Scores[]

用户交互

整个系统作为一个web应用提供服务,使用了springMVC+mybatis的框架。

Seacher类

该类除了初始化整个检索系统,还是信息检索的入口。

start方法:初始化系统
search方法:对query进行处理,得到按相似度从高到低有序的文章id数组。并利用该数组集合其他检索条件从数据库中获取数据,并返回到给用户。

Index类

MVC模型的控制器。

深圳大学公文通简易检索系统相关推荐

  1. 74LS148+74LS47简易病房呼叫系统电路图

    设计目的: (1) 设计一个可供至少6个病房呼叫的简易呼叫系统: (2) 掌握数字电路设计与调试方法,熟悉相应集成电路的使用方法. 设计功能: (1)至少能满足来自6个病房的呼叫,为每个病房设置呼叫开 ...

  2. paddlenlp Windows本地搭建语义检索系统

    paddlenlp Windows本地搭建语义检索系统 一. 运行环境 软件环境: python >= 3.8.16 paddlenlp = 2.5.2 paddlepaddle-gpu =2. ...

  3. 业界首个声纹识别与音频检索系统上线,10分钟搭建产业级应用

    随着深度学习技术的升级与产业的发展,智能语音交互已成为了我们日常生活中一个重要的组成部分,并广泛应用在地图导航播报.智能客服回访.手机语音输入以及各类智能助手等应用场景中,可以说语音已成为了人与机器之 ...

  4. 业界首个声纹识别与音频检索系统,10分钟搭建产业级应用

    随着深度学习技术的升级与产业的发展,智能语音交互已成为了我们日常生活中一个重要的组成部分,并广泛应用在地图导航播报.智能客服回访.手机语音输入以及各类智能助手等应用场景中,可以说语音已成为了人与机器之 ...

  5. 什么检索是借助计算机技术进行自动标引的,自动文献检索系统

    相关文献 随着计算机技术的发展,文献检索系统中的自动标引技术也不断提高,其中,基于汉语的自动标引技术是现今国内外图书情报专家研究的热点,提出了许多方案.笔者通过长期的观察和实践,认为建立科学.有效的抽 ...

  6. 在计算机检索系统中常用的检索技术有,计算机检索技术有哪些

    计算机检索技术:1.布尔逻辑检索:利用布尔逻辑算符进行检索词或代码的逻辑组配.2.截词检索:截词检索是计算机检索系统中应用非常普遍的一种技术.3.位置检索.4.字段限定检索.5.加权检索.6.聚类检索 ...

  7. 世界四大重要检索系统简介

    SCI.EI.ISTP.ISR是世界四大重要检索系统,其收录论文的状况是评价国家.单位和科研人员的成绩.水平以及进行奖励的重要依据之一.我国被四大系统收录的论文数量逐年增长.学校在"1512 ...

  8. 企业微信万亿级日志检索系统

    作者:datonli,腾讯 WXG 后台开发工程师 背景 开发在定位问题时需要查找日志,但企业微信业务模块日志存储在本机磁盘,这会造成以下问题: 日志查找效率低下:一次用户请求涉及近十个模块,几十台机 ...

  9. 文通表格识别系统是表格数据录入的好帮手

    在工业信息化水平不断提高的时代,各单位需要处理的纸质表格数据量非常大,通过手工将这些数据录入到系统中,费时费力.效率就是企业生命,文通表格识别系统将纸质表格数据电子化,能够帮助您及时.准确得到第一手数 ...

最新文章

  1. 【334天】每日项目总结系列072(2018.01.05)
  2. android startactivity 跳到锁屏_「瀑布屏」手机到底好不好用?
  3. javascript 控制键盘输入
  4. sentinel 时间窗口的实现
  5. 两个相同矩形脉冲卷积_两个矩形脉冲的卷积
  6. 阿里达摩院为什么吸引到世界顶尖人才?
  7. Windows编译OpenCV
  8. sci四区大水刊 计算机,sci一区水刊_十大水榜sci杂志_四大垃圾sci杂志
  9. Android系统分辨率修改方法,Android:系统分辨率的修改
  10. CADD课程学习(4)-- 获取没有晶体结构的蛋白(SWISS-Model)
  11. 继电保护原理1.1-电流、方向保护
  12. pdf转word完全免费软件
  13. 如何root安卓手机_2019年安卓手机一键root教程,附科普安卓为何root困难?
  14. 微软雅黑字体包替换XP的宋体
  15. 你真的了解composer吗
  16. 扩散模型(Diffusion Model)——由浅入深的理解
  17. 电脑控制android 源代码,[源代码]电脑通过adb控制安卓手机
  18. “华为”和“荣耀”哪个好?同等品质年轻人更喜欢Ta
  19. 原力计划S5上榜博主名单公布(第四期已更新)
  20. java项目宕机出现原因,java服务宕机原因查询

热门文章

  1. photoshop第四章:图片的处理
  2. [NOIP2009]靶形数独
  3. 使用FitHiC评估染色质交互作用的显著性
  4. 几何画板 5.07 最强中文版
  5. YouTube多语种视频营销,低成本也能带来高收益
  6. 嵌入式软件工程师必备技能
  7. 前端开发者如何规划并构建UCD的中长期前端开发能力与团队
  8. speedtest 测试服务器上传下载速度
  9. 神经网络教学设计方案,神经网络教学视频
  10. 基于腾讯云实时音视频Web API之Demo运行