1、2023 年 2 月 25 日第 7 卷第 4 期现代信息科技Modern Information Technology Feb.2023 Vol.7 No.41711712023.022023.02收稿日期:2022-09-24基于数据结构的知识图谱构建及可视化研究闫艺婷,黄文杰(广州软件学院,广东 广州 510990)摘 要:知识图谱作为一种结构化的组织方式,不仅能够帮助学习者定位所需的信息,还能关联其他信息,提高学习效率。文章对构建数据结构知识图谱进行研究,主要研究内容包括通过网络爬虫技术获取和处理数据集,设计以 RDF 数据模型为知识图谱的建模方法,采用 BiLSTM+CRF 模型的知
2、识抽取方法,最后通过图数据库进行存储和可视化,使学习者明确学习方向,也为后续该学科的应用提供数据基础。关键词:知识图谱;数据结构;知识抽取;图数据库中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)04-0171-04Knowledge Graph Construction and Visualization Research Based on Data StructureYAN Yiting,Huang Wenjie(Software Engineering Institute of Guangzhou,Guangzhou 510990,China)Abstra
3、ct:As a structured organization,knowledge map can not only help learners locate the information they need,but also link other information to improve learning efficiency.This paper studies the construction of data structure knowledge graph.The main research contents include acquiring and processing d
4、ata sets through web crawler technology,designing a modeling method using RDF data model as knowledge graph,using the knowledge extraction method based on BiLSTM+CRF model,finally,the graph database is used for storage and visualization to make learners clear their learning direction and provide a d
5、ata basis for the subsequent application of this discipline.Keywords:Knowledge Graph;data structure;knowledge extraction;graph database0 引 言谷歌提出知识图谱这一概念,为全球知识领域提出了可参考价值1,其基本形式为三元组。目前,知识图谱的研究应用主要包括通用领域和垂直领域。通用的有 Google Knowledge Graph、YAGO、DBPedia2等。垂直领域各方面优于通用,但其构建方法为手工,且成本高3。在知识图谱概念提出后,已有学者利用知识库构建各
6、学科资源,如赵继春4等人构建农业在线学习知识图谱,有效提升用户在线学习体验。奥德玛5等学者构建中文医学知识图谱,为医学领域知识图谱构建提供参考;白文倩6等人在教育技术学领域为大家提供一种新型文献方法。上述对不同学科领域进行了专业描述,但不能满足计算机学科知识描述的结构化的需求。鉴于数据结构属于计算机学科的专业基础课,其该学科的知识图谱在知识点关联查询、学科知识资源个性化推理、学科知识自动问答、辅助学习等应用中起到重要作用,已有学者在开展相关学科知识图谱的构建。但并没有公开的数据集来源,现有的知识图谱从科学性、准确性、规范化等方面仍有较大的提升。如何构建高质量的学科领域知识图谱,仍是具有挑战的课
7、题。文中面向数据结构学科领域,首先通过网络爬虫采集数据,并对数据进行分析处理,得到规范标准化的数据,再对DOI:10.19850/ki.2096-4706.2023.04.042数据进行知识抽取,最后将数据进行可视化显示。1 数据来源及研究方法1.1 数据来源数据获取是构建知识图谱过程中最重要的环节,只有收集到正确的数据,才能构建出科学、准确、有价值的知识图谱。知识图谱的数据源一般分为三类:结构化数据、非结构化数据(如图片、视频和音频等)、半结构化数据(如 JSON 和XML 格式的数据等)。构建数据结构学科的知识图谱,由于数据结构课程领域没有公开的数据集,所以,文中的数据将分为两类获取,其中
8、结构化的数据获取来源自于清华大学出版社严蔚敏编写的数据结构一书,根据该书手工构建最原始的数据。严蔚敏教授编著的数据结构是多所高校用的教学教材和考研指定教材,学科领域公认度高,根据教材获取并整理的原始数据具有一定的可靠性和正确性;而非结构化数据和半结构化数据则来源于百度百科,根据原始数据网络爬虫方法从百度百科中爬取词条相关的内容信息。最终将数据整合后,加入数据集中。1.2 研究方法在对网络爬取的数据进行处理和标注后,进行知识图谱的建模,使用基于自然语言处理和机器学习的方法抽取知识实体,将原始数据标注后进行向量化,采用BiLSTM+CRF模型将向量化的原始数据源进行模型预训练,使用 BiLSTM+
9、CRF 模型进行评估,其预测结果的精确率和1721722023.022023.02第 4 期现代信息科技召回率的调和平均数 F1 分数为 95.3%,能够实现未标注数据的实体识别。然后,对已识别的实体进行人工的关系抽取,从而构建知识图谱。其过程主要采用 BeautifulSoup 库进行网页解析、Jieba 库进行中文分词及 NumPy 库和 Pandas 库进行数据预处理,使用 BIEOS 标注策略进行数据特征标注,利用 Torch 机器学习框架训练模型,最后对数据进行知识抽取,模型评估合格后再使用 Neo4j 数据库进行知识图谱的存储和可视化,其构建流程如图 1 所示。数据获取数据预处理数
10、据标注数据处理知识建模知识抽取模型评估模型训练实体识别关系抽取图数据库知识图谱的存储和可视化图 1 知识图谱构建流程图2 数据结构学科知识图谱的构建2.1 数据处理2.1.1 数据预处理为了获得高质量的数据集,通过 NumPy、Pandas 库等,将干扰数据、停用词、重复数据等进行数据筛选并删除,数据清洗处理后的按字分行,如图 2 所示。图 2 数据预处理后的效果2.1.2 数据标注数据进行特征标注处理,即采用 BIEOS 标注策略,将数据集以字或者标点符号作为标注单位,B-POINT 表示知识点实体开始,I-POINT表示知识点实体中间位置,E-POINT表示知识点实体结束,O 表示属于无关
11、实体,S-POINT 表示单个字知识点的实体,如图 3 所示。通过标注处理,能够将字的特征标注出来,再进行向量化,模型训练后能够体现出向量化后的数据与特征的关系,提高实体识别的准确率。2.2 知识图谱的知识建模知识建模,使用一定的知识表示语言将实体规范起来,为方便知识图谱的存储,本次知识图谱的知识建模采用 RDF(Resource Description Frame-work)的方法。RDF 的基本组成单元三元组即 S,P,O(subject(主),predicate(谓),object(宾),例如:用一条三元组描述,线性表包括单链表(subject(线性表),predicate(包括),ob
12、ject(单链表)。一条三元组代表关于客观世界的逻辑描述和客观事实,多个三元组头尾相互连接就形成了一个 RDF 图,部分知识图谱的知识建模如表 1 所示。表 1 部分数据结构知识建模表SPO数据结构包括数组数据结构包括栈数据结构包括队列数组属于非线性结构栈属于线性结构队列属于线性结构2.3 知识抽取对于半结构化数据和非结构化数据,需要进行知识抽取转化为三元组。知识抽取分为实体识别和关系抽取两个部分。2.3.1 基于机器学习的实体识别采用 BiLSTM 模型和 CRF 模型相结合,基于机器学习的实体识别,能够快速高效地构建涉及数据量较大的知识图谱。而采用 BiLSTM+CRF 模型其优点在于不仅
13、可以拥有LSTM 模型的特征抽取及拟合能力,并且在 BiLSTM 模型的基础上叠加的 CRF 层能够考虑到预测序列前后之间的关联性,使预测结果具有逻辑性,更加符合构建知识图谱的需求。BiLSTM+CRF 模型实现实体识别的原理是将模型预训练好后,未识别的实体通过两个循环神经网络(RNN)层生成前向和后向两个隐藏序列,由于待识别的实体在句子中分布不同,其上下文的信息也会有所不同。BiLSTM 模型通过生成前向和后向两个序列,能够学习待识别的实体在句子中的上下文信息。然后,得到输出每个字向量化后的向量数值,根据其向量数值与标注特征数值相似的得分率,输出每个字对应每个标签的得分率,其得分率高的结果则
14、表明字与标注特征的相关性大,预测出来的结果与实际结果有很大概率相同。最后,由于 BiLSTM 只考虑了单个字本身的标注特征,并没有考虑到最终的实体标签还会受到前后标签的影响,例如:B-POINT 标签下一个标签不可能会是 B-POINT,所以还会在 BiLSTM 模型的基础上叠加一个 CRF 层,通过学习标签之间的依赖关系,如:B-POINT 标签与 I-POINT 标签相互依赖、I-POINT 标签与 E-POINT 标签相互依赖。最后,得到具有逻辑关系的标注结果,其过程如图 4 所示。数B-POINT据I-POINT结I-POINT构E-POINT集B-POINT、O合E-POINT包O括
15、O线B-POINT性I-POINT结I-POINT构E-POINT、O树B-POINT形I-POINT结I-POINT构E-POINT和O图S-POINT输入语句输出图 3 BIEOS 标注过程图1731732023.022023.02第 4 期数数x1据x2结x3构x4h1h4h3h2h1h2h3h4P2P1P3P4B-POINTI-POINTI-POINTE-POINT词向量Look-up层后向LSTM前向LSTMCRF层LSTM输出图 4 BiLSTM+CRF 模型原理图通过 BiLSTM+CRF 算法,将得到数据结构的标注结果(数 B-POINT 据 I-POINT 结 I-POINT
16、 构 E-POINT),根据预测的标注结果,就可以识别出数据结构是实体。最后,根据对比实验验证,以 6:2:2 的比例分配训练集、测试集和验证集数据,经过 10 轮的训练,用 F1 分数对该模型的精确率和召回率进行评估,其 F1 分数接近 95.3%,如图 5 所示。经过 10 个 Epoch 的训练,验证损失和训练损失都降低到0.2%以下,而代表精确率和召回率的 F1 分数接近 95.3%,预测出来的标注结果比较理想。最终,将未标注的数据集通过训练完成的 BiLSTM+CRF 模型,输出标注结果,根据标注结果确定数据中的实体,实现知识抽取中的实体识别部分。F1分数验证损失训练损失训练次数0 2 4 6 8 101.00.80.60.40.20图 5 BiLSTM+CRF 模型的评估2.3.2 关系抽取在已经将数据集中的实体识别出来的基础上,将识别后的实体返回数据集中,从数据集中的句子确定已识别的实体关系。如果两个实体确实存在某种关系,那至少存在一个句子描述这种关系,基于这个假设,将存在两个或多个实体的句子识别出来,对其关系做进一步判断,人工从句子中抽取实体之间的关系,从而完成关系抽取