合肥工业大学第六届“互联网+”大学生创新创业大赛项目计划书:AI云学习 —— 一款基于Spark构建知识图谱的人工智能学习工具

项 目 名 称: AI云学习 —— 一款基于Spark构建知识图谱的人工智能学习工具

项 目 类 型: “互联网+”信息技术服务业

项 目 负 责 人: 文华

高     校: 合肥工业大学(宣城校区)

院     系: 计算机与信息系(宣城校区)

申 报 日 期: 2020年7月19日

文章目录

1 产品概述

1.1 研发背景

  随着Web技术飞跃式发展,互联网先后经历了三个时代,它们分别具有不同的特征:文档互联的“Web 1.0”时代,数据互联为特征的“Web 2.0”时代以及当下正在发展的知识互联的崭新“Web 3.0”时代。知识互联为人们的学习与交流提供了极大便利,人类的知识交互达到了历史的新高峰。然而,互联网上的知识来源复杂、良莠不一,零散混乱、体系松散,尤其是在大数据的时代背景下,这給内容的筛选、组织与评价带来了极大挑战。知识图谱(Knowledge Graph)是人工智能(Artificial Intelligence,简称AI)领域一项重要的技术分支,具有强大的语义处理能力与开放互联能力。值得注意的是,目前国内尚无针对人工智能这一领域的知识图谱工具。人工智能正处于快速发展阶段,了解、学习、掌握有关知识与技术是学生、工程师、科研人员所面临的一大挑战,优秀的知识架构可以帮助学习者达到事半功倍的效果。

  目前,已经有许多大型知识图谱被构建出来,如DBpedia、Freebase等,然而,当前的知识图谱工具普遍存在以下问题:1)通用知识图谱工具涉面较广,但知识冗余混乱、组织零散、系统性差,不利于用户的专业学习;2)垂直知识图谱工具种类少,成熟的应用仅限于某些领域,在一些具有较大应用需求的领域未获重视,前景广阔。

  综上所述,本项目的目的是构建一个面向学习者尤其是本科生的人工智能领域的垂直知识图谱,意义在于通过Spark完成人工智能知识的重整,实现了一个学习者尤其是本科生适用的知识图谱工具。人工智能领域繁多,为消减技术流程的复杂度,我们选取机器学习(Machine Learning,ML)、自然语言处理(Natural Language Processing,NLP)与机器视觉(Machine Vision,MV)等三个领域作为代表。构建知识图谱的一般技术流程如图1.1.1所示。


图1.1.1 知识图谱构建流程

1.2 产品概况

  本产品为“AI 云学习 —— 一款基于 Spark 构建知识图谱的人工智能学习工具”,其基于Spark大数据平台并充分利用了数据爬虫获取、实体识别、关系抽取、可视化分析等技术,构建了一个人工智能领域的垂直知识图谱,以期为知识服务系统提供知识的高效检索、组织和管理,为知识间关联关系的发现奠定基础。该图谱可提供力导向布局图作为可视化界面展示百科知识的直观方式,并且具有响应快、规模可扩展、跨平台等优点。本产品包括优化的Python爬虫元数据获取系统、知识图谱构建系统、手机APP(Android与iOS端)、轻量级应用服务器。用户可以通过本产品解决在特定应用场景下的知识检索问题,高效、完整、准确地学习相关知识,如:①准确、快速地检索“人工智能”相关术语并提供解释,且给出术语的联想结果,利于用户进一步学习;②突出学科在行业中的发展形势与学科热门应用领域,給学生就业、择业提供参考;③形象化地展示“人工智能”知识的脉络、历史沿革与发展趋势,为学生复习、深入学习提供参考。

  目前本产品已经完成了所有的开发、调试与部署,正在通过多渠道宣传本产品,并向各方面争取投资,下一步的工作将在收集充分的用户反馈与筹集足够经费的基础上,对知识抽取算法进行优化,同时对产品服务器进行升级。本产品获得过2019年iCAN国际创新创业大赛安徽赛区的省级二等奖,以及经学校“大学生创新创业大赛”专家组审核通过,可见本产品拥有扎实的技术积淀。

  我们学思结合,敢为人先,勇于挑战,更有充足信心将所学专业知识转化为实际成果,也因此我们坚信:随着大数据与人工智能技术的蓬勃发展,传统的学习方式将被会逐渐替代甚至颠覆,取而代之的是更为现代化、效率更高、可重用性更强、传播更快的模式,而本产品的推出正顺应了这一时代背景,在行业未来的发展中必将大放异彩。

