科学知识图谱Knowledge Graph

2018-11-30

2018-11-30  本文已影响35人  老娜_00e6

这是第一阶段的复盘。

课程第一阶段已经结束,现在我们来复盘一下。

首先,这是一门什么课程?这是一门帮助同学们提高学习力的课程,不是仅仅教会大家一些检索技巧、方法、立竿见影的课程(当然,这也是课程的重要一部分),而是培养大家终身学习能力的课程,这种能力是信息生态环境下人们所应必须具备的基本能力。它不能立竿见影,它要改变你的学习理念、学习情感、学习方法,一旦你的理念改变了,那么你将拥有超人的学习力!

网络的发达,已经让人们身处信息海洋而无法自拔,同学们每天有大量的学习任务、还要见缝插针地刷微信、聊QQ,看干货文章……那么,你是如何学习数学、运筹学、博弈论等课程的?还是靠老师投喂吗?你所学习的东西,在未来的工作中是如何应用的?它们的应用场景是什么?你了解你所学的这个专业吗?一年前看过的干货文章现在还记得多少?是不是遇到问题时,依然是从头开始到处找资料?

从心理学角度和对人类学习机制的研究发现,学习是一个闭环流程,从信息的输入、大脑的处理到知识的输出,流程中的每一环都缺一不可,以前我们学习只输入,没有输出(解决实际问题),那么环就断了。

输入环节,我们要克制,杜绝暴饮暴食,只吃对解决问题有关的信息,因此,我们要梳理一下自己的信息来源,做到断舍离。

处理环节是对信息进行批判性接收、组织、整合和创造的过程,这个过程,我提出来的最基本要求是对你收集到的文章进行费曼,并将新的知识迭代到你的知识体系中(可以用xMind思维导图帮助自己梳理)。

学习的输出就是知识利用环节,将所学去解决实际问题,就是有效的输出,这样的所学才会真正成为你自己的知识,而不是躺在某个文件夹或书架旮旯里睡觉的信息。

就以我自己的学习为例吧!(真惭愧,我自己也是在学习的路上,跟大家在这里分享,我们教学相长吧!)

2015年,我申请成功一项课题,是一个将研究生的学习、科研及管理三者信息打通,以本体库形式保存,以实现研究生信息智能检索的知识库。

申请这个课题是因为我发现目前我校的研究生管理在学习、科研和在学期间的各种管理事务被人为的分开了,信息散落在各个科室和人员手中,却无法实现信息的集成,导致各种工作的信息流不畅,需要一个智能检索系统,能在合适的时间向合适的人推送信息,在对某个主题进行检索时推送与之相关的其他信息,从而实现检索的智能化和信息的完备,而我意识到本体库是一个非常好的解决方案。

好吧,问题来了,真是不知天高地厚啊,我只是知道构建本体库是一个很好的解决方案,却对本体库所知甚少。两年,我必须在两年时间完成这个课题,怎么办?

借鉴前人经验是最快捷的方式,于是,我提出了一系列问题:

谁研究本体?

谁做本体知识库?

他们是怎么做的?

带着这个问题,我先在中国知网数据库中进行检索(先看看国内的研究情况)。

用主题=(本体 or Ontology)检索,不查不知道,一查吓一跳,从1992年到2015年,共检索出6000多篇文章,手工剔除一些不相关文献(诸如约稿等信息),还剩近6000篇,这么大量的文献,超出了我的大脑处理范围,于是,我选择了一个工具CiteSpace[1],帮我分析,于是,得到了图1,也知道了我应该重点关注的机构和学者群体,当然,现在知网把这个功能做出来了。

图1   机构与研究者聚类图

接下来,我想知道他们都在具体研究什么?所以,我将排名前十的机构发表的文章全部检索出来,用CiteSpace又做了个主题聚类,如图2所示(当然,这个功能目前知网也给大家提供了)。

图2  主题词聚类图

额~~~,本体构建与这么多或陌生或熟悉的词相关啊!@-@ 本体映射、元数据、概念相似度、知识表示、描述逻辑、OWL、Protege……。从哪下手好呢?我的目标是构建本体知识库,那么就直奔主题,主题词=(本体 or 本体库) and (构建 or 系统 or 应用),检索出来的结果还是不错,我发现了很多我需要的文章,将这些文章下载到我的文献管理工具里保存好,并对它们进行了分类:

