乐趣区

关于数据库:MongoDB在信息资源共享建设的应用实践


本文来自取得《2021MongoDB 技术实际与利用案例征集流动》入围案例奖作品
作者:张先明

1. 背景介绍

成立于上个世纪 50 年代,有 60 多年历史的某核心(以下简称“核心”)所提供服务的属性是软科学;核心服务提供的产品是大量面向业余的,高质量的业余技术报告。如何更好的利用这些海量的文献以促成工作倒退,是一个核心要面对的问题。

为此,信息化部门开始着手建设“信息资源共享零碎”(以下简称“零碎”)。零碎的建设目

标与意义是:

在单位外部,发展不同部门之间的信息资源的共用,以便达到正当的资源配置;

进步信息流动速度,升高取得老本;实现外部信息资源的通顺,进步信息资源利用率;

实现核心外部信息共享的积攒与充沛共享为最终目标。

2. 零碎应用技术

2.1 零碎建设面临的要点

通过调研,核心认为能够借鉴互联网用户常常应用的百度,搜狗这样的网络检索系统。互联网用户检索进去的是各类网页,而本零碎用户检索进去的是核心所领有文献。基于这一点,咱们要思考如下几个要点:

1. 如何把核心大量的文献保留在一个数据平台当中,这个平台不仅要完整的保留文献,还要提供高效的查问,导出服务。

2. 一个文献往往有几万个汉字,如何让用户以最快的速度理解这个文献的内容,以判断内容是否合乎用户的要求。

用户检索一方面要能找到相干的文献,另一方面检索的速度要合乎通行的规范:对用户申请的响应工夫不超过 3 秒。

从这几个要点来看,传统的工程建设办法(比方基于关系型数据库)曾经力不从心,所以这里引进符合要求的大数据以及互联网等技术。

2.2 零碎建设所应用技术

零碎建设所应用的技术有如下几项:面向大数据库存储的文档数据库 MongoDB; 进步了检索品质, 有利于前后端拆散的微服务 SpringBoot, 以及对文献进行文字处理的自然语言解决技术(NLP)。上面大抵介绍一下这几项。

2.2.1 MongoDB 数据库

本系统部应用的数据库版本为 3.6,部署服务器操作系统 windows server 2008。因为服务器硬件和操作系统软件性能品质都比拟个别,数据库在零碎运行中的性能施展的不是最优。

2.2.2 微服务以及 SpringBoot

微服务的最重要的特色是因为服务较小且可独立部署,因而不再须要繁琐的口头能力更改应用程序小局部内容。SpringBoot 是 Java 畛域微服务架构最优落地技术,Spring Boot 2.0+MongoDB 3.6 计划是在本零碎所应用的服务端计划。

2.2.3 自然语言解决

自然语言解决 (NLP) 以语言为对象,把计算机作为语言钻研的弱小工具,在计算机的反对下对语言信息进行定量化的钻研。这里咱们应用两个重要的局部:

1. 主动摘要。利用计算机依照某一规定主动地对文本信息进行提取、汇合成简短摘要的一种信息压缩技术,旨在实现两个指标:首先使语言的简短,其次要保留重要信息。

2. 关键词提取。从文本外面把跟这篇文章意义最相干的一些词语抽取进去。关键词是为了文献标引工作,从报告、论文中选取进去用以示意全文主题内容信息的单词或术语。

摘要和关键词在零碎建设方面有着重要的利用,它是进行工作不可或缺的根底和前提。本零碎应用 java 工具包 ansj 来执行此类工作。

另外因为核心产生的文献保留格局根本为:pdf,word,excel,ppt 格局。所以本零碎应用相应的 tika 软件包把文件中的文本内容抽取进去,而后再对文本内容进行主动摘要、关键词提取工作。

3. 零碎设计

零碎主体功能模块有以下两个模块组成:信息采集、信息检索。

核心应用“信息采集”模块对移交过去的大量文献进行批量的采集解决,将处理结果保留在数据存储当中。用户应用“信息检索”性能对采集后果进行检索,并对检索出的后果进行详情浏览等操作。这里要留神的是,本文所用的样例文献都来源于公开的新闻网站。

3.1 信息采集

3.1.0 工作过程

一个文献被采集进入零碎的过程步骤如下所示:

1. 文件采集

文献从硬盘中读取,解析生成元数据

文献自身和元数据保留在数据库

2. 全文抽取

把全副文本从文献抽取进去

保留在 MongoDB 当中

3. 主动摘要和关键词提取

剖析上一步失去的全文,提取摘要和关键词

保留到数据库当中

4. 文献间相关度计算

把文献的关键词和其它文献的关键词进行计量

把符合条件的后果保留到数据库当中

该模块内容如下: 文件采集、全文抽取、主动摘要与关键词提取、文献间相关度计算。文章不仅介绍了各个子模块的工作内容,还用图例显示工作成果。

3.1.1 文件采集

文件采集是在后盾服务器上实现的。对筹备好的大批量文献进行批处理,逐个进行读取,生成元数据(年份、作者、部门等)。将文献自身和生成的元数据保留到数据库当中。

图 1. 服务器上筹备好的待采集的文件。能够看到要做实例文献的“温润如玉的长荣航空皇玺桂冠舱.docx”,该文献大小为 9MB。

图 2. 采集后文献保留在 MongoDB 数据库 (GridFS) 当中。从图中能够看到保留在数据库当中的“温润如玉的长荣航空皇玺桂冠舱.docx”文献,数据库管理员能够残缺地把文献下载到本地。