1.3 市场优势

  ①本团队产品顺应技术发展潮流,在同领域的产品属于首创,具有绝对的市场独占率与技术优势;②在互联网+同大数据与人工智能日新月异的时代背景下,我们团队以产品和服务为载体,技术创新与社会需要的融合臻于化境,抢占市场,获得利润;③本团体具有明晰的研发、宣传、营销目标,集中团队优势,抢占市场空缺;④本团队的产品有望成为首款面向人工智能学习者的知识图谱辅助学习工具;⑤本团队产品已经获得两项省级奖项,得到了审评人员的高度认可,具有巨大的发展空间。

1.4 市场预期

  2020年是知识图谱行业发展过程中非常关键的一年,首先,从外部宏观环境来讲,转变经济增长方式,严格的节能减排对知识图谱行业的发展都产生了深刻的影响。知识图谱行业需求持续火热,资本利好知识图谱领域,行业发展长期向好。2019年居民人均可支配收入28228元,同比实际增长6.5%,居民消费水平的提高为知识图谱行业市场需求提供经济基础。传统知识图谱行业市场门槛低、缺乏统一行业标准,服务过程没有专业的监督等问题影响行业发展。互联网与知识图谱的结合,缩减中间环节,为用户提供高性价比的服务。90后、00后等各类人群,逐步成为知识图谱行业的消费主力。通过对市场环境的分析,结合产品本身特征和目标市场定位,我们估计本团队产品在同行业产品中相对垄断,市场地位和市场份额可达50%以上。本团队将在提供整体解决方案的基础上,通过先进的技术和完善的服务提高用户对产品的认可度,培养客户粘性。

1.5 销售预期

  第一年:团队产品运营初期,预计将会服务用户1000000人次。全年实现毛利润50万元,力争实现净利润32万元。

  第二年:团队产品运营初期,预计将会服务用户2000000人次。全年实现毛利润90万元,力争实现净利润80万元。

  第三年:团队产品更新换代,服务优化,预计将会服务用户4000000人次。全年实现毛利润130万元,全年力争实现净利润115万元。

1.6 融资方式

  本团队运营资金来源方式主要为:创业贷款。

2 产品服务与创意

2.1 产品项目介绍

2.1.1 产品名称

  AI云学习 —— 一款基于Spark构建知识图谱的人工智能学习工具。

2.1.2 产品logo


图 2.1.2.1 产品logo

2.1.3 产品研发团队

  牛头冲八仙下海创业团队。

2.1.4 产品系统组成

  (1)基于PathFinder算法的主从分布式Python爬虫元数据获取子系统。

  (2)基于Spark平台的元数据预处理子系统。

  (3)基于Jiagu模型的知识关系抽取子系统。

  (4)基于PHP与MySQL的关键词检索子系统。

  (5)基于amChart 4的图谱渲染与展示子系统。

  (6)云端服务器。

  (7)Web应用。

  (8)手机APP。

2.1.5 产品功能说明

  (1)对用户输入的不在数据库中的关键词进行预检索处理,即以当前关键词作为主从分布式Python爬虫元数据获取子系统的输入来获取相应的元数据。

  (2)对分布式Python爬虫元数据获取子系统所得到的元数据进行文档去重、清洗、网页标签过滤、敏感词筛除与文本自组织标记。

  (3)对Spark平台的元数据预处理子系统所得到的预处理数据进行自然语言模型训练并提取相应的知识关系。

  (4)对Jiagu模型的知识关系抽取子系统所生成的三元组数据进行格式重调、MySQL存储并给出用户使用与自定义知识图谱所需的“增删查改”功能。

  (5)对PHP与MySQL的关键词检索子系统所返回的json格式数据进行力导向图渲染与展示。

  (6)云服务器是部署知识图谱后端的主要平台,负责对用户数据的检索、元数据获取、文本预处理、知识关系抽取与知识图谱展示等一系列功能。

  (7)Web应用是供PC端与手机端用户实时检索所需知识图谱的前端平台,免去了安装专门应用的烦琐操作。

  (8)手机APP分为Android与iOS版本,分别供Android用户和iOS用户安装使用,手机APP增强用户使用知识图谱的稳定性与安全性。

