知识库网站(知识库网站搭建)新鲜出炉
知识库是支撑知识服务等业务的必要基础设施,金融预测、智能问答、检索推荐等常规业务的运行和拓展都需要相关知识库
知识库是支撑知识服务等业务的必要基础设施,金融预测、智能问答、检索推荐等常规业务的运行和拓展都需要相关知识库来赋能,而这赋能效力的大小,在很大程度上取决于知识库本身的准确性和覆盖度实时更新是保证这一准确性和覆盖度的必要前提,也是业务型知识库的固有属性。
数据地平线目前在构建相关基础知识库上积累了大量经验,成功搭建起了多套业务型知识库实时学习系统,并逐步在相关平台上得到了应用(https://www.zhiwenben.com)
本文是我们对该类系统搭建上的一些经验,写出来跟大家一起分享一、搭建业务型知识库实时学习系统的必要性世界上最大的不变是变化,实时更新是目前知识系统最重要也是最不可回避的一项重要属性,当前每个行业都垂直地、有针对性地沉淀出了大量需要实时更新的领域知识场景。
一个好用的知识系统,需要尽可能地保证其包含知识的准确度和覆盖度,及时捕捉到已有知识发生的变化,从而进行属性值的修正紧跟社会发展,添加并记录新的知识,才能保持整个知识系统的“准”、“广”、“活”,从而保证业务的正常运作。
在准确性方面,知识库中知识本身的状态或数值往往会因为外部条件的变化而发生根本性的变化,例如某两个人的婚姻关系数据会随着离婚的发生而变化;某个公司的主营产品信息会随着公司的业务调整而发生变化在覆盖度方面,每时每刻都会产生大量的知识,比如近期牵动全国的新型冠状病毒疫情事件,在发展的过程中产生了许多新的概念;每过一段时间,都会有新的词语出现,并且对于同一个词语,其意义也会发生改变,典型的如“不拘小节”这个词,原本意义指不要拘泥于礼节。
但现在已经演变成“节日无大小,只要是个节日就有它存在的意义,所以老板们应该不拘小节,该放假就放假”的意思放眼到各个行业,每个行业都垂直地、有针对性地沉淀出了大量需要实时更新的领域知识场景在金融领域中,公司对产品的经营、公司与公司之间的业务合作、公司的业务变化等知识会经常发生变化,这类变化与经济效益紧密相关;在情报领域中,敌军战略部署以及军力变化等信息会随着战争状态而改变,敌我双方需要及时掌握这种信息并制定相应调整措施;在通用性知识问答领域中,一些敏感信息,如领导人变更、婚姻状况变更、疫情发展变化(确诊人数、疑似病例人数、死亡人数、治愈人数)等,对实时性具有较高的要求。
二、知识库实时学习系统的基本架构目前,数据地平线已经成功建立起了多套知识库实时学习系统,包括事理知识库实时学习系统、概念知识库实时学习系统、产业链知识库实时学习系统等这三个学习系统可以为实现推理和预测学习系统提供数据和算法上的有利支持。
经验表明:一个稳定、高效的知识库实时学习系统,需要学习来源组件、来源处理组件、知识更新组件以及知识监控等多个组件共同协作而成
1、学习来源组件需要根据具体业务需求确定可用于实时输入的学习来源,实现日级、小时级、分钟级甚至秒级的大规模数据采集,采集包括爬取和解析两个重要内容2、来源处理组件需要对学习来源进行有效地提取,包括两部分内容,一是对实时采集过来的内容进行有序、稳定的消费,二是对实时输入实施的抽取,包括结构化知识三元组(实体关系三元组、事件关系三元组、数据指标三元组、概念三元组等)以及其他业务知识抽取。
3、知识更新组件在完成业务知识抽取之后,需要与后台已有的知识库进行比对、验证,如基于已有知识的链接、纠错、置信度权值更新、取值更改等操作4、知识监控组件在完成学习来源输入、学习来源处理对新获取的知识进行更新之后,基本上意味着整个知识库实时学习系统成功运行完成。
而在此之余,需要对最终的知识库状态进行有效的存储和监控,从而监控整个学习系统的运作状态,包括数据的总量变化,数据的新增数或者异常数值等接下来,我们将与我们的实际工作结合起来,谈谈知识库实时学习系统中的几个核心内容。
三、基于Scrapy-Redis的学习来源大规模采集不同的业务会有不同的数据来源,这个来源体现在来源的主题以及文本格式上,如金融领域中的学习来源包括各种公告、研报、公司资讯、行业资讯等不同主题的文本,也包括图片、纯文本、网页、pdf、docx、xlsx等多模态的类型。
通过选定目标来源地址,搭建起实时采集系统,对目标来源进行监听并实时抓取,可以实施日级、小时级、分钟级甚至秒级等不同级别的实时粒度1、实现大规模实时采集实现大规模实时数据的采集,尤其是对自然语言处理领域的非结构化网页文本而言,将互联网上海量的网页资讯数据进行广泛的、定点的采集,需要一个成熟、稳定的分布式采集方案。
经过几年稳定的采集系统运行和开发,数据地平线完成了对数千个网站,数十万个资讯导航页的采集工作,累积形成了两千多万的行业资讯数据以及一千万的百科类资讯数据,各项数据还在每日增加Scrapy是当前实时数据采集常用的一个框架,实时资讯源的处理,用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如Amazon Associates Web Services) 或者通用的网络爬虫。
如下图描述了Scrapy的整体运行机制
去重采集是实时数据更新时常需要解决的一个问题,按照正常流程就是大家都会进行重复的采集一般来说,进程之间内存中的数据不可共享的,在开启多个Scrapy的时候,它们相互之间并不知道对方采集了些什么,哪些没有没采集。
此时,我们可以使用Scrapy-Redis来解决这一因为请求和去重这两个不能共享的问题,以及将Scrapy中的调度器组件独立放到大家都能访问的地方,最终实现分布式抓取
2、通用网页文本内容解析网页资讯,通常是实时性较高的一类文本,每天发生的各项新鲜事物,包括社会热点,重大事件、国家政策发布等信息在网页上都能够有效表达,而不同的网站具有不同的HTML标签组织方式,这类问题主要体现在列表页和资讯页两种页面上。
如何准确地定位导航页并将其列表页中的实时资讯进行采集,对单个资讯页的关键信息,包括资讯标题、发布时间、正文内容、标签等信息进行准确快速的提取,是作为后续处理阶段的信息完整性和准确性的重要前提
数地工场(https://nlp.zhiwenben.com),提供了针对特定网页元数据的结构化服务,包括新闻资讯内容的标题、发布时间、正文提取以及网页表格类提取等接口,欢迎大家使用四、基于Kafka+Flume下的Restful-API实时处理。
在完成对既定网站进行分布式采集之后,需要将采集的数据实时地完成相应解析,为了保证实时解析这一进程有序、稳定的运行,我们通常会引入Kafka这一分布式消息系统,并配合Flume进行使用1、基于Kafka-Flume的实时学习来源订阅。
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景。
Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘,完成基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等。
Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的日志收集系统支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
Flume的核心是把数据从数据源收集过来,再送到目的地为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据Flume 使用事务性的方式保证传送Event整个过程的可靠性。
经验上,我们通常会使用Flume对接Kafka将Flume作为消息的生产者,将生产的消息数据(日志数据、业务请求数据等)通过Kafka Sink发布到Kafka中将Flume作为数据的生产者,这样可以不用编程就实现数据源的引入,并采用Kafka Sink作为数据的消费者,这样可以得到较高的吞吐量和可靠性。
2、基于RestFul-API服务的实时资讯处理 在经过对既定网站的分布式资讯采集,网页文本解析之后,再通过Kafka-Flume即可以有序地进行基于资讯文本的信息处理,这个信息处理的过程,通常会因为实际的业务需求而形成一个pipeline。
例如,我们所构建的抽象概念学习系统、产业链学习系统、事理逻辑学习系统是同时进行的,其学习的来源是同一个输入,因此在具体实施阶段,我们会将各个学习系统在进行处理时根据接口之间信息的依赖关系将各个接口按位次地有序地组合在一起,形成一条有序的处理链条。
在进行pipeline处理时,有几个点需要加以注意一是对于学习系统中各个接口的调用问题,我们应该优选地将各个接口模块化,通常可以整理成grpc或者Restful-API接口的形式;二是在各个接口有共用的处理模块时,应该尽可能地抽离开来作为独立的接口组件,如三个接口都可能使用统一的依存分析服务、情感分析服务或者相似度计算服务,这些服务都对应着很重的模型,模型一旦重复加载,将会造成大量的内存或资源浪费;三是要保证整个pipeline满足原子性的操作原则,尤其是有入各种数据库的操作时,更需要保证不同学习系统之间的数据的统一性和同步性。
我们将用于构建知识库实时学习系统用到的一些服务封装成了Restful-API的形式,并部署在数地工场(https://nlp.zhiwenben.com)当中,能够满足用户网页信息采集、多源异构信息抽取、语义计算、舆情分析、语言资源构建等中文自然语言处理需求;在此基础上,用户能够基于平台对外提供API实现问答搜索、舆情分析、文本结构化、事件分析等语义分析应用,欢迎大家调用。
五、基于数据大屏可视化的知识库实时学习系统监控数据大屏,是使用可视化大屏的方式来分析并展示庞杂数据的一种重要方式,旨在让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。
同样的,数据大屏在整个知识库实时学习系统中也扮演着十分重要的角色,也是整个知识库实时学习系统中最能够让非工程师人员参与的一个重要入口,从面向多个网站来源的资讯采集到对已采集资讯的消费情况,再到基于结构化抽取方法得到的结构化知识更新、验证到最终各项数据的存储,其中的各个阶段都可以通过接入数据大屏来进行数据的有效展示和监控。
数据地平线为了对现有的数据积累以及各项数据的生产环节进行全面有效的监控,围绕三大知识库实时学习系统的输入和最终输出,搭建起了“数据地平线全景概览数据大屏”,通过引入柱状图、曲线图、饼图、面积图等各种可视化插件,对现有资讯数目、每日新增资讯数目、因果事理关系数目、唯一事件数目、每日新增因果关系对数目、抽象概念数目、抽象概念关系数目、产业链节点数目、产业链关系数目、产业链数据增加等多个维度进行了有效的监控和展示。
如对我们各项数据的具体规模有兴趣或需求,欢迎与我们联系六、总结实时更新是目前知识系统最重要也是最不可回避的一项重要属性,当前各个行业都垂直地、有针对性地沉淀出了大量需要实时更新的领域知识场景一个稳定、高效的知识库实时学习系统,需要学习来源组件、来源处理组件、知识更新组件以及知识监控等多个组件共同协作而成。
基于Scrapy-Redis,可以对学习来源进行大规模采集;基于Kafka+flume下的Restful-API,可以对学习来源进行实时处理;基于可视化的数据大屏,可以对知识库学习系统进行实时监控目前,数据地平线已经成功建立起了多套知识库实时学习系统,包括事理知识库实时学习系统、概念知识库实时学习系统、产业链知识库实时学习系统等。
基于这三个学习系统,可进一步为实现推理和预测学习系统提供数据和算法上的有利支持,并已陆续在多个平台上进行建设和应用。
数据地平线紧密围绕金融领域,继续沉淀底层知识库构建技术、NLP工具、算法、模型库等支撑技术,逐步开发技术能力,推出知识管理工具、知识服务引擎以及面向社会提供专业的定制化服务和技术解决方案关于我们数据地平线,源于中科院软件所的智慧金融团队,一直致力于对非结构化等多源文本信息进行结构化,在金融领域沉淀了以事理抽取为核心的一套系统信息处理技术栈,包括电子表单提取、数据指标提取与文档核查、事理逻辑提取、银行流水抽取等基础技术,同时积累了大量多门类的基础知识库资源。
对领域抽象概念图谱、事理逻辑构建、知识管理、知识图谱构建及应用有兴趣或有进一步了解的需求,欢迎与我们联系我们将提供面向金融领域提供专业的定制化服务和技术解决方案,承接项目合作,关于对我们工作的进一步了解,请咨询mkt@datahorizon.cn。
数据地平线主页:www.zhiwenben.com邮箱:mkt@datahorizon.cn
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186