图 3. 显示了该文献生成的元数据(部门:管理所,年份:2019,品种:报告…..)。要留神的是,这些文献是作为 pdf/doc/ppt 等格式文件整体保留在数据库中的,用户并不能查看其内容以及进行内容检索。

3.1.2 全文抽取

对上一步保留好的文献进行读取,读取出全副文本内容,而后把这些内容保留 (MongoTemplate 技术) 数据库中。

图 1. 保留在数据库中的全文。因为文献内容比拟多,读者只能够看到局部内容。实际上的全文字数曾经超过了一万多字。

3.1.3 主动摘要与关键词提取

应用 NLP 解决软件包对从“温润如玉的长荣航空皇玺桂冠舱.docx”抽取的全文,进行摘要的主动生成和关键词抽取. 并保留到数据库 (MongoTemplate 技术) 当中。

图 1.“温润如玉的长荣航空皇玺桂冠舱.doc”的主动摘要生成内容。

图 2. 提取进去的关键词。本文献提取进去的关键词为: 长荣,航空,商务舱,休息室,座位,桂冠舱,台北等。

3.1.4 文献间相关度计算

当一个用户对发现了一篇对他工作有用的文献之后,想必还想进一步理解一些相干的文献。零碎在后盾在对每一篇文献进行相关度计算,失去一批与这篇文献相干的文献,并保留下来,供用户应用。

该性能背地的数据迷信原理就是可信度计算:同时呈现在文献 1 和文献 2 的关键词个数占文献 1 关键词个数的比例大小,取值为(0,1], 数值越大,相关度就越高。“温润如玉的长荣航空皇玺桂冠舱.docx”相干的文献汇合如下, 能够看进去,这些文献都是对于民航航行的。

加拿大航空国内商务舱体验.docx 相关度 0.5

长荣航空创始人.docx, 相关度 0.4

追寻瑞士航空已经的风花雪月.docx, 相关度 0.5

家常舒适的韩亚航空短途商务舱.docx 相关度 0.35

香港航空行将开明首条新西兰奥克兰航线.doc 相关度 0.3

日本航空 JL009 芝加哥 - 东京成田.docx 相关度 0.3

又见风挡破裂.docx, 相关度 0.3

航空安全榜.docx, 相关度 0.29

当你在飞机上睡着时.docx 相关度 0.37

3.2 信息检索

3.2.0 工作过程该性能是面向核心宽广用户的,用户能够应用这个功能模块在网页上进行相干检索,系统对每一次操作的工作过程大体用下图能够阐明:

该性能波及到零碎的三层构造:网页前端、运行在服务器 JAVA EE 平台的微服务架构,还有文档数据库 MongoDB。

服务器部署的微服务概览所下图所示:

该功能模块能够分为以下几个子模块: 关键词检索、文献信息浏览。

3.2.1 关键词检索

信息检索模块次要是面向核心宽广用户的,它提供了一种相似于百度检索的性能:用户在文本查问框中输出关键词后,页面返回一批相干的文献数据,用户能够查看具体内容。零碎提供了文件名检索、目录(摘要和关键词)检索、全文检索。

图 1. 用户检索文件名称蕴含“发动机”的文献。用户提交了关键词“发动机”后,网页就显示出相干的文献汇合。如果文献数量太多,用户能够点击分页查看更多的内容。本次检索出 72 个相干的文献内容,左侧显示了对这 72 条记录进行了相应的分类汇总(密级、年度、作者、部门等)

图 2. 显示了每一条记录(文献)展现给用户的内容。包含了文件名称、摘要(如果字数太多则截取前几十字)、关键词、密级、年度等。


3.2.2 文献信息浏览

如果用户想对其中一条查问后果进行进一步的理解,用户能够关上新的页面查看。

图 1. 显示了用例“普惠推出新的航空发动机 MRO 服务品牌 EngineWise”

本性能不仅显示了一条文献的详细信息,而且还显示了与这个文献有肯定相关度(举荐浏览)的其它文献简要信息。

图 2. 显示了“普惠推出新的航空发动机 MRO 服务品牌 EngineWise”相干的其它文献,能够看进去本文献和相干文献都是对于发动机培修 (MRO) 的。

世界出名航空培修 MRO 企业:将如何前行, 关联度:0.6

MRO 最大影响:少量新一代发动机迎来首次大修, 关联度:0.5

国外航空发动机培修模式及其竞争关系, 关联度:0.55

普惠最新财务体现, 关联度:0.5

普惠公司售后市场供应链与涡轮管制签订全新 MRO 交易, 关联度:0.5

看 GE 公司是如何进行航空发动机培修和保护工作, 关联度:0.5

阿提哈德航空工程公司为肯尼亚 787 提供检修, 关联度:0.45

航空培修,是好生意吗, 关联度:0.45

有多少是应用国产发动机的, 关联度:0.42143

数据如何扭转飞机培修, 关联度:0.4

4. 零碎经营状况

零碎以后收录文献近 42 万件(360GB), 可供核心人员进行查问和下载。零碎运行性能良好,均匀用户申请响应工夫低于 2.5 秒。

5. 未来的工作

未来的工作能够分为两个局部:事务性工作、零碎性能扩大。事务性工作。

信息采集的扩充:力争 2022 年数据量达到 70 万篇(500GB)。

零碎性能扩大:仿造百度,搜狗之类的互联网检索系统局部无益的性能:智能检索,以进步用户应用体验,更重要的是在应用过程中一直发现新的知识点。

作者:张先明

退出移动版