基于Android的知识图谱可视化系统技术方案

技术编号:37710605 阅读:20 留言:0更新日期:2023-06-02 00:02
一种在Android系统的知识图谱可视化系统,包括:信息获取模块、知识抽取模块、知识存储模块、知识图谱可视化模块、知识应用模块,其中:信息获取模块采用爬虫技术采集原始文本,知识抽取模块采用实体抽取、关系抽取和属性抽取技术从原始文本中得到知识节点三元组,知识存储模块采用neo4j图数据库存储知识节点三元组,知识图谱可视化模块基于android系统,结合android系统自定义View与优化后的图布局算法生成合理化的知识图谱布局,知识应用模块分为知识推理与知识问答模块,应用知识库知识实现。本发明专利技术结合力导图思想以及android自定义View等技术,实现了在android系统中实现知识图谱可视化的新布局,支持节点拖拽,布局合理不重叠,布局过程渐变等功能。布局过程渐变等功能。布局过程渐变等功能。

【技术实现步骤摘要】
基于Android的知识图谱可视化系统


[0001]本专利技术涉及的是一种信息处理领域的技术,具体是一种基于Android的知识图谱可视化系统。

技术介绍

[0002]知识图谱可视化需要有合适的布局,android应用自带的布局无法满足知识图谱可视化的要求。现有的知识图谱的展示技术并未明确节点与节点之间的关系且布局不合理,而且节点改变位置时无法动态更改其他节点的位置,当节点很多的时候会出现混乱现象。

技术实现思路