[1]综述类:帮助我快速了解当前本体系统构建的研究情况;

[2]方法类:没有好的方法一切都是瞎忙,先搞明白构建方法;

[3]工具类:系统设计肯定需要工具帮助实现,他们都用什么工具?

[4]实现类:看看他们是用什么方法、什么工具、怎么实现的。

[5]理论研究类:里面一些年代很新的文章,有的是目前的研究热点,有些是在未来可能会成为热点的研究前沿,但是目前还在理论研究阶段,还未实现或不成熟,要掌握热点和前沿,这些文章可是必须要看的,但是对于我来说,首先要搭建起一个本体库雏形,所以,得先借鉴已有的本体库系统,架子搭起来之后,要提升本体库的功能,就必须看这些文章了,所以可以先把它们下载保存,如图3所示。

图3   文献的分类管理

接下来的工作就是先读综述,用最快的速度全面了解本体库构建方面的情况,因为找到的综述文章比较老,所以,我必须自己去大量阅读“实现”类(部分文献如图4所示),以了解目前在本体库建设方面的实现案例。

图4   阅读的本体构建方面的文献

通过阅读发现,由于本体的应用领域、表达知识的范围、抽象程度、应用范围等存在不同,本体也分为若干类别,而我要建立的是一种应用本体,而且,本体的表达重心直接决定了本体结构,那些文献中所构建的本体结构从三元组到七元组不等,我把它们都捋了一遍,如下图5所示。

图5   本体结构与表达

到底我要用几元组去表达呢?再回头去看那些文章,专门找那些实现功能与自己要做的一致或接近的文章,看不懂的概念重点标注,集中查。由于成熟的概念一般不会在期刊文章中详细阐述,那些写期刊文章的作者会理所当然地把它当做别人应该懂的东西直接拿来用,所以,你不要再到期刊里去找答案了,这时候要去找图书、找百科,我优先找了wikipedia,wikipedia的起步比百度百科早多了,所以,那上面的词条解释比百度百科强的多。

搞明白上面的元组,根据我的功能要求,我选择了五元组结构,接下来的问题就是用什么构建方法。当时我们研究团队里的一个队员正好负责这一块,她开始快速阅读归到“方法”类里的文章,又捋了一遍,这次是很详细地捋了一遍,每种方法是怎么样的,有什么优点、缺点等,看看我们做出来的目录(如图6所示)就知道了。

图6   本体构建方法梳理输出

捋完后,我们确定了本体构建方法,又迈出了一步!紧跟着,问题又来了:用什么工具建?通过前边文章的阅读以及对归到“工具”类里文章的快速阅读,比较了各种工具的优缺点,特别是对中文的支持情况,我们很快锁定Protege[2]这个工具。

一座大山压下来——Protege,以前从来没有用过,我需要快速掌握这个软件的使用!于是我首先检索到它的下载地址,安装,然后,找到Protege的官网,找到Protege的Wikipedia,在那里,我找到了快速上手的模板文件,斯坦福大学的设计者真是很贴心,为了帮助我们快速上手,做好了一个pizza的本体文件供大家下载,然后按照他们提供的“说明书”学习。

学会了工具的基本使用后,我开始进入本体库的设计阶段,期间的工作我在此省略万字,部分工作可以看我的目录(如图7所示)。

图7 省略万字的知识输出目录

这期间的辛酸一言难尽,首先是中文支持问题,当初选择Protege时就是冲着它的中文支持度好,但是我安装上之后,在属性显示上总是出现乱码,其他地方的汉字显示正常,为了解决这个问题,我利用搜索引擎,与或非逻辑运算、限定词等十八般武器全用上了,最后终于在一个Protege网站上的用户发帖中找到了解决办法,狂汗……。然后就是原来学的入门级Protege不够用了,于是我发现了CSDN上的一个博主,大神啊,他做了个Protege的入门、进阶1、进阶2,正是我需要的!

在这期间,为了方便解决本体构建方面的疑难杂症,我最先想到的是咱学校的计算机学院,因为,我在检索文献时发现,咱们学校就有一个学生写过这方面的学位论文,那么他的导师当然是我要请教的重点!另外,我也在QQ上发现了一个本体学习群,加入后立刻感觉找到了组织,因为,在此之前,我周围的同事、学生没有一个用Protege的!

