一种对零散文本数据的可视化知识图谱处理方法与流程

文档序号:31949151发布日期:2022-10-26 06:48阅读:61来源:国知局
一种对零散文本数据的可视化知识图谱处理方法与流程

1.本发明属于数据处理技术领域,尤其涉及一种对零散文本数据的可视化知识图谱处理方法。


背景技术:

2.随着现代社会的飞速发展,信息量的日益扩增,数字化的数据处理方式得到了越来越广泛的运用。通过依据个体特征类型,描述个体及属性的三元关系组数据,从而生成知识图谱的方法是数据处理中的一种常用手段。知识图谱,是用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系,是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。
3.常见的知识图谱一般只局限于针对某一个对象,列举属于该对象的属性特征,这样虽然也能实现数据的可视化显示,以及提高信息获取效率,但是并不利于找到不同独立个体间的相关性。


技术实现要素:

4.本发明的目的是克服现有的缺陷,提供一种对零散文本数据的可视化知识图谱处理方法,保证快速找到不同个体的相关性。
5.为了解决上述技术问题,本发明提供了如下的技术方案:
6.一种对零散文本数据的可视化知识图谱处理方法,包括:
7.数据整理,通过收集不同个体的各个特征及属性,通过脚本整理成可视化软件所需的三元关系组数据格式;
8.可视化显示,通过可视化软件将文本数据图形化排列,依据任一个体、特征或属性找到不同深度相关性的对象。
9.进一步地,所述数据整理为芯片生产流程中涉及的各个步骤中使用到的设备的相关属性。
10.进一步地,所述数据整理内容包括分区、设备名称、性能指标、国外供应商、国内供应商、关键零部件、性能指标方面。
11.进一步地,所述三元关系组用于描述两个对象间的关系。
12.进一步地,所述三元关系组根据整理出来的表格格式,分为点表格和边表格。
13.进一步地,所述点表格是编写脚本自动生成给表格中每个对象编号的表格;边表格是覆盖所有对象关系的用对象编号表示两者间关系的三元关系组数据表格。
14.有益效果:
15.本设计具有将零碎文本数据可视化显示、展示不同个体间联系的紧密程度以及查找拥有同一特性或属性的不同个体等功能,能够提高对枯燥的文字信息的提取速度,发掘
不同个体间的联系,以及为供货方与需求方提供便利的数据交换桥梁。
附图说明
16.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
17.图1是数据处理设计流程图;
18.图2是数据整理逻辑图;
19.图3是知识图谱生成图;
20.图4是干法刻蚀机知识图谱实例图;
21.图5是设备各项属性图。
具体实施方式
22.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
23.实施例:
24.一、脚本具体实现过程
25.1、主要变量申请:
26.filecontent:二维动态字符串数组,用于存放文件读取的全部信息
27.partition_id:一维动态数组,用于存放分区id
28.partition_id_volume:整型,用于记录数组大小
29.equipment_id:一维动态数组,用于存放设备名可能重复的设备id
30.equipment_id_volume:整型,用于记录数组大小
31.equipment_printf_id:一维动态数组,用于存放设备名不重复的设备id
32.equipment_check:二维动态字符串数组,用于存放不重复的设备名
33.equipment_check_volume:整型,用于记录数组大小
34.equipment_performance_id:整型,记录设备指标id
35.equipment_performance_check:二维动态字符串数组,用于存放不重复的设备指标名
36.equipment_performance_check_volume:整型,用于记录数组大小
37.equipment_foreign_id:一维动态数组,用于存放国外供应商id
38.equipment_foreign_check:二维动态字符串数组,用于存放不重复的国外供应商名
39.equipment_foreign_check_volume:整型,用于记录数组大小
40.equipment_domestic_id:一维动态数组,用于存放国内供应商id
41.equipment_domestic_check:二维动态字符串数组,用于存放不重复的国内供应商名
42.equipment_domestic_check_volume:整型,用于记录数组大小
43.parts_id:一维动态数组,用于存放零部件id
44.parts_check:二维动态字符串数组,用于存放不重复的零部件名
45.parts_check_volume:整型,用于记录数组大小
46.parts_performance_id:一维动态数组,用于存放零部件指标id
47.parts_foreign_id:一维动态数组,用于存放国外零部件id
48.parts_foreign_check:二维动态字符串数组,用于存放不重复的零部件国外供应商名
49.parts_foreign_check_volume:整型,用于记录数组大小
50.parts_domestic_id:一维动态数组,用于存放国内零部件id
51.parts_domestic_check:二维动态字符串数组,用于存放不重复的零部件国内供应商名
52.parts_domestic_check_volume:整型,用于记录数组大小
53.2、输入输出:
54.输入为固定格式的任意行数表格数据;
55.输出为用于描述节点信息的nodes文件与用于描述节点之间关系的edges文件。
56.二、分区部分介绍
57.1、表格数据存储:
58.打开文件:通过gets()函数获取输入的文件绝对路径,用”r”读模式打开该文件;
59.行数统计:使用fgets()函数读取一行数据,读取内容不为空返回读取到的内容,读取内容为空则返回空指针的特点,当while(fgets(strline,5000,fp)),即读取内容不为空时,给行数变量加1;
60.获取输出文件存放位置:获取到输入的路径(不包含文件名)后,使用strcpy()函数复制一个存放绝对路径的变量,再使用strcat()函数分别拼接路径变量+”\\nodes.csv”和路径变量+”\\edges.csv”分别作为两个输出文件的绝对路径;
61.申请存放数据的动态二维字符串数组:因为输入文件的行数不确定,因此也不适合用静态数组,故申请空间随行数变化而变化的二维字符串数组。先用malloc()函数申请一组一维指针空间,大小为sizeof(char*)*(1+行数)*26(输入表格的列数),再对每一个一维指针空间申请能存放80个字符数据的空间sizeof(char)*80,由于申请空间后会自动向其中存入随机内容,因此使用strcpy()函数将每个字符串都清零;
62.获取输入表格内容:由于.csv后缀的表格以”,”作为两单元格间的分隔符,然后换行符为”\n”,因此使用fscanf(fp,”%[

,’],”,filecontent[xx]),以”,”作为分割两字符串的标志,依次存入字符串数组,若”,”间内容为空,需使用fseek()函数跳过1个byte的空间,当为换行时,需要跳过sizeof(“,\n”)。
[0063]
2、写节点表格
[0064]
打开文件:使用准备好的输出节点文件路径,使用fopen()函数以读”w”的方式打开文件;
[0065]
以下各部分的id基数在主体框架中有说明,除另外说明,其余id为id基数+当前行数;
[0066]
分区部分:在第一行先写入三列表头,分别为“id,标签,类型”,固定格式的输入表格每行共有26列,其中分区在第一列,因此对应之前存入的字符串数组filecontent的位置为filecontent[0+i*26],使用strcmp()函数将该值与空字符串
””
做对比,若不为空,再与
上一行的这个字符串做对比,即filecontent[0+(i-1)*26],若仍不同,则写入到文件中,因为表格以分区作为划分条件来写的,因此同样分区名的数据会存在相邻的行数,故可以通过与上一行比较来确定所写入内容的唯一性;
[0067]
设备部分:这里要准备两个id数组,其中一个equipment_id[]是重复记入不同分区但设备名相同的信息,这个主要是用来在描述后面的分区与设备的关系中用到,实现逻辑跟上个部分相似,也是与上一行相同位置内容对比;另一个equipment_printf_id[]是不重复的记录每个设备名,实现的逻辑是先从第一行的第二列开始逐行找首个不为零的字符串,找到后写入文件,并存入equipment_check[]数组,后续判断非空字符串是否重复的条件即为将当前非空字符串与equipment_check[]查重数组中的所有元素依次使用strcmp()函数做比较,均不相等时才写入文件,并存入该查重数组;
[0068]
设备性能部分:该部分与设备部分的非重复数组类似,区别在于存在于表格第三列,因此是filecontent[2+i*26];
[0069]
设备国外供应商部分:该部分包括输入文件中的相邻三列数据,id的记录方式依次为行数i*3-2,i*3-1,i*3;写入数据逻辑也与设备部分的非重复数组类似,区别在于由于一行有三列均为当前部分内容,因此每一行要对三个字符串数组做非零和不重复的判断;
[0070]
设备国内供应商部分:该部分包括输入文件中的相邻两列数据,id的记录方式依次为行数i*2-1,i*2;写入数据逻辑也与设备部分的非重复数组类似,区别在于由于一行有两列均为当前部分内容,因此每一行要对两个字符串数组做非零和不重复的判断;
[0071]
关键零部件部分:该部分与设备部分的非重复数组类似,区别在于存在于表格第九列,因此是filecontent[8+i*26];
[0072]
零部件性能部分:该部分使用零部件部分的id,即parts_id[]数组,由于零部件部分的id基数为600000,因此减去600000即为对应的行数,判断parts_id[]数组中存入的不重复零部件的相应行数中,其零部件性能栏是否为空,不为空时写入输出文件,并将零部件性能id(id基数700000+行数)存入零部件性能数组;
[0073]
零部件国外供应商数组:该部分包括输入文件中的相邻七列数据,id的记录方式依次为行数i*7-6,i*7-5,i*7-4,i*7-3,i*7-2,i*7-1,i*7;写入数据逻辑也与设备部分的非重复数组类似,区别在于由于一行有七列均为当前部分内容,因此每一行要对七个字符串数组做非零和不重复的判断;
[0074]
零部件国内供应商数组:该部分包括输入文件中的相邻九列数据,id的记录方式依次为行数i*9-8,i*9-7,i*9-6,i*9-5,,i*9-4,i*9-3,i*9-2,i*9-1,i*9;写入数据逻辑也与设备部分的非重复数组类似,区别在于由于一行有九列均为当前部分内容,因此每一行要对九个字符串数组做非零和不重复的判断。
[0075]
3、写边表格
[0076]
打开文件:使用准备好的输出边文件路径,边文件用于描述节点与节点之间的关系,使用fopen()函数以读”w”的方式打开文件;
[0077]
在第一行先写入四列表头,分别为“源,目标,标签,类型”,源表示一对关系的出发点,比如设备属于分区的关系,源就是设备,目标就是分区,标签用于表示关系,比如这里就是“属于分区”,类型有有方向和无方向两种,这里选择有方向,因为是从设备指向分区;
[0078]
设备属于分区关系:因为不同分区可能存在相同名称的设备,因此这里有之前准
备好的可能重复的设备数组equipment_id做判断,只要该id不为0(申请动态数组的时候给整型数组均赋值了0),则判断当前行数(equipment_id[xx]-200000)的分区内容(filecontent[0+(equipment_id[xx]-200000)*26])是否为空,若不为空,找到该设备名称对应的在非重复设备id数组equipment_printf_id中相应名称的id,再找到设备名称在设备名称数组中的id,分别作为源和目标写入输出边文件中,然后进行下一个equipment_id的判断;
[0079]
设备与性能关系:判断非重复设备id数组equipment_printf_id是否为0,非0时判断当前行数(equipment_printf_id[xx]-200000)的设备性能内容(filecontent[2+(equipment_id[xx]-200000)*26])是否为空,若不为空,找到该设备性能名称在设备性能id数组中的id。源为设备,目标为设备性能,关系的标签为“设备性能”;
[0080]
设备与国外供应商关系:非重复设备id数组equipment_printf_id当前元素非0时,判断当前行数(equipment_printf_id[xx]-200000)对应的设备国外供应商内容(filecontent[3+(equipment_id[xx]-200000)*26])是否为空,非空时找到设备国外供应商名称在设备国外供应商id数组中的id,同理再判断对属于该行的另外两列设备供应商的情况。源为设备,目标为设备国外供应商,关系的标签为“设备国外供应商”;
[0081]
设备与国内供应商关系:与国外供应商类似,区别是列数为七、八两列,因此将3改为6,7即可。源为设备,目标为设备国内供应商,关系的标签为“设备国内供应商”;
[0082]
设备与关键零部件关系:逻辑为找到当前设备所在行数equipment_printf_id[i]-200000到下一设备所在行数equipment_printf_id[i+1]-200000中所有设备名与当前设备设备名相同的项,与此时的行数中的第九列即零部件项形成关系,源为设备,目标为零部件,标签为“零部件”;
[0083]
零部件与国外供应商关系:判断parts_id[i]是否为零,非零时写入该零部件id与该行数中各零部件国外供应商栏中非空字符串的关系;源为零部件,目标为零部件国外供应商,标签为“零部件国外供应商”;
[0084]
零部件与国内供应商关系:判断parts_id[i]是否为零,非零时写入该零部件id与该行数中各零部件国内供应商栏中非空字符串的关系;源为零部件,目标为零部件国内供应商,标签为“零部件国内供应商”。
[0085]
三、可视化显示
[0086]
本设计可视化部分使用的载体为可视化网络分析软件,主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测。
[0087]
1、节点与边导入
[0088]
所需的数据为节点和边两种,之前整理的给每个数据编号的表格称为节点表格,三元关系组表示的表格称之为边表格。按照下图中所示的输入电子表格依次添加节点表格和边表格。
[0089]
2、知识图谱可视化
[0090]
设置节点和边的颜色、大小等属性,按照度(表示与该节点有关系的三元关系组的数量)属性排序设置节点的大小。
[0091]
设置布局属性,使各个节点间处于合适的距离,最终生成如图3的知识图谱。
[0092]
3、查找功能
[0093]
由于数据量的庞大,获取与某一属性相关的内容的功能非常重要,可以在数据表格中搜索想要了解的内容,获取该内容对应的编号后,选择过滤中的自我网络选项。
[0094]
输入刚才保存的节点后,通过设置深度来确定获取的信息量大小,然后重新布局,如设置深度为1时,可获得如图4的干法刻蚀机、离子源等是属于刻蚀这道工艺需要的设备。
[0095]
设置深度为2时,在图4的基础上,会额外展示出每个设备对应的各项属性,如图5所示,该功能还可广泛用于搜索零部件对应的厂商,或者厂商可提供的零部件等等,可拓展性较强。
[0096]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1