2.1.6 产品的技术领先性

  (1)产品核心技术:

  借助主从分布式Python爬虫实现PathFinder算法。

  基于大数据处理平台Spark的文本预处理系统。

  基于国产开源自然语言工具Jiagu实现高效、快捷的知识关系抽取。

  基于数据仓库平台hive实现微秒级的数据库管理操作。

  基于amChart 4完成艺术级的图谱渲染效果与知识节点展示。

  云服务器实现了对用户输入数据的全自动元数据流式获取、文本预处理、知识抽取、数据库存储与图谱节点反馈。

  Android、iOS与Web应用提供了多种知识图谱访问操作。

  (2)产品技术、应用与运营模式创新:

  ①技术创新

  a. 借助主从分布式Python爬虫实现PathFinder算法

  本项目拟构建人工智能知识的知识图谱,但目前并不存在有关内容的开源数据库或信息源,因此,利用分布式爬虫获取内容是唯一有效的方法。然而,传统的分布式爬虫虽然可以有选择地访问网页与相关链接并获取所需信息,但获取内容仍含有一定的无价值数据。在大数据环境下,分布式架构的分布式爬虫比单机多核的串行爬虫具有更高的效率与更新速度。爬取相关度更高的内容也是一个值得考虑的问题,为了解决这个问题,我们借助主从分布式爬虫实现PathFinder算法,根据相关度阈值获取内容。

  理论计算与实验数据证明,本项目采用的Python爬虫方法在显著地提高了数据获取效率的同时,还极大地保证了数据的相关度。

  b. 基于大数据处理平台Spark的文本预处理系统

  文本预处理是将文本表示成一组特征项。将每个词作为文本的特征项是目前常用的处理方法,针对本项目的文本特征项主要是专有名词与术语,本项目在Spark平台下利用Word分词,实现分布式工作。Word分词是用Java实现的,实现了多种分词算法,并利用ngram模型消除歧义,能有效对数量词、专有名词与人名进行识别。分词所得到词语组,主要用于信息联想,也就是在构建完成的知识图谱中检索与給定词语有关联的三元组。

  c. 基于数据仓库平台hive实现微秒级的数据库管理操作

  hive是一个基于Hadoop的数据仓库平台,通过hive我们可以快速地对存储在数据库中数据进行抽取、加载与转换(Extract,Transform,Load,ETL)等操作。

  ②应用创新

  a. 基于国产开源自然语言工具Jiagu实现高效、快捷的知识关系抽取

  Jiagu模型是一个国产的开源自然语言处理工具,以BiLSTM等模型为基础,使用大规模语料训练而成。Jiagu模型提供中文分词、词性标注、命名实体识别、情感分析、知识图谱关系抽取、关键词抽取、文本摘要、新词发现、情感分析、文本聚类等常用自然语言处理功能,API丰富,且操作便捷、稳定性高。本文选择Jiagu模型作为知识抽取的工具,取得了十分理想的效果。

  b. 基于amChart 4完成艺术级的图谱渲染效果与知识节点展示

  amCharts 4是一个基于TypeScript开源的可视化框架,具有图表种类丰富、图形效果炫丽、动画或静态呈现、与平台无关等特点,适用于各个行业的可视化需求场景,因此本文将其作为知识图谱的可视化工具。本文使用HTML/CSS/JavaScript设计页面元素及基本布局,并采用力导向图作为图谱的呈现形式。当用户在搜索框键入查询关键词时,通过GET请求关键字,后台通过PHP查询数据库并返回请求的数据。前端得到请求的数据后,通过JavaScript进行预处理并借助amCharts进行可视化展示。

  c. 云服务器实现了对用户输入数据的全自动元数据流式获取、文本预处理、知识抽取、数据库存储与图谱节点反馈

  为了提高产品的可用性,本项目所设计的知识图谱除了提供对本地存储的知识节点查询外,还能以用户输入的关键词进行图谱拓展,概而言之就是:当输入关键词不匹配数据库内的任何结果时,将其作为Python爬虫的输入关键字爬取相关文本,并将所得文本按照既定的技术流程操作,得到与新关键词有关的知识图谱。这一方式使知识图谱的进一步拓展成为了可能。

  ③模式创新

  a. Android、iOS与Web应用提供了多种知识图谱访问操作

  本产品提供了多种操作终端,最大化地覆盖了各个平台的用户,以期为产品盈利带来更为广阔的使用人群,这增大了产品的被动测试与BUG反馈案例,为后期产品优化提供了绝佳的参考。

  b. 产品提供免费与付费双重个性化服务

  本产品面向广大用户提供日均一定数量的免费知识图谱检索服务的同时,设置了付费检索服务:付费用户凭支付一定量的费用享受次数更多、自定义操作更完善的知识节点检索服务。付费服务是本产品盈利的重要来源。

