背景
知识图谱的导航网站功能做好上后,很快就发现两个问题。
一个问题是页面没有页面内搜索,不方便。
另一个问题是,由于我为了更好的可视化,在知识图谱建模的时候, 把分类这样的非实体当做节点。所以在知识导航的时候,这些数据不应该混在实体节点里面。
下面我们要做的就是把这些标签节点抽取出来,当做分组,显示在导航网站的正确地方。
职业、
分类、等属性有两种处理方法:作为
单独节点、或者作为
节点属性,都可以。具体选择根据个人喜好,以及查询习惯、使用场景来决定。
数据标注
为了方便处理,我在节点上增加一个是否是分组的属性, 来表示这个节点是不是一个分组节点(或者说标签节点),比如开源、闭源等,这些节点只是一个分类,没有实际的实体。
如何判断节点类型
上面我们说的两种节点,暂且称之为实体节点和标签节点。实体节点就是实际存在的,比如看得见摸得着,有主页,能购买等,具体的东西。
比如:
•
ChatGPT他就是具体的一个产品,有自己的页面、大家能是实在在的使用。•
AI、大模型、开源大模型等等这些都只是一个泛指,你在显示中找不到一个东西是 AI,其他的不是AI。
标记
为了快速整理节点属性,我们再节点列表上增加一个按钮,展示其属性状态:
• 有颜色表示是标签
• 无颜色表示不是标签
同时可以点击图标进行打标(标记或者取消),手动修正一下数据,结果大致如下:
分组
数据都标记好了,下一步是梳理节点关系,也就是如何对这些数据分组。分组之前,我们先看一下数据分布关系,打开 3D 的视图观察一下。
上图是我默认的图谱,图中展示了它最大的一个团(还有其他和这个簇无任何连接的节点), 经过各个方向反转,可以看到节点数据是无序的。
再看一下 AIGC 行业图谱的数据:
这个图谱只有一个团,没有不相交的团。同样的观察方式,我们可以看到数据呈现很明显的树形状。
我们先考虑这个简单的树情况,假设分类如下结构,只有最后一个分类才有节点数据:
分组标签样式
我们刚刚提到,简单的知识图谱节点之间关系,可以表达成一棵树,而对应的的分组关系同样也天生是一棵树。
树的展现形式有很多种,常见的有菜单、树图、平铺等等。
我们用导航网站的形式展示知识图谱数据的初衷就是为了简单,避免复杂的操作,所以我们选择第三种平铺样式。
找根节点
在常规的知识图谱中没有根节点,或者说有很多个根节点。而确定根节点也很简单,查找出关系中没有在 target 中出现的即可。
如果有多个根节点,根节点正常作为分类,对于只有一个根节点的特殊情况, 此时根节点以便没有特别含义,可能是为了组织数据,我们做一下处理,,忽略该根节点,把它的子分组节点作为一级节点。
导航实现
图谱内的节点组织成对应的数据结构,在界面上展示出来。具体算法我就不细说了,很多AI都可以帮你完成。
程序写好了,发现结果不对,检查了好几遍,才发现是数据问题。当时数据打标打错了。回到打标界面重新打标。
所以知识图谱好坏,数据本身起了基础决定性作用。
现在数据基本显示正常了:
显示内容里面过滤掉分组节点,功能就基本完成了。
比如我们点击创作工具标签,就可以看到对应的数据。
导航的方式更适合大众浏览,就是给你展示更多的信息来
吸引你停留在网站上。而这些优点对个人知识管理来说,没有必要,
减少数据干扰优于不分轻重地更多的信息。
最后在看一下别的图谱,比如数据库:
--- END ---

