最近考虑设计一个面向安全领域的本体学习工具,可能实际上不是那么对应安全领域。大致思路仍然延续多叉树的构建。
里面涉及到一个问题,本体学习会有多种数据来源,既有典型的有文本、叙词表之类,说到这里又绕不开自然语言处理。我目前考虑的问题是,我拿到一个词/词组,来自叙词表或者是文本,我如何判断这个词/词组是不是可以作为本体元素出现?若能够作为本体元素出现,那它就是有用的术语,并且按照一位波兰老哥的思路,应当有c、op、i、dt等四种占位符,那么有用的术语应是这四种占位符之一,此时,很自然的想法,我下一步就是要对术语进行分类,知道它是哪种。
正好最近又在看去年ISWC 2023上的一篇文章LLMs4OL: Large Language Models for Ontology Learning
这个文章用了很时髦的LLM大语言模型,里面提及了三个典型任务:
1)术语类型(term typing);
2)层次关系发现(taxonomy discovery);
3)非层次关系抽取(extraction of non-taxonomy relations)。
上面都是机翻。
我粗略认为,我想要的术语分类的任务,就是这里的term typing任务,现在突然发现不是的。因为这里的分类,要把实例、概念、关系、数据属性都提取出来,这不是简单的分类,或者说,分类成功了,概念有了,关系也有了,这里的关系就包括层次关系和非层次关系。也就是说我想要的术语分类的任务,时间是涵盖了这三个典型任务的。
我要构建安全本体,就要围绕这三个问题,解决好。好在安全本体构建不是一个纯算法问题,因为有很多安全标准规范了。