2.2 产品系统总体技术方案

  如1.1节所述,知识图谱构建主要分为三个步骤:知识抽取、知识融合与知识检索,下面就每个方面进行详细介绍。

  (一)数据类型

  构建知识图谱的元数据有三种常见的类型:结构化数据、半结构化数据与非结构化数据。

  结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。常见的结构化数据为数据库。

  半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。对于半结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。常见的半结构数据有XML和JSON格式。

  非结构化数据是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。

  (二)知识抽取

  知识抽取是指把蕴含于信息源中的知识经过识别、理解、筛选、归纳等过程抽取出来,存储形成知识元库。知识抽取是构建知识图谱的首个关键步骤与基础,直接影响了后续工作的成效与最终构建所得图谱的质量。知识图谱构建中知识抽取分为:实体抽取、关系抽取与属性抽取。

  实体抽取又称命名实体识别,包括实体的检测(find):识别命名实体的文本范围,实体的分类(classify):分类为预定义的类别,学术上所涉及一般包含三大类,实体类、时间类、数字类和7个小类,如人、地名、时间、组织、日期、货币、百分比等。

  关系抽取主要负责从文本中识别出实体,抽取实体间的语义关系,在知识图谱构建中一般以三元组的形式来表征。

  属性抽取的任务为识别实体的属性名与识别实体的属性值,而属性值结构一般是不确定的。

  (三)知识融合

  知识融合,即合并两个知识图谱(实体及其对应关系),其基本问题是研究怎样将来自多个来源的关于同一个实体或概念的描述信息融合起来。由于知识图谱中的知识来源广泛,存在知识质量良莠不齐、来自不同数据源的知识重复、知识间的关联不够明确等问题,所以需要进行知识的融合。知识融合是高层次的知识组织,使来自不同的知识源的知识在同一框架规范下进行异构数据整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识库。

  经过上述步骤后,方能得到可供进行知识检索的有效知识图谱。接下来详细介绍本产品构建知识图谱的技术流程。

2.2.1 数据来源

  ①爬取工具的选择

  本文选择CSDN与博客园作为主要的元数据(Metadata)获取平台,因其主要数据采用网页来展现,所以本文选择Python作为爬取工具。Python不但用于抓取网页文档的接口简洁,同时其访问网页文档的API也相当完整。

  值得一提的是,抓取网页有时需将爬虫(Crawler)程序伪装成普通的浏览器。因为许多网站都采取了防爬措施,单纯的爬取操作极容易被网站检测出来并封杀。Python提供了许多鲁棒的第三方包如requests、mechanize、selenium,可以帮助爬虫轻松地越过网站的防爬策略。

  在抓取了网页之后,仍需进一步的处理,如过滤html标签,提取文本等,而python的beautifulsoap库等使编写非常简洁的代码即可完成大部分文档的处理成为可能。

  ②提高爬取效率的方法

  传统的网络爬虫是运行在本地,稍优化的策略是采取“单机多核”的方式。为了更有效地解决爬取效率过低的问题,同时结合实际的实验条件,本文采用主从分布式爬虫(Master-Slave Distributed Crawler)[1],并在其上实现PathFinder算法,据所列关键词的相关度按阈值排序获取特定内容。

  本项目将一台阿里云服务器作为master服务器,用于分发所需爬取内容的URL,同时维护存储在redis中待爬取URL的列表。由三台本地的笔记本电脑组成slave服务器组,用于对各自从master服务器所获得的URL执行网页爬取任务;若slave在爬取过程中遇到新的URL,一律将其返回master服务器由master解析处理,slave服务器间不进行通信。本文所用master服务器与slave服务器组的性能配置如表2.2.1.1所示,主从分布式爬虫的逻辑结构如图2.2.1.1所示,爬虫的类图结构如图2.2.1.2所示。

表 2.2.1.1 master服务器与slave服务器组性能配置
Server Processor RAM/GB Storage/GB CPU core(s)
master Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz 2 40 1
slave 1 Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz 16 128(SSD) + 1024 4
slave 2 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 16 128(SSD) + 1024 4
slave 3 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 16 128(SSD) + 1024 6


图 2.2.1.1 主从式分布爬虫逻辑结构


图 2.2.1.2 爬虫程序的类图结构

  此外,为了防止网站服务器锁定爬虫的IP,本文所使用的爬虫程序对爬取频率进行了限制,以及使用代理IP池。

2.2.2 Spark与Jiagu模型

  ①Spark与hive平台

  Spark[2]是基于内存计算的大数据并行计算框架,因为它基于内存计算,所以提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将 Spark部署在大量廉价硬件之上,形成集群。hive[3]是一个基于Hadoop的数据仓库平台,通过hive我们可以快速地对存储在数据库中数据进行抽取、加载与转换(Extract,Transform,Load,ETL)等操作。hive定义了一个类似于SQL的查询语言&

  • 50
    点赞
  • 372
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值