本体学习(ontology learning),和很多形式为“xx学习”的术语相像,但本体学习可以直接理解为“本体自动化构建”或“本体半自动化构建”。
这是和本体的纯手工构建相对应的,之前考虑的有关本体纯手工构建的内容,其技术流程有若干的既定程序,如斯坦福七步法,TOVE法等,论及纯手工构建本体的工作,我们可以理解为一种建模工作,只不过是一种复杂的知识建模。举实例来说,就像数据库ER图设计,软件开发时的UML类图设计等,设计这些图的工艺,是手工的,在执行、评判本体建模工作时,也是一种类似于软件工程的手法(虽说我在知乎上问过某大佬,大佬说本体和软件工程扯不上关系)。
回到本体学习,因为我近期接触了一个本体学习的项目,基本理解是,他的目标输出当然和手工构建本体的输出是差不多的,都是本体。但是,他的技术流程有一些明显差异,甚至不再强调确定需求和范围。而是两类:输入结构化数据或输入文本。
大致的技术流程是:
1、术语抽取,2、概念抽取(在术语的基础之上,有的情况下不区分术语和概念),3、概念关系抽取(因为本体是层次化的),4、概念非层次关系抽取(主要是子类、父类之外的关系),5、公理抽取(讲这个的属实比较少)。
目前的工作主要聚焦在前三部分,一系列流程结束后,集成、输出本体。不难发现,这些流程都是一些NLP的子任务,这就头疼了,你研究本体学习,NLP是一个绕不开的技术,而这些子任务聚焦的是NLP的经典问题,如命名实体识别、关系抽取,现在卷翻天了。
如何找一个既关乎本体学习,又不严重捆绑于NLP的角度,比较重要。比如涉及NLP的流程,不作过多改动,只是用一些所谓SOTA的方法,我们的重点在其他方面。还得仔细思考下。