天天看点

大数据技术应用于政务信息化智能搜索

作者:嘉诚信息1995

在互联网的环境中,我们离不开搜索的功能,这是进入信息世界的一个重要入口。在互联网应用中,百度、必应等搜索网站为我们提供了便利的搜索功能,但在政务信息化的应用场景中,却缺乏相关的搜索技术和产品。由于政务信息化管理处于特定的网络环境中,并不能完全与公众互联网联通,并且政务信息化管理对于信息的时效性、搜索服务的智能化有更高的要求,所以亟须一款相应的智能搜索产品。

政务信息化管理领域,存在多种业务搜索场景,如:各部门发布的公文如何能及时的搜索到;在输入搜索词不准确的情况下,如何做准确的提示;各种专业术语在不知如何表达的情况下,如何能准确搜索到;如何能实时获取排名前列的搜索内容……实现这些需求,背后需要大数据技术的支撑。

智能搜索的出发点是在用户不能准确表达搜索意图时,通过交互式的搜索提示和交互式的关键词推荐等方式,快速、准确、智能的辅助用户获得相应的搜索结果。实现智能搜索,需要结合大数据技术与人工智能技术等相关技术进行实现。

大数据技术应用于政务信息化智能搜索

早在1980年,阿尔文.托夫勒在《第三次浪潮》这本书中已经预言了信息时代的到来会带来数据的大爆发,但当时技术还不成熟,所以等到几十年后大数据才登上历史舞台。因为技术需要持续的积累才能由量变到质变。大数据到底是什么?研究机构Gartner给出了定义:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

随着谷歌MapReduce技术、GFS分布式文件系统、BigTable云存储技术的落地,大数据技术真正的展开了相关应用,尤其是Hadoop大数据平台框架的发布,让大数据的实施与应用进入了快车道。

大数据业务主要包含数据获取、数据存储、数据分析、数据服务与可视化四个过程,相关的结构如图二所示。

大数据技术应用于政务信息化智能搜索

图二:大数据平台示意架构

1、数据采集

搜索相关的业务数据主要分为三类:搜索日志数据、业务流程数据和公文类数据。

搜索内容推荐业务,根据用户输入的关键词句,其一是推荐相关的搜索词句;其二可以让用户针对细分的词语,选择系统推荐的更准确的描述词语进行智能化的搜索。这个业务的实现,需要记录大量的用户交互操作数据,通过日志记录的方式来实现,数据主要包含输入内容、选择的提示、选择的推荐实体、查看的搜索结果等信息,相关的数据采集分为离线采集与在线实时采集两种方式。

政务信息化管理中,主要的业务是进行事件管理,相关的业务数据为流程事件数据,这些相关的数据主要是结构化的数据,主要包含事件名称、事件描述、归属部门、进展状态等信息,数据采集的方式为离线化的数据采集模式。

还有一种数据类型为公文数据,像通知、公告、公示、新闻、文件等,公文类型数据要求在发布后,要求一定的时限内可以搜索到,如半小时内。这类的数据属于非结构化的数据,主要包含标题、摘要、全文、原文件等信息,数据采集的方式为在线实时采集。

2、数据存储

业务流程数据主要为结构化的数据,存储于PostgreSQL数据库中,在进行数据分析时,采用Sqoop工具同步至HDFS中存储,便于后续的数据分析与数据挖掘。之所以选择PostgreSQL数据库,是因为已有空间数据存储于PostgreSQL中,从而保证了数据库的统一性。空间数据的分析计算,主要采用PostGIS插件实现相关的空间运算,采用Postgre-XL模块进行数据库的分布式管理操作。

离线的日志文件,采用Flume工具采集至HDFS分布式文件系统中存储。日志文件主要记录的是用户的交互操作,相关的数据以JSON的格式记录,并且会进行连续记录,按固定的文件大小或时间间隔形成一个文件,属于半结构化的数据形式,适宜存储在HDFS分布式文件系统中,且便于后期的数据分析与计算。

公文数据,主要是文件性质的数据,采用主动式采集模式。如果是文档性质数据,需要采用人工智能OCR技术进行文本提取,采用自然语言处理技术实施摘要提取,最终将标题、摘要、全文、文件等数据采集至MongoDB分布式数据库中存储。

3、数据计算

数据计算是大数据技术的核心模块,大数据技术,终究是需要通过数据分析或数据挖掘得到用户需要的结果。MapReduce模式产生后,实现了大数据分布式计算的分而治之的技术,为了更好的方便开发人员使用,Hive通过支持SQL语言操作模式,具体的计算逻辑由Hive内部对接MapReduce,大大的简化了开发人员的工作量。

业务流程数据,相应的统计和搜索需求,对时效性要求相对较低,在进行数据分析时,基于Hive+MapReduce+HDFS技术路线实现。

由于MapReduce模式,需要不断的与HDFS间进行数据进行I/O操作,计算性能较低,而Spark采用内存计算模式,大大提升了数据计算的性能,在数据分析方面有很大的优势。搜索功能中,对命名实体的推荐有较高的性能要求,所以离线日志分析计算,采用Spark SQL+SparkRDD+HDFS技术路线实现;在线日志分析采用Spark Streaming+Flume技术实现。

Spark的流处理是基于所谓微批处理的思想,即它把流处理看作是批处理的一种特殊形式,每次接收到一个时间间隔的数据才会去处理,所以天生很难在实时性上有所提升,而Flink采用了基于操作符的连续流模型,可以做到微秒级别的延迟。公文数据对实时性有一定的要求,所以公文数据计算,采用Flink+MongoDB技术路线实现。

大数据技术应用于政务信息化智能搜索

图三:离线数据流图

大数据技术应用于政务信息化智能搜索

图四:实时计算数据流图

4、数据服务及可视化

数据计算的结果,存储于PostgreSQL数据库中,相关的检索服务采用Java语言开发HTTPS协议访问接口,结合ECharts、G6等前端展示组件,可在大屏、中屏、小屏等不同类型的设备上进行结果展现和交互搜索等相关应用。

最终数据计算的结果存储于PostgreSQL数据库中,通过Java语言开发相关的HTTPS协议访问接口,应用程序可以根据需求调用相关的接口,便利的使用大数据分析成果。

智能搜索应用

大数据技术应用于政务信息化智能搜索

图五:智能搜索大数据技术栈架构图

在搜索框输入搜索内容时,系统会根据输入的语句提示相关性的搜索语句,同时人工智能技术对输入语句进行分词,并进行相关的实体识别,根据识别的实体进行相关的实体推荐,辅助用户选择最恰当的搜索输入内容。如果识别的实体中有空间实体或时间实体,系统会利用空间范围和时间范围进行交集式搜索,从而缩小搜索结果范围,获得更贴近于用户需求的搜索结果。

除了利用大数据分析技术外,还需要结合人工智能相关的分词技术、实体识别技术、排序技术、推荐技术等进行智能化的辅助搜索。

例如在搜索框内输入“北京朝阳污水”,进行分词,分为“北京”、“朝阳”、“污水”三个分词,“北京”和“朝阳”两个命名实体会被识别为“北京市朝阳区”空间实体,在检索时,会利用北京市朝阳区空间范围进行叠加搜索。根据“污水”这个实体,系统会按照父类、同类、子类三个类别推荐相应的命名实体,如:同类的“黑臭水体”、“污染源”等。

在政务信息化管理领域,智能搜索业务已经实现了部分功能,智能搜索提示、智能搜索推荐、融合空间实体的智能搜索技术等,期待智能搜索技术在政务信息化领域发挥更大的价值!

继续阅读