开始,我在群里是个问问题的活跃分子,很幸运,这个群里的伙伴都很热心,问的问题都能得到很好的解答,逐渐的,我也成了回答别人问题的人,我想这应该就是分享的要义——人人为我,我为人人。

从简单关系图到复杂关系图,我一步步的做下来,遇上问题先检索,自己解决,解决不了的,问小伙伴(低级的、自己能解决的问题尽量不麻烦他人),渐渐有了雏形,省略若干图……。

架子搭起来后,要对本体进行验证,看看能不能实现逻辑推理,是否信息揭示全面,一致性如何?但是要验证,必须先有一定量的基础实体数据,数据量太少不行,多了呢,手工输入?太多了,批量导入才行,但是问题又来了,散落在网站上的大量要手工收集?怎么办?搜索引擎发动,搜索比较了几款网络自动抓取工具,我决定用——八爪鱼。哎~~~,八爪鱼[3]也没用过,于是又搜索八爪鱼的使用方法,文字版、视频版倒是丰富,很快我建好了自己的抓取规则,把研究生院网站上的相关信息抓了个干净!

好了,所有要批量导入的信息我都收集起来整理好了,但是,但是——Protege的导入居然需要安装插件,居然还要编写导入规则!没有一篇文献曾经告诉我说用Protege构建本体需要做这些工作!!!实践出真知啊!于是我再一次检索Protege实体批量导入问题的解决方案,学习了MappingMaster[4]语言,编写了导入规则,把excel导入文件的格式按要求做好,最后用Cellfile功能终于把实体导入了。验证的结果还是比较让人满意的(如图8、图9所示)。

图8   验证过程 图9 验证过程

当然,做到这里还没有结束,当实体量达到一定量时,Protege的推理已经慢的无法让人忍受了,所以,Protege只是用来构建本体的工具,真正实现基于本体的检索功能,得用数据库,这是我在前期阅读文献时就知道了的,因此,根据前人的经验,我选择了mysql数据库,术业有专攻,数据库我是搞不定的,在QQ群和计算机学院,我分别拉来一个伙伴,计算机学院的是一个即将毕业的学生(毕业后他去了工作节奏非常快的上海,却依然帮助我完成后续的工作,在此我再次表示感谢!)QQ群里的应该也是一个学校的学生,对我帮助也甚多!总之,都是令我崇拜的大神,因为,他们总能将我需要实现的意图很快编程搞定,在我搭建检索系统、建立与Protege的会话过程中,遇上的各种问题,他们都能轻松帮我搞定。

好了,说到这里,我来个总结吧。

[1]永远永远不要等到“万事俱备”时再去解决问题。

永远不要对自己说,我**还没有学好呢,哪还能解决这个问题,等我学好了**再去解决吧!要知道,那个问题不会等你学好了让你去解决,它会被其他人早早解决,而在你面前的永远是你当时认为还不能解决的问题。所以,未来学习的常态是——做中学,学中做!

[2]高效的学习过程是一个完整的闭环,从提出信息需求开始,对信息源、信息类型进行基本定位,进行策略性检索,对检索到的信息内容进行基本判断和辨识,对信息进行组织管理,费曼信息,最后解决你的问题。你一定一定要完整走一圈,再走一圈,不要在某一段路上来回走,那么你会永远呆在原地。

[3]三个臭皮匠顶个诸葛亮,永远不要忽视团队的力量。信息的共享共建、团队合作、交流、互动,这是帮助你快速成长的快捷车道。

[4]文献的检索不是一蹴而就,这个工作会随着研究的深入而不断的进行,关于该主题的知识,在你面前就如一颗小型炸弹,不,更形象地说,就如一颗种子,发芽,然后随着你检索的深入,学习的深入,亭亭如盖!而获取文献线索的方法多种多样,有时是通过搜索引擎发现,有时需要通过文献的引证关系得到线索,有时是在文献正文中得到线索……你的检索词的选取、检索工具的选择都会随之不同。然后,非常重要的一点:学习是一个不断迭代的过程,你需要在学习的过程中管理好自己的知识库(那些你费曼过的文献一定要好好保存下来,放进你的个人知识库中,养成这个好习惯,你以后会偷着乐的!课上我给大家讲了如何构建一辈子够用的个人知识库体系)。

下一阶段,大家就要行动起来了!你要为自己设定一个小小的研究目标,并为了这个目标而开启检索、学习、实践、达成目标的攀登之旅了!

上一篇下一篇

猜你喜欢

热点阅读