[0003]本专利技术针对现有android自带的布局无法满足知识图谱可视化布局的要求,提出一种基于Android的知识图谱可视化系统,结合力导图思想以及android自定义View等技术,实现了在android系统中实现知识图谱可视化的新布局,支持节点拖拽,布局合理不重叠,布局过程渐变等功能。
[0004]本专利技术是通过以下技术方案实现的:
[0005]本专利技术涉及一种在Android系统的知识图谱可视化系统,包括:信息获取模块、知识抽取模块、知识存储模块、知识图谱可视化模块、知识应用模块,其中:信息获取模块采用爬虫技术采集原始文本,知识抽取模块采用实体抽取、关系抽取和属性抽取技术从原始文本中得到知识节点三元组,知识存储模块采用neo4j图数据库存储知识节点三元组,知识图谱可视化模块基于android系统,结合android系统自定义View与优化后的图布局算法生成合理化的知识图谱布局,知识应用模块分为知识推理与知识问答模块,应用知识库知识实现。
[0006]本专利技术涉及一种基于上述系统的知识图谱可视化方法,通过对知识图谱的内容抽象化后,继承android原生实现继承自TextView的自定义View;通过重写触摸事件,将拖拽前后坐标信息通过回调接口的方法传给父View,父View在调用layout方法以实现知识节点展示与拖拽,通过自定义ViewGroup实现新的布局方式;基于力导图布局的思想改进布局算法,在一条边上的两个节点相互吸引,不在一条边上的两个节点相互排斥,不断迭代确定节点坐标;采用内部拦截法解决滑动冲突实现合理化布局多个知识节点、消除滑动冲突;当节点拖拽时,通过接口回调给父布局实现与该节点相关的连线自动伸长或缩短;通过android自定义Path实现连线上的字显示节点之间的关系/属性名实现节点与节点之间的连线协同变化;通过迭代的计算在子线程中,坐标不断渲染到主线程中渐变更新节点实现布局渐变效果。
[0007]所述的内容抽象化是指:采用多叉树来建有向图后,采用有向图中的每个节点保存知识信息。
[0008]所述的知识信息包括:节点名、节点属性、节点关系、坐标。
[0009]所述的知识节点展示与拖拽包括:
[0010]①
采用android自定义View方法实现知识节点展示;
[0011]②
重写触摸事件将实现节点拖拽。
[0012]所述的合理化布局知识节点,具体包括:
[0013]i采用android自定义ViewGroup实现新布局的外壳;
[0014]ii基于力导图布局算法思想加以改进实现新布局;
[0015]iii采用内部拦截法解决滑动冲突。
[0016]所述的布局渐变效果,具体通过开启多线程并图布局算法不断迭代计算节点新坐标实现。技术效果
[0017]相比现有的图布局算法由于时间复杂度过高,完全迭代完再展示图谱会出现程序假死现象以及图布局算法节点与节点之间连线上名字相同分布相对混乱,相同类别的节点分布可能会距离很远。本专利技术通过开启多线程,采用同心圆布局进行图布局算法的布局初始化,同心圆布局中将连线上名字相同的节点连续分布,尽可能保证力导图算法迭代后依然在同一片区域,并对相同类别的节点之间的偏移权重做处理,如果没有连线,减小偏移的权重,尽可能使得相同类别的节点不会相距太远。
附图说明
[0018]图1为本专利技术系统示意图;
[0019]图2为实施例流程图。
具体实施方式
[0020]如图1所示,为本实施例涉及一种在Android系统的知识图谱可视化系统,包括:信息获取模块、知识抽取模块、知识存储模块、知识图谱可视化模块、知识应用模块,其中:信息获取模块采用爬虫技术,得到所需要的原始文本;知识抽取模块,采用实体抽取、关系抽取和属性抽取技术,得到知识节点三元组;知识存储模块采用neo4j图数据库存储知识节点;知识图谱可视化模块基于android系统,结合android系统自定义View与优化后的图布局算法,得到合理化的知识图谱布局;知识应用模块分为知识推理与知识问答模块,应用知识库知识实现。
[0021]如图2所示,为本实施例基于上述系统的知识图谱可视化方法,包括以下步骤:
[0022]步骤1、对知识图谱的内容抽象化,即采用多叉树来建有向图,多叉树中每个节点都包含与节点有关的属性、关系引用,模拟知识节点;每个节点保存知识信息,包括节点名、节点属性、节点关系、坐标等。
[0023]步骤2、实现节点展示,节点拖拽,具体包括:实现继承TextView的自定义View来展示知识节点,通过重写节点View的触摸事件来实现拖拽坐标向父布局的传递并通过回调接口调用layout方法实现节点拖拽效果。
[0024]通过上述技术手段,实现的功能包括:知识节点的展示以及知识节点的拖拽效果。
[0025]步骤3、自定义ViewGroup实现合理化布局多个知识节点、消除滑动冲突,具体包括:通过android自定义ViewGroup在Layout方法中实现优化的力导图算法来布局节点。图
布局算法实现过程如下:在一条边上的两个节点相互吸引,不在一条边上的两个节点相互排斥,相同类别的节点减小偏移权重,根据权重确定节点的单位偏移距离,不断迭代确定节点坐标。节点首先采用同心圆布局的方式初始化,相同连线的节点连续分布,然后不断迭代k次确定最终布局,k可以自己设定。并采用内部拦截法消除滑动冲突。
[0026]通过上述技术手段,实现:知识节点合理化布局以及滑动冲突问题。
[0027]步骤4、节点拖拽时,节点与节点之间的连线会跟着变化,具体包括:1.移动节点,与该节点相关的连线自动伸长或缩短。节点拖拽时,子节点的位移信息会传递给父View,重写onDraw方法,实现节点坐标与连线相连。当子View的坐标信息更新时,调用requestLayout方法重新调用onDraw和onLayout方法。2.连线上的字显示节点之间的关系/属性名。采用drawPath与drawTextOnPath方法实现关系/属性名显示。
[0028]通过上述技术手段,实现的功能包括:节点拖拽时,节点与节点之间连线跟着变化。
[0029]步骤5、采用多线程实现布局渐变效果,具体包括:开启多线程,在子线程中每次迭代的坐标都向主线程中渲染节点位置,实现渐变更新的效果。
[0030]与现有技术相比,本专利技术对知识图谱内容抽象化,通过自定义View实现知识节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在Android系统的知识图谱可视化系统,其特征在于,包括:信息获取模块、知识抽取模块、知识存储模块、知识图谱可视化模块、知识应用模块,其中:信息获取模块采用爬虫技术采集原始文本,知识抽取模块采用实体抽取、关系抽取和属性抽取技术从原始文本中得到知识节点三元组,知识存储模块采用neo4j图数据库存储知识节点三元组,知识图谱可视化模块基于android系统,结合android系统自定义View与优化后的图布局算法生成合理化的知识图谱布局,知识应用模块分为知识推理与知识问答模块,应用知识库知识实现。2.一种基于权利要求1所述系统的知识图谱可视化方法,其特征在于,通过对知识图谱的内容抽象化后,继承android原生实现继承自TextView的自定义View;通过重写触摸事件,将拖拽前后坐标信息通过回调接口的方法传给父View,父View在调用layout方法以实现知识节点展示与拖拽,通过自定义ViewGroup实现新的布局方式;基于力导图布局的思想改进布局算法,在一条边上的两个节点相互吸引,不在一条边上的两个节点相互排斥,不断迭代确定节点坐标;采用内部拦截法解决滑动冲突实现合理化布局多个知识节点、消除滑动冲突;当节点拖拽时,通过接口回调给父布局实现与该节点相关的连线自动伸长或缩短;通过android自定义Path实现连线上的字显示节点之间的关系/属性名实现节点与节点之间的连线协同变化;通过迭代的计算在子线程中,坐标不断渲染到主线程中渐变更新节点实现布局渐变效果。3.根据权利要求2所述的知识图谱可视化方法,其特征是,具体包括:步骤1、对知识图谱的内容抽象化,即采用多叉树来...

【专利技术属性】
技术研发人员:顾家铧唐新怀
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1