admin管理员组文章数量:1130349
目录
- 摘 要
- 1 绪论
- 1.1 研究背景
- 1.2 研究意义
- 1.3 知识图谱研究现状
- 1.3.1 知识图谱国内外研究现状
- 1.3.2 知识图谱在教育领域的应用现状
- 1.4 研究内容
- 2 关键技术介绍
- 2.1 Vue单页面应用开发技术
- 2.2 Nebula图谱库
- 2.3 LlamaIndex
- 2.4 GPT自然语言处理
- 2.5 MySql数据库
- 3需求分析
- 3.1 功能需求分析
- 3.1.1 开放问答功能需求分析
- 3.1.2 后端管理需求分析
- 3.2 性能需求分析
- 3.3 用户体验需求分析
- 4 系统设计
- 4.1 系统总体架构
- 4.2 MySql数据库设计
- 4.3系统功能设计
- 4.3.1系统功能整体设计
- 4.3.2系统功能详细设计
- 5 系统功能实现
- 5.1 开放问答功能实现
- 5.2 知识图谱功能实现
- 5.3 后台管理功能实现
- 6 系统测试
- 6.1 问答测试用例
- 6.2 测试结果分析和评价
- 总结与展望
摘 要
计算机网络课程涵盖了计算机科学领域中至关重要的一部分知识,即实现不同设备之间的通信和数据传输。无论是个人用户还是企业机构,都离不开计算机网络的支持。
计算机网络课程知识体系相对较为复杂,知识点繁多,学好计算机网络课程成为了一件非常有难度的事情。鉴于这种情况,本文设计并实现计算机网络课程问答系统,辅助学生更方便地学习计算机网络课程。本文实现的基于知识图谱的计算机网络课程问答系统主要功能包括开放式问答功能、知识节点展示功能、信息管理功能、数据统计分析等,其中用到的技术有:Vue单页面应用开发技术、Python接口技术、Nebula图谱库、Llamaindex、GPT自然语言处理技术、分词管理、内存数据库Redis以及MySql数据库。
经测试,基于知识图谱的计算机网络课程问答系统在功能和性能方面取得了显著成就。系统的功能性能符合预期,稳定性强,系统对问题的容错率高,回答速度快。教师和学生可以通过该系统获取到高质量的学习资源和解答方案,提高了学习效率和教学质量。同时,系统还为教师提供了课程改进和教学评估的重要参考依据。
关键词:知识图谱;问答系统;Llama-Index;GPT模型;Nebula图数据库
1 绪论
随着计算机软硬件的发展,高带宽网络的普及以及人工智能技术的日益成熟,人们的生活得到了诸多便利。在计算机软硬件方面,不断提升的性能和功能使得电脑、智能手机等设备变得更加强大和多样化。高带宽网络的普及则使得人们可以更快速地获取信息、进行沟通和分享资源,加速了信息的流动和传播。而人工智能技术的发展,则为人们提供了诸多智能化的解决方案,包括智能助手、自动驾驶、智能家居等,极大地提升了生活和工作的效率。
1.1 研究背景
计算机网络课程涵盖了计算机科学领域中至关重要的一部分,即实现不同设备之间的通信和数据传输。无论是个人用户还是企业机构,都离不开计算机网络的支持。
但是,因为计算机网络课程知识体系相对较为复杂,知识点非常繁多,学好计算机网络课程也是一件非常有难度的事情。
鉴于这种情况,研发一款优秀的问答系统辅助学习计算机网络课程,迫在眉睫,同时这款问答系统也应该适用于其他课程知识的存储的和问答。
1.2 研究意义
通过对市场上现有的知识存储技术和知识问答技术进行深入调查和考察得出了一个重要的结论:研发一款基于知识图谱的问答系统来辅助学习计算机网络课程是至关重要且必要的。
首先,这样的系统能够利用知识图谱的结构化特性,清晰地呈现计算机网络领域的庞大知识体系,使学生能够更系统地学习和理解相关概念、协议、技术以及实践经验。其次,基于知识图谱的问答系统可以根据学生的个性化需求提供定制化的学习路径和问题解答,从而提高学习效率和成效。此外,该系统还能够及时跟踪并整合计算机网络领域的最新进展,保持知识的时效性,使学生能够了解最新技术趋势并将其应用于实践中。
综上所述,基于知识图谱的问答系统不仅能够为学生提供全面而个性化的学习支持,还有助于推动教育信息化的进程,提升教学质量和效率,使学习者更好
地掌握计算机网络领域的知识与技能,甚至对推动我国计算机领域教育事业创新改革有着重大的意义。
1.3 知识图谱研究现状
1.3.1 知识图谱国内外研究现状
近年来,基于知识图谱的问答系统在学术界和工业界都引起了广泛关注和研究。国内外的不少研究机构和公司纷纷投入到这一领域的研究中,推动了该技术的不断发展。
(1)知识图谱国外研究现状
研究者Liang X(2024)提出大数据领域是高度专业化和垂直化的领域,这些信息并不容易转化为可用的数据,以往对基于知识图谱的南京云锦问答系统的研究已经部分解决了这一问题,然后提出了一种融合知识图谱和检索增强生成技术的南京云锦问答系统[1]。研究者Liang X(2024)构建了基于知识图谱的南京云锦数字资源智能问答系统,利用Neo4j图数据库对南京云锦知识进行高效的组织、存储和保护,从而揭示其深厚的文化内涵[2]。研究者Xiaochi Z(2023)利用基于混合知识图谱嵌入实现,在为化学相关研究和工业应用提供面向事实的信息检索,图神经网络和知识图谱等技术,提出了一种结合半监督图神经网络和知识图谱的疾病引导模型[3]。研究者Xu W(2023)使用MASR语音识别模块结合门控卷积单元对不同类型的语音进行有效的文本处理;然后利用自然语言处理中的LTP模块对疑问句进行语义分析和切分匹配;将关键词与疾病数量相结合,用知识图谱划分并构建节点集合[4]。研究者Hanxu L(2021)建立了基于语义模板的质量问题知识检索过程模型。构建了一个域语料库,它由数以千计的质量问题处理记录组成,采用TF - IDF (词频-逆文档频率)算法对质量问题分析报告进行词汇提取[5]。研究者Li W (2022)基于知识图谱的问答是一种从结构化的知识图谱信息推断出自然语言问题答案的智能方法。作为主流的基于知识图谱的问答方法之一,基于信息检索的方法通过构建和排序候选路径来推断正确答案,在简单问题上取得了优异的性能,但由于实体信息丰富,关系多样,难以处理复杂问题[6]。研究者Yuan S(2021)构建了基于Neo4j的旅游知识图,构建了问答系统( QA ),采用上述方法,自然语言问题成功转化为图数据库中可识别的Cypher查询语句,相应的答案将从旅游知识图中捕获并返回[7]。研究者Junlian L (2022)利用知识图谱在配电网设备信息( DNEI )管理中的应用,可以有效地将设备数据进行融合,形成以知识为导向的新型检修管理模式,在语义检索能力和处理复杂大数据关系方面具有很大的优势[8]。研究者Junwei L (2022)首先基于中文Open KG . cn结构化医疗常识数据构建Neo4J知识图谱,然后基于构建的知识图谱构建问答系统,步骤包括从数据收集、数据表示、实现通用的图构建工具等方面构建完整可用的图,然后利用流水线式问答系统模型构建医疗常识问答系统,最后展望问答系统在不同医疗领域的应用前景和行业发展趋势[9]。研究者Yiming S (2024)基于知识图谱的问答系统旨在发现问题背后的内部知识与已知知识库三元组之间的联系,提出了一种知识图谱问答框架( ZDNN-KGQA ),将基于知识图谱的智能问答分为命名实体识别、实体消歧、属性分类和答案选择4个步骤[10]。
(2)知识图谱国内研究现状
蔡令仪(2024)提出并开发基于认知技能图谱的电力电子开关电源实验智能问答系统,旨在为学生提供个性化指导,首先,引入贝叶斯心理测量模型评估学生能力达成情况;然后,利用知识图谱技术构建陈述性知识图谱和用户数字镜像,分别用于存储电源特定领域知识和用户能力信息[11]。季晓慧(2024)利用已有相关矿物数据库用于存储和查询相关矿物知识,常用的搜索引擎也可以对矿物知识进行查询,但无法回答用自然语言进行提问的矿物问题,查询返回的答案需要进一步筛选,基于知识图谱进行矿物知识问答的相关研究,只能回答涉及知识图谱中一个三元组的简单问题,无法回答涉及多个三元组的多跳复杂问题[12]。李成林(2024)基于知识图谱技术,构建一个农作物良种问答系统,以帮助农户快速、准确地获取农作物品种相关信息,提高农业生产效率,增加农民收益借助自然语言处理和BiLSTM-CRF技术设计并开发了一个问答系统,经测试,构建的农作物良种问答系统准确率可达87.67%,能满足用户对农作物品种信息的查询、获取和推荐需求[13]。王乾龙(2023)研究当前数控机床故障方面的查询机制尚不完善,机床工人在查找故障原因所在时往往需要花费较多的时间,为改善现状,从内蒙古某机械厂的数控机床故障数据中抽取其三元组,构建数控机床故障知识图谱[14]。赵同明(2024)为满足人们对健康饮食知识的了解,文章采用网络爬虫工具在权威饮食网站上获取数据,对数据进行预处理后批量导入Neo4j数据库中,构建饮食知识图谱,在此基础上设计并实现问答系统[15]。曾德晶(2024)建立了长江流域取水许可知识图谱,基于大规模预训练语言模型提出了包含实体提及识别、实体链接、关系匹配等功能的知识图谱问答流水线方法,结合取水许可领域数据特点采用BM25算法进行候选实体排序,构建了长江流域取水许可知识图谱问答系统,并基于BS架构开发了web客户端[16]。黄涌(2024)提出一种基于BERT-BiGRU的模型,通过预训练语言模型BERT和双向门控循环单元BiGRU建立医疗问答系统,其中BERT提取文本语义特征,BiGRU学习文本的顺序依赖信息,进而全面表示文本语义结构信息[17]。王博(2023)针对传统搜索引擎无法仅凭关键字准确理解用户意图的问题,构建了基于知识图谱的问答系统,问答系统主要面向西藏旅游领域,通过爬虫技术获取西藏旅游景点数据,完成知识图谱的构建[18]。
1.3.2 知识图谱在教育领域的应用现状
根据互联网统计数据显示,知识图谱在教育领域的应用仍然相对较少,尽管潜力巨大,但实际落地的案例仍然有限。
周东岱(2024)知识图谱在教育领域,知识图谱可以被应用于课程推荐系统、个性化学习路径规划、教学资源整合以及智能辅导等方面。通过构建包含教材内容、学科关联、学习路径等信息的知识图谱,可以帮助学生更好地理解学科之间的联系,个性化地制定学习计划,并得到针对性的学习建议[19]。
此外,知识图谱还可以为教师提供更精准的教学资源和指导,帮助他们更好地了解学生的知识水平和需求,从而提供更有效的教学。尽管如此,由于教育领域与其他行业相比在技术应用和变革方面相对保守,知识图谱在教育领域的应用仍然相对较少。
同时,田箫(2023)在教育领域知识图谱也面临着数据整合、隐私安全等方面的挑战,这些都影响了知识图谱在教育领域的广泛应用和发展,因此,尽管知识图谱在教育领域有很大的潜力,但目前的应用仍相对有限[20]。计算机网络在鄂尔多斯应用技术学院计算机科学与技术中是一门专业核心课程设置4学分,64学时。然而复杂,很多学生学习时比较困难,造成基础不好的现象。本论文将该问题解决,使学生有更高的学习效率。
1.4 研究内容
本文研究旨在开发一个基于知识图谱的计算机网络课程问答系,以探索这种技术在教育领域辅助学习的可行性。简单来说,该系统将采用核心技术。
(1)图谱库Nebula和Llamaindex 用于构建计算机网络知识的知识图谱,为问答系统提供支撑。
(2)GPT自然语言处理用于理解用户提出的问题,将其转化为可在知识图谱中查找的形式。
(3)分词管理对用户问题进行分词和语义分析,进一步增强系统的理解能力。
通过整合这些技术,最终将开发出一个智能化的计算机网络课程问答系统,能够为学生提供快速、准确的知识解答,从而提高学习效率和体验。同时,研究还将探讨如何将该系统推广应用于教育领域,以期为学习计算机网络知识的学生带来便利。
2 关键技术介绍
经过多次调研得出,在实现基于知识图谱的计算机网络课程问答系统方面,采用了Vue单页面应用开发技术、Python接口技术、Nebula图谱库、Llamaindex、GPT自然语言处理技术、分词管理、内存数据库Redis以及MySQL数据库技术。这些技术在各自领域具有独特优势,通过综合运用,能够构建出高效、智能且功能丰富的问答系统。下面会对每种技术进行分析和概要说明。
2.1 Vue单页面应用开发技术
Vue单页面应用开发技术是一种流行的前端开发框架,特别适用于构建交互性强、用户体验良好的Web应用程序。其核心理念是通过组件化的方式构建用户界面,使得开发过程更加模块化、可维护性更高。
在基于知识图谱的计算机网络课程问答系统中,Vue单页面应用开发技术可以用于构建用户界面,包括问题输入界面、答案展示界面等。通过Vue的组件化特性,可以将界面划分为多个独立的组件,分别处理不同的功能模块,使得系统结构清晰、代码可维护性高。
此外,Vue提供了丰富的生态系统和插件,如Vue Router用于实现路由管理、Vuex用于状态管理等,这些工具能够帮助开发者更高效地构建复杂的单页面应用。
Vue单页面应用开发技术在基于知识图谱的计算机网络课程问答系统中能够提供良好的用户体验和可维护性,是一个值得选择的前端开发框架。
2.2 Nebula图谱库
Nebula图谱库是一种基于分布式存储和计算的图数据库,作为构建计算机网络课程问答系统的知识存储库,它具有以下技术优势。
(1)分布式架构:Nebula采用分布式存储和计算架构,能够支持海量数据的存储和高效计算,提供良好的横向扩展能力,并且具备高可用性和容错性。
(2)图数据库特性:作为专门针对图结构数据而设计的数据库,Nebula提供了图数据库特有的查询语言和数据模型,能够高效地处理复杂的图结构及图算法。
(3)实时查询和分析:Nebula图谱库支持实时的图数据查询和分析,可以快速完成复杂的图算法运算,并且能够应对动态图结构的变化。
(4)兼容性与易用性:Nebula兼容Cypher查询语言,使得开发人员可以利用熟悉的查询语法进行图数据的操作,降低了学习成本,提高了开发效率。
(5)社区支持和发展:Nebula图谱库拥有活跃的开源社区,持续地得到更新和改进,同时提供了丰富的文档和示例,方便开发者快速上手和解决问题。
综上所述,Nebula图谱库基于分布式架构、图数据库特性、实时查询和分析能力以及兼容性与易用性等方面具有明显的技术优势,适用于构建基于知识图谱的计算机网络课程问答系统,能够支持系统对复杂的图结构数据进行存储、查询和分析。
2.3 LlamaIndex
LlamaIndex作为基于知识图谱的计算机网络课程问答系统构建技术之一,其在知识检索中具有以下技术优势:
(1)语义理解
LlamaIndex能够通过知识图谱中的实体和关系,实现对用户提出问题的语义理解。系统能够识别问题中的关键词和实体,从而更准确地定位相关知识点和关系,提高问题与知识图谱之间的匹配度。
(2)关系推理
LlamaIndex能够利用知识图谱中的关系信息进行推理分析。系统可以根据实体之间的关联关系,推断出问题的答案,提供更全面和准确的知识检索结果。这种关系推理技术能够帮助系统更好地理解问题和知识图谱中的内容。
(3)多源知识整合
LlamaIndex可以整合多个数据源和知识库,构建丰富的知识图谱。系统能够从不同数据源中获取信息,将不同领域的知识点和关系整合到一个统一的知识图谱中,提供更全面和多样化的知识检索服务。
(4)动态更新
LlamaIndex支持知识图谱的动态更新,能够随时接收新的知识点和关系,并将其整合到知识图谱中。系统可以保持知识库的及时更新,确保用户获取到最新的知识信息。
(5)上下文推理
LlamaIndex具有较强的上下文推理能力,能够考虑问题的整体语境和背景信息。系统能够根据问题的上下文信息和知识图谱中其他知识点的关联,生成更准确和全面的答案,提高知识检索的质量。
(6)交互式查询
LlamaIndex支持用户与系统的交互式查询,用户可以通过多轮对话与系统进行信息交流,进一步细化问题和获取更深入的知识内容。系统能够根据用户的反馈和需求,动态调整查询策略,提供更个性化的知识检索服务。
因此上,LlamaIndex作为基于知识图谱的计算机网络课程问答系统构建技术之一,在知识检索中具有语义理解、关系推理、多源知识整合、动态更新、上下文推理和交互式查询等技术优势,能够为用户提供准确、全面的知识检索服务,提升用户体验和学习效果。
2.4 GPT自然语言处理
GPT(Generative Pre-trained Transformer)是一种基于深度学习的自然语言处理模型,具有强大的文本生成和理解能力。将GPT应用于基于知识图谱的计算机网络课程问答系统构建技术中,可以带来以下技术优势:
(1)语义理解
GPT模型能够通过预训练的方式学习大量文本数据的语义信息,从而具有较强的语义理解能力。在知识问答系统中,GPT可以帮助系统更好地理解用户提出的问题,从而更准确地定位相关知识点和关系。
(2)文本生成
GPT是一种生成式模型,能够根据输入的文本生成自然流畅的文本内容。在知识问答系统中,GPT可以根据问题生成符合语境的答案,提高系统生成答案的质量和流畅度。
(3)上下文理解
GPT模型是基于Transformer架构构建的,能够有效地捕捉文本中的上下文信息。在知识问答系统中,GPT可以考虑问题的整体语境和背景信息,进行上下文推理,生成更准确和全面的答案。
(4)多轮对话
GPT模型支持多轮对话的处理,能够根据用户的多轮提问和反馈进行信息交流。在知识问答系统中G自然的对话交流,帮助用户更深入地探索和理解知识内容。
(5)个性化推荐
基于GPT模型的知识问答系统可以根据用户的问题历史和偏好进行个性化推荐。系统可以根据用户的查询历史和反馈信息,推荐符合用户兴趣和需求的知识内容,提高用户体验和满意度。
(6)迁移学习
GPT模型支持迁在不同领域和语境下进行微调,适应不同应用场景。在知识问答系统中,GPT可以通过微调,适应特定领域的知识问答需求,提高系统的准确性和适用性。
所以,将GPT应用于基于知识图谱的计算机网络课程问答系统构建技术中,可以带来语义理解、文本生成、上下文理解、多轮对话、个性化推荐和迁移学习等技术优势,提高系统的智能化水平和用户体验。
2.5 MySql数据库
MySQL数据库在基于知识图谱的计算机网络课程问答系统构建技术中存储非知识点数据的巨大优势包括:
(1)关系型数据库特性:MySQL是一种关系型数据库管理系统,具有丰富的数据管理和查询功能。在知识图谱问答系统中,可以利用MySQL存储非知识点数据,如用户信息、日志记录、系统配置等,实现对这些数据的高效管理和查询。
(2)事务支持:MySQL支持事务操作,可以将多个数据库操作打包成一个事务进行执行,保证事务的原子性、一致性、隔离性和持久性(ACID特性)。在知识图谱问答系统中,可以利用MySQL的事务支持确保非知识点数据的数据完整性和一致性。
(3)数据备份和恢复:MySQL提供了数据备份和恢复的功能,可以定期备份数据库数据,以防数据丢失或损坏。在知识图谱问答系统中,可以利用MySQL的备份功能保障非知识点数据的安全性。
(4)高可靠性和稳定性:MySQL是一个成熟稳定的数据库管理系统,具有较高的可靠性和稳定性。在知识图谱问答系统中,可以通过MySQL存储非知识点数据,确保系统的稳定运行和数据的安全存储。
(5)性能优化:MySQL支持索引、查询优化等功能,可以提高数据库的查询性能和响应速度。在知识图谱问答系统中,通过合理设计数据库表结构和索引,可以优化非知识点数据的查询效率。
(6)与其他系统集成:MySQL作为一种常用的数据库管理系统,与许多其他系统和工具具有良好的集成性。在知识图谱问答系统中,可以利用MySQL与其他系统的集成优势,实现数据的共享和交互。
所以,MySQL数据库在基于知识图谱的计算机网络课程问答系统构建技术中存储非知识点数据的巨大优势包括关系型数据库特性、事务支持、数据备份和恢复、高可靠性和稳定性、性能优化以及与其他系统集成等方面,能够为系统提供高效、稳定和可靠的数据存储和管理功能。
3需求分析
在基于知识图谱的计算机网络课程问答系统的功能需求分析中,将关注系统所需具备的各项功能,以确保系统能够提供用户所需的全面、准确的问答服务。
在设计基于知识图谱的计算机网络课程问答系统时,功能需求分析是至关重要的一步。通过对系统所需具备的各项功能进行详细分析,可以确保系统能够满足用户的需求,提供稳定、高效、可靠的问答服务。主要功能需求包括用户管理、问题输入与回答、知识图谱展示、用户问答记录、数据统计分析等方面,每个功能都扮演着系统运行和用户体验中不可或缺的角色。
3.1 功能需求分析
基于知识图谱的计算机网络课程问答系统需求分析主要包括前端管理部分和后端管理部分。
3.1.1 开放问答功能需求分析
前端管理需求包括两部分:问答需求和知识节点展示需求,如图3.1前端管理用例图所示。
图3.1 前端管理用例图
(1)回答需求
功能要求用户可以在web问答界面输入问题,系统能够根据知识图谱检索相关知识点并给出准确或符合逻辑的推理答案。
(2)知识节点展示需求
系统应展示计算机网络课程的知识节点与节点间,包括节点和知识点之间的关系和连接,以帮助用户更好地理解知识结构,同时对知识问答也是一个辅助功能。
3.1.2 后端管理需求分析
后台管理需求包括系统相关信息的管理,包括用户管理、知识管理、问答日志查询和数据统计,如图3.2后台管理用例图。
图3.2 后端管理用例图
后端管理具体需求有:
(1)用户管理需求
这里的用户指的是对系统进行维护的操作人员信息管理,系统需要对信息需要具有增加,删除,修改,查询,密码修改等功能,以便系统后台管理功能能被授权维护。
(2)知识管理需求
系统需要对知识进行管理,主要是对知识节点及知识存储具有增加,删除,修改,查询等功能,达到对知识库本身进行维护和新知识入库的目的。
(3)用户问答记录管理需求
系统需要记录用户的问答历史,包括问题输入和系统回答,方便用户查看和管理,并根据问答结果对系统问答模型参数进行修正。
3.2 性能需求分析
在基于知识图谱的计算机网络课程问答系统中,性能需求分析至关重要。通过对系统性能的要求和需求进行详细分析,可以确保系统能够在稳定、高效的状态下运行,提供用户流畅的体验。具体性能需求描述有快速响应需求、高效检索需求、稳定性需求。
快速响应需求:系统应具备快速的响应速度,能够在用户输入问题后迅速返回答案,以提高用户体验。
(2)高效检索需求:系统的知识图谱检索功能应高效快速定位相关知识点,确保用户能够迅速找到答案。
(3)稳定性需求:系统应具备稳定的运行能力,保证系统长期稳定运行,避免系统故障或崩溃。
3.3 用户体验需求分析
用户体验需求是基于知识图谱的计算机网络课程问答系统设计和开发过程中至关重要的一环。通过对用户体验的要求和需求进行详细分析,可以确保系统能够提供用户友好、直观、高效的操作界面,以提升用户满意度和系统使用效果。用户体验具体需求有友好界面、智能推理、礼貌用语。
(1)友好界面:系统界面设计应简洁清晰,用户操作简单明了,提升用户体验。
(2)智能推理:系统应根据已有库存知识及上下文智能对一些非标准提问进行符合逻辑的智能推理,提高用户体验和个性化服务。
(3)礼貌用语:时刻注意系统问答结果的礼貌用语。尤其是对未知问题表示诚挚的歉意 。
4 系统设计
4.1 系统总体架构
基于知识图谱的计算机网络课程问答系统的总体架构图详见图4.1系统整体架构图,每个层次的简述。
(1)Web访问层
后台管理:提供管理员界面,用于管理系统的各项设置和功能。
开放式问答:提供给用户的问答界面,用户可以在此提交问题并获取答案。
(2)应用业务层
知识管理:管理系统中的知识库,包括添加、编辑、删除知识点等功能。
用户管理:管理系统的用户信息,包括注册、登录、权限管理等功能。
问答接口:处理用户提交的问题,调用下层服务进行处理并返回结果。
问答记录:记录用户的问答历史,用于后续分析和改进。
数据统计:对系统的使用情况、性能等进行统计分析。
(3)服务层
Nebula图谱库:存储和管理计算机网络知识图谱数据,提供数据检索和查询服务。
Llamaindex:辅助图谱库,可能提供额外的功能或数据支持。
GPT自然语言处理:处理用户提出的自然语言问题,将其转换为可理解的形式。
分词管理:对用户问题进行分词和语义分析,以提高系统理解能力。
(4)数据库和数据层
MySQL数据库:用于存储系统的结构化数据,如用户信息、问答记录等。
Redis缓存数据库:用于存储系统的临时数据或缓存数据,提高系统性能和响应速度。
(5)基础设施
服务器:承载系统各个组件和服务的硬件设备。
网络设备:提供网络连接和通信支持的设备。
操作系统:运行在服务器上的操作系统,如Linux或Windows。
存储设备:用于存储系统数据和文件的硬件设备,如硬盘或SSD。
架构整体上以实现用户与系统的问答交互为核心,通过多个层次的组件协同工作,实现了一个完整的基于知识图谱的计算机网络课程问答系统。
图4.1 系统整体架构图
4.2 MySql数据库设计
(1)users表
users设计如图4.2 users所示,该表用来存储后台管理员信息。
图4.2 users E-R图
id:这是一个唯一标识符,用于表示每个用户的独特身份,它是一个整数类型,通常是主键(Primary Key)列。Username:这是用户的登录名或用户名,它用于识别用户,并允许他们在系统中进行身份验证。是字符串类型的列。nickname:这是用户的昵称或称呼,是用户在系统中显示的名称,它是用于个性化用户体验的可选字段,通常是字符串类型的列。password:这是用户的密码,它用于保护用户账户的安全性,密码通常是以加密形式存储在数据库中,以防止未经授权的访问,是字符串类型的列。creatorid:这是创建者的ID,它用于记录创建该用户记录的用户的身份,这在一些系统中用于跟踪用户之间的关系或权限控制,是整数类型的列,用于引用另一个用户的ID。createtime:这是用户记录创建的时间戳或日期时间,它用于记录用户记录的创建时间,可以用于跟踪用户活动或执行其他与时间相关的操作,通常是日期时间类型的列。
通过这个用户表设计,可以在"users"表中存储每个用户的相关信息,并使用唯一的ID进行标识,这些信息包括用户名、昵称、密码、创建者ID和创建时间。这样的设计可以构建一个具有身份验证和用户管理功能的系统。
(2)askanswerlog记录
askanswerlog记录表设计详见4.3askanswerlog表E-R图。
图4.3 askanswerlog E-R图
id:这是一个唯一标识符,用于表示每个记录的独特身份,它是一个整数类型,通常是主键(Primary Key)列。Question:这是用户提出的问题,它用于记录用户的问题内容,通常是字符串类型的列。Answer:是问题的答案,它用于记录与问题相关的答案内容,可以是任意长度的文本或字符串,通常是字符串类型的列。Created_at:这是问题记录的时间戳或日期时间,它用于记录问题的提出时间,可以用于跟踪问题的时间顺序或执行其他与时间相关的操作,通常是日期时间类型的列。
通过这个问答记录表的设计,可以在“askanswerlog”记录表中存储用户提问和相应的答案,每条记录包括问题、答案以及记录时间,设计可以用于记录用户与系统的交互,并提供对问题和答案的历史记录。
4.3系统功能设计
软件开发过程中,系统功能模块设计是非常关键的一个环节。本文系统功能模块设计包括系统功能整体设计和系统功能详细设计两部分内容。
在系统功能整体设计阶段,会对系统涉及的所有功能项目进行全面的规划和设计。
系统功能详细设计阶段则是在整体设计的基础上,对每一个功能进行更加具体和深入的讲解,包括功能的实现逻辑和所采用的技术。
4.3.1系统功能整体设计
基于知识图谱的计算机网络课程问答系统的整体设计包括前端管理部分和后端管理两个主要部分,详见图4.4系统整体功能设计图。
图4.4 系统整体功能设计图
用户可以通过输入问题与系统进行交互,并获得相应的回答,此外,该部分还包括知识节点展示功能,可以向用户展示相关的知识节点信息。
后台管理部分包括:用户管理允许系统管理员对用户信息进行管理和维护,确保系统的安全性;知识管理允许管理员对系统的知识库进行添加、修改和删除等操作,以不断更新和完善系统的知识体系;问答记录功能记录和查看用户的历史问答记录,有助于系统分析用户需求和行为模式;数据统计功能提供系统使用情况的数据分析和统计,为系统管理者提供有效的运营支持和决策依据。
通过这些功能模块的设计,系统能够为用户提供智能问答服务,并确保后台管理的高效运作和数据管理。整体设计考虑了用户需求和系统管理的全面性,旨在为用户提供便捷的信息获取体验,同时为系统管理者提供有效的运营支持。
4.3.2系统功能详细设计
(1)问答功能设计
用户可以输入问题并获取答案,以类似聊天的方式进行问答,问答语言形式相对自由,不同的问答细节会获得不同的系统反馈,尽显问答系统的人工智能应用特色。
知识图谱问答流程如图4.5所示。首先,用户在web页面上提出一个问答请求,这个请求会被发送到后端的问答接口。接口会对用户提出的问题进行分词切割,将问题转化为可以匹配的关键词。
接下来,使用分词工具将问题切割后生成的名词会被当做参数去查询知识图谱,匹配检索系统在Nebula图谱库中对知识进行匹配检索。LlamaIndex会根据关键词匹配到相关的知识库内容,并将匹配结果返回给后端问答接口。
然后,后端问答接口会将匹配到的知识图谱的关系内容发送到GPT自然语言处理系统中进行处理。GPT会对知识内容进行语义理解和处理,总结并生成符合用户问题的答案。
图4.5知识图谱问答流程图
如输入了一个关于计算机网络的问题,首先系统会对问题进行分词,得到计算机网络这个名词主体,然后通过计算机网络这个名词主体去查询Nebula图数据库,可以得到如图所示的关系,可以发现展示了3个深度的关系,如果需要更深的关系,可以将3调整的更大,最后大模型通过这些得到的关系和最开始的问题,总结出答案。
计算机网络概论包含了多个主题,其中涵盖了计算机网络的定义与分类、网络体系结构与网络协议、分组交换技术、计算机网络的形成与发展等内容。这些主题之间通过包含关系相互连接,构成了一个知识体系。图4.6 展示了Nebula Graph 中计算机网络这本书的章节结构关系。从图中可以清晰地观察到书籍的层级结构,包括不同章节之间的层次关系以及各章节内容的组织方式,通过构建这样的图数据模型,可以更加直观地展示复杂的知识体系,并进行深入的数据分析和查询。这种基于图数据库的关系可视化方式,为表达实体之间的层级、归属等各种语义关系提供了有效的解决方案。
最后,后端问答接口将处理后的答案返回给web页面,同时展示给用户。用户可以在页面上看到与自己提出的问题相匹配的答案,完成整个问答流程。整个流程如4.7问答流程图所示。
图4.7 问答流程图
(2)知识节点关系图展示设计
web页面通过Echarts关系图的方式展示计算机网络课程从课程、章、节、详细分级知识节点及知识节点之间的关系,期望能够辅助用户学习和了解计算机网络课程相关知识体系。
知识图谱的构建方法根据已有的文档标注工具,将书籍中的章、小节、小小节、知识点标注好并生成Jion文件,可以清楚的知道节点之间的关系。通过标注还可以知道节点的颜色和最重要的关系,因为知识图谱最终的就是节点与节点之前通过关系进行关联的。图4.8 章与小节之间的关系如图所示。
图4.8章与小节之间的关系
第三标题与知识点之间的关系主要包括组成、条件、基本需求、包含、概念、问题、定义、包、,特点、功能、作用、关系、原理和背景等关系,如图4.9所示。
图4.9第三标题和知识点之间的关系
图4.10展示了知识图谱三元组的原始数据关系信息,这个信息是通过标注工具从计算机网络这本书中标注整理得到。
图4.10 样例数据图
知识存入Nebula图谱库通过LlamaIndex提供的 api,可以将三元组插入到知识图谱中。upsert_triplet方法支持保存和更新的功能,即 save and update。高效的将三元组数据插入到图数据 Nebula 中。
(3)后台管理设计
基于知识图谱的计算机网络课程问答系统的后台管理设计主要用于系统管理员管理系统的各种功能和设置,流程如图4.11后台管理流程图所示。
图4.11 后台管理流程图
(4)用户管理设计:允许系统管理员对用户信息进行管理和维护,确保系统的安全性。在用户管理页面、有用户列表、新增用户、更新用户信息、删除用户等功能,如图4.12用户管理图所示。
图4.12用户管理图
(5)知识管理设计:允许管理员对系统的知识库进行添加、修改和删除等操作,以不断更新和完善系统的知识体系。知识管理页面包括知识列表、新增知识、更新知识、删除知识,如图4.13知识管理图所示。
图4.13 知识管理图
(6)问答记录设计:记录和查看用户的历史问答记录,有助于系统分析用户需求和行为模式。问答管理页面包括问答列表查询,新增问答,更新问答,删除问答等功能,如图4.14问答管理图所示。
图4.14问答管理图
5 系统功能实现
基于知识图谱的计算机网络课程问答系统的功能实现主要包括前端管理和后端管理两个部分,前端管理部分包括问答接口:该系统提供一个开放式的问答接口,允许用户向系统提出与计算机网络课程相关的问题。自然语言理解:系统利用自然语言处理(NLP)技术对用户提出的问题进行解析和理解,以便准确理解用户的意图。知识图谱查询:基于知识图谱的计算机网络领域的知识,系统可以根据用户的问题查询相关的知识节点和关系。回答生成:系统根据查询到的知识节点和关系,生成针对用户问题的准确回答,并将其返回给用户。后端管理部分包括:知识图谱维护:系统提供一个后台管理界面,用于维护知识图谱的内容。管理员可以添加、修改和删除知识节点、关系以及相关属性。问题管理:管理员可以管理用户提出的问题,对问题进行分类、审核、编辑和删除等操作。用户管理:该系统可能包含用户管理功能,管理员可以管理用户的注册、登录和权限等信息。
5.1 开放问答功能实现
(1)问答功能实现
系统实现了基于网页的问答功能,用户可以通过聊天形式进行文字交互,提出计算机网络相关的问题,系统会根据预先建立的知识库,提供相应的答复。这一问答功能的实现思路如下:
知识库构建:收集整理计算机网络课程的相关知识内容,构建成结构化的知识库。知识库包含各个知识点的定义、概念解释、相关原理等内容。问答逻辑实现:用户在网页上输入问题,系统会分析问题内容,匹配知识库中的相关知识点。匹配结果,系统自动生成答复,并以聊天对话的形式呈现给用户,如果无法直接匹配到答案,系统会给出提示,引导用户进一步细化或补充问题,界面交互设计:网页界面采用聊天框的形式,用户和系统的对话记录会实时显示,提供输入问题的文本框,以及系统答复的展示区域,界面风格简洁明了,便于用户快速上手使用。
问答功能实现如图5.1问答界面所示。可以对系统进行随意提问,一问一答的形式展示,如果查询到知识图谱中的内容则总结答案返回给前端,如果没有查询到知识图谱中的内容,则返回对不起,未查询到相关知识。
图 5.1 问答界面
用户可以开放式的输入问题,如果问题是计算机网络课程中的章节或者知识点,则可以正确的回答出问题。如果问题不是计算机网络课程中的内容,则会提示,抱歉,未查询到相关知识。问答主要包含如下步骤,首先用户输入问题,然后分以下两种情况。
第一种情况查询mysql是否问过相同的问题,如果库存匹配有相同的问题,则直接返回答案给用户。
第二种情况没有相同的问题,则对问题进行分词,然后根据查询知识图谱库,查询后得到相应的知识图谱及关系,然后通过GPT大模型根据得到的关系和问题对问题进行总结输出答案到web页面 ,如果用户对回答满意,则保存回答结果到mysql中。
图5.2的代码主要展示了三元组入库的功能,准备好处理过的三元组,调用图5.2的方法,首先会获取到三元组信息,然后使用LlamaIndex封装好的插入方法,可以直接将三元组信息插入到Nebula图数据库中。
图5.2 知识存入Nebula图谱库代码举例
插入成功后可以查询图数据的数据,如图5.3查询结果所示,插入到知识图谱的数据集,该数据集展示了计算机网络这本书的章节信息,方便梳理章节之前的关系,为问答中的问题做快速定位。
图5.3 查询结果
图5.4所示为QA问答核心代码,主要实现了首先从MySQL数据库根据问题查询答案,如果命中,则直接返回给前端答案,如果未命中相关问题,则先对问题进行分词处理,对分词后的名词进行知识图谱查询,最后通过大模型将问题和知识图谱查询出来的与问题相关的图谱信息进行总结回答,返回给前端。
图 5.4 QA问答核心代码
当根据查询获取到知识图谱的数据并将其作为三元组插入到 Nebula 图数据库中后,通过功能来查询知识图谱的内容并在网页上展示出来。为了实现这个功能,以下是一个简单的流程:构建查询接口:在网页应用中,需要实现一个查询接口,通过该接口可以向 Nebula 图数据库发送查询请求。编写查询语句:根据用户在网页上的输入,构建相应的查询语句。查询语句可以使用 Cypher 查询语言或者 Nebula 的图查询语句。发送查询请求:通过查询接口,将构建好的查询语句发送给 Nebula 图数据库。处理查询结果:接收到 Nebula 图数据库的查询结果后,解析结果并进行处理。可以提取相关的节点、关系或属性信息。展示结果:根据处理后的结果,在网页上展示查询到的知识图谱内容。可以使用合适的图形或表格形式展示节点、关系以及属性信息。图5.5展示了知识图谱查询的代码,主要实现了查询Nebula图数据库,返回三元组信息,在前端显示。
图5.5知识图谱查询
5.2 知识图谱功能实现
图5.6知识节点的关系图,展示计算机网络这本书的全部章节关系,根据图谱可以清晰看到章节信息与章节关系。
图5.6 知识节点关系图
Llamaindex 同样提供了查询的 api。如图5.6知识节点关系图展示查询所有知识图谱实体与关系的信息,并通过 build_data 方法将查询到的图谱信息转化为前端需要的结构,分层级展示。其中links表示节点之间的关系,symbolSize表示节点的大小,name表示节点的内容,value表示节点的属性。
图5.7查询数据
图5.8知识节点关系图中查询所有知识图谱信息的核心代码如下:查询Nebula图数据库所有顶点和边关系的SQL语句,通过该方法,我们可以将图数据中所有信息查询出来,并在页面展示成图谱的形式,一目了然,通俗易懂的知道节点之间的关系。
query_template = f"""MATCH ()-[e]->() RETURN e;"""
all_relation = self.graph_store.query(query_template)
通过代码可以查询到Nebula图数据库中所有的三元组关系,将三元组关系组装成前端需要的结构,使用Echarts进行知识图谱的展示。图5.8知识节点关系图主要功能是通过调用接口查询所有知识图谱关系信息。
图5.8知识节点关系图核心代码
知识节点关系图,以Echarts关系图为表现形式,以图谱库知识节点为数据基础,对计算机网络课程知识节点及层级关系进行展示。
5.3 后台管理功能实现
(1)用户管理实现
用户管理实现了对用户信息的基本增加、删除、修改、查询功能,以及密码修改功能,最终达到对系统维护权限可授权的目的。
图5.9用户管理实现
用户登录代码: 用户输入用户名和密码,后端通过用户名和密码查询数据库,查看是否能够匹配,如果能够匹配则登录成功,不能匹配,则提示用户名和密码错误。
图5.10核心代码
用户列表核心代码: 通过分页对用户进行查询,并按照id的降序排列,分页默认每页10条数据。
图5.11核心代码
新增用户代码: 通过传入用户名,用户昵称,用户密码进行新用户注册。首先需要通过用户名进行唯一性校验,如果存在则提示用户已经存在,如果不存在,则进行插入操作,保存用户数据。
图5.12核心代码
修改用户代码: 通过传入用户名,用户昵称,用户密码对用户信息进行修改。
图5.13核心代码
删除用户代码: 删除用户时,只需要传入用户id即可删除用户,删除后提示用户删除用户成功。
图 5.14 核心代码
(2)问答记录
问答记录功能实现了对问答记录在问答时进行问题和答案的记录,并在后台管理端可以被管理员查询。问答记录最终可以作为系统实用的模型参数修正,知识点数据更新,以及问答处理逻辑修正的数据基础。图5.15 分页查询问答对,通过分页查询MySQL问答对的数据统计数据,主要查询的表是QA表,查询字段是问题和答案以及时间,展示在前端页面。
图5.15 分页查询问答对
图5.16核心代码
图5.17新增问答对,主要功能是通过前端传的问题和答案,对问答对进行保存,方便维护和统计问答信。
图5.17 新增问答对
(3)知识库管理
知识库管理功能实现了管理员通过后台管理对知识节点及知识的增加、删除、修改、查询等。该功能是最大限度的实现图谱库存储知识的节点关系正确和知识完整的有力保证。
图5.18知识库管理
图5.19 通过文件保存知识点,在开发过程中,我们需要处理大批量的知识点数据,可以通过导入文件的方式,批量处知识点数据。
图 5.19 知识点保存
6 系统测试
在实现基于知识图谱的计算机网络课程问答系统测试中,主要针对问答功能进行各种测试,以验证在不同提问方式和语境下的回答能力。以及在图谱库存知识缺失或者不全的情况下,问答系统基于当前库存知识对提问反馈的符合逻辑的推理回答。
6.1 问答测试用例
举例测试问题,不限以下问题,可以随意提问,只要是知识图谱中的,是都可以回答出来,并且回答正确的。测试用例详见表6.1测试用例。
表6.1问答测试用例
| Test Case ID | Test Case Name | Description | Test Steps | Expected Result |
|---|---|---|---|---|
| TC001 | 问答功能测试 | 验证系统的问答功能 | 打开问答页面 | 问答页面可以打开 |
| TC002 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入问题 | 问答页面可以打开,并可以输入问题 |
| TC003 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的章 | 可以回答出和问题相关章的内容 |
| TC004 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的小节 | 可以回答出和问题相关小节的内容 |
| TC005 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的小小节 | 可以回答出和问题相关小小节的内容 |
| TC006 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的知识点 | 可以回答出和问题相关知识点的内容 |
| TC007 问答功能测试 | 验证系统的问答功能 | 打开问答页面 | ,输入图谱不存在的信息 | 回答为未找到相关知识 |
| TC008 用户管理测试 | 验证用户管理功能 | 进入用户页面, | 对用户进行增删改查 | 可以对用户进行增删改查 |
续表6.1
| Test Case ID | Test Case Name | Description | Test Steps |
| TC009 | 问答管理测试 | 验证问答管理功能 | 进入问答管理页面,对问答进行增删改查 |
| TC010 | 知识点管理测试 | 验证知识点管理功能 | 进入知识点管理页面,对知识点进行增删改查 |
6.2 测试结果分析和评价
测试结果分析和评价详情见表6.2测试结果分析和评价。
表6.2测试结果分析和评价主要是对问答结果进行评估,评估系统对问题的回答是否正确.
表6.2 测试结果分析和评价
序号 测试问题和问答结果 答案评价
1 什么是计算机系统?
答:计算机系统是指由计算机硬件、软件和人员组成的整体,用于处理和管理信息的系统。 回答准确
2 什么是计算机网络?
答:计算机网络是指由若干计算机和其他通信设备通过通信线路连接起来,以实现信息交换和资源共享的系统。 回答准确
3 计算机网络和计算机系统的关系?
答:计算机网络和计算机系统的关系是计算机网络是计算机系统的一个组成部分。计算机系统包括硬件和软件,而计算机网络是连接多台计算机的通信系统。计算机网络通过物理层和数据链路层等技术实现计算机之间的数据传输和通信。计算机网络是计算机系统中负责数据通信的部分。 回答全面,回答准确
续表6.2
序号 测试问题和问答结果 答案评价
4 按照拓扑图划分,计算机网络分为几种类型
答:根据给定的拓扑图划分,计算机网络可以分为多种类型。 回答准确,答案不全面
5 鲁迅是谁?
答:鲁迅不在上下文中提及,因此无法回答鲁迅是谁。 回答符合逻辑推理
6 达芬奇是计算机之父吗?
答:根据上下文,没有提到达芬奇与计算机之父之间的关系,因此无法确定达芬奇是否是计算机之父。 回答符合逻辑推理
7 用户管理页面对用户进行增删改查 可以对用户进行增删改查
8 问答管理页面对问答进行增删改查 可以对问答信息进行增删改查
9 知识点管理页面对知识点进行增删改查 可以对知识点进行增删改查
上述测试结果表明:基于知识图谱的计算机网络课程问答系统在简单问答测试中表现非常优秀;在复杂问答测试中表现良好,关于答案的准确性和全面性有待提升;在未知问题问答测试中,答案符合逻辑推理。
总结与展望
基于前文测试结果表明,本文研究的基于知识图谱的计算机网络课程问答系统在功能和性能方面取得了显著成就。
首先,系统的功能性能符合预期,能够准确回答与计算机网络相关的问题,并通过清晰的知识图谱展示知识点之间的联系,为用户提供了全面的信息。其次,系统表现出色,稳定性强,未出现严重错误或异常情况,为用户提供了良好的交互体验。再次,系统对问题的容错率高,能够友好地处理用户输入的错误拼写或语法错误,确保了用户获取正确答案的能力。另外,系统的回答速度快,用户可以迅速获得准确的答案,提高了用户满意度。
因此可以得出结论:本文设计和实现的基于知识图谱的计算机网络课程问答系统通过构建知识图谱、设计问答模型、优化用户界面等工作,为学校教学与学习提供了新的途径和可能性。
知识图谱和大型语言模型如GPT的结合,为书籍目录和知识点问答管理系统提供了强大的支持和广阔的应用前景。以下是对这一系统未来发展的一些展望:
(1)个性化学习体验
结合知识图谱和GPT,系统可以为每个用户提供个性化的学习体验。通过分析用户的历史学习数据和兴趣点,系统能够推荐相关的知识点和书籍,从而提高学习效率和兴趣。
(2)智能问答
利用GPT的自然语言处理能力,系统可以提供更加智能的问答服务。用户可以以自然语言的形式提出问题,系统则能够理解问题的意图,并从知识图谱中检索相关信息,给出准确且易于理解的答案。
(3)跨学科知识整合
知识图谱能够将不同学科的知识点进行整合,形成跨学科的知识网络。这使得系统能够处理更为复杂的查询,例如,将历史、地理、文化等多个领域的知识结合起来,回答跨学科的问题。
(4)实时更新和维护
随着知识的不断更新,知识图谱需要定期进行维护和更新。GPT可以帮助自动化这一过程,通过分析最新的学术文献、新闻报道等,自动更新知识的信息。
目录
- 摘 要
- 1 绪论
- 1.1 研究背景
- 1.2 研究意义
- 1.3 知识图谱研究现状
- 1.3.1 知识图谱国内外研究现状
- 1.3.2 知识图谱在教育领域的应用现状
- 1.4 研究内容
- 2 关键技术介绍
- 2.1 Vue单页面应用开发技术
- 2.2 Nebula图谱库
- 2.3 LlamaIndex
- 2.4 GPT自然语言处理
- 2.5 MySql数据库
- 3需求分析
- 3.1 功能需求分析
- 3.1.1 开放问答功能需求分析
- 3.1.2 后端管理需求分析
- 3.2 性能需求分析
- 3.3 用户体验需求分析
- 4 系统设计
- 4.1 系统总体架构
- 4.2 MySql数据库设计
- 4.3系统功能设计
- 4.3.1系统功能整体设计
- 4.3.2系统功能详细设计
- 5 系统功能实现
- 5.1 开放问答功能实现
- 5.2 知识图谱功能实现
- 5.3 后台管理功能实现
- 6 系统测试
- 6.1 问答测试用例
- 6.2 测试结果分析和评价
- 总结与展望
摘 要
计算机网络课程涵盖了计算机科学领域中至关重要的一部分知识,即实现不同设备之间的通信和数据传输。无论是个人用户还是企业机构,都离不开计算机网络的支持。
计算机网络课程知识体系相对较为复杂,知识点繁多,学好计算机网络课程成为了一件非常有难度的事情。鉴于这种情况,本文设计并实现计算机网络课程问答系统,辅助学生更方便地学习计算机网络课程。本文实现的基于知识图谱的计算机网络课程问答系统主要功能包括开放式问答功能、知识节点展示功能、信息管理功能、数据统计分析等,其中用到的技术有:Vue单页面应用开发技术、Python接口技术、Nebula图谱库、Llamaindex、GPT自然语言处理技术、分词管理、内存数据库Redis以及MySql数据库。
经测试,基于知识图谱的计算机网络课程问答系统在功能和性能方面取得了显著成就。系统的功能性能符合预期,稳定性强,系统对问题的容错率高,回答速度快。教师和学生可以通过该系统获取到高质量的学习资源和解答方案,提高了学习效率和教学质量。同时,系统还为教师提供了课程改进和教学评估的重要参考依据。
关键词:知识图谱;问答系统;Llama-Index;GPT模型;Nebula图数据库
1 绪论
随着计算机软硬件的发展,高带宽网络的普及以及人工智能技术的日益成熟,人们的生活得到了诸多便利。在计算机软硬件方面,不断提升的性能和功能使得电脑、智能手机等设备变得更加强大和多样化。高带宽网络的普及则使得人们可以更快速地获取信息、进行沟通和分享资源,加速了信息的流动和传播。而人工智能技术的发展,则为人们提供了诸多智能化的解决方案,包括智能助手、自动驾驶、智能家居等,极大地提升了生活和工作的效率。
1.1 研究背景
计算机网络课程涵盖了计算机科学领域中至关重要的一部分,即实现不同设备之间的通信和数据传输。无论是个人用户还是企业机构,都离不开计算机网络的支持。
但是,因为计算机网络课程知识体系相对较为复杂,知识点非常繁多,学好计算机网络课程也是一件非常有难度的事情。
鉴于这种情况,研发一款优秀的问答系统辅助学习计算机网络课程,迫在眉睫,同时这款问答系统也应该适用于其他课程知识的存储的和问答。
1.2 研究意义
通过对市场上现有的知识存储技术和知识问答技术进行深入调查和考察得出了一个重要的结论:研发一款基于知识图谱的问答系统来辅助学习计算机网络课程是至关重要且必要的。
首先,这样的系统能够利用知识图谱的结构化特性,清晰地呈现计算机网络领域的庞大知识体系,使学生能够更系统地学习和理解相关概念、协议、技术以及实践经验。其次,基于知识图谱的问答系统可以根据学生的个性化需求提供定制化的学习路径和问题解答,从而提高学习效率和成效。此外,该系统还能够及时跟踪并整合计算机网络领域的最新进展,保持知识的时效性,使学生能够了解最新技术趋势并将其应用于实践中。
综上所述,基于知识图谱的问答系统不仅能够为学生提供全面而个性化的学习支持,还有助于推动教育信息化的进程,提升教学质量和效率,使学习者更好
地掌握计算机网络领域的知识与技能,甚至对推动我国计算机领域教育事业创新改革有着重大的意义。
1.3 知识图谱研究现状
1.3.1 知识图谱国内外研究现状
近年来,基于知识图谱的问答系统在学术界和工业界都引起了广泛关注和研究。国内外的不少研究机构和公司纷纷投入到这一领域的研究中,推动了该技术的不断发展。
(1)知识图谱国外研究现状
研究者Liang X(2024)提出大数据领域是高度专业化和垂直化的领域,这些信息并不容易转化为可用的数据,以往对基于知识图谱的南京云锦问答系统的研究已经部分解决了这一问题,然后提出了一种融合知识图谱和检索增强生成技术的南京云锦问答系统[1]。研究者Liang X(2024)构建了基于知识图谱的南京云锦数字资源智能问答系统,利用Neo4j图数据库对南京云锦知识进行高效的组织、存储和保护,从而揭示其深厚的文化内涵[2]。研究者Xiaochi Z(2023)利用基于混合知识图谱嵌入实现,在为化学相关研究和工业应用提供面向事实的信息检索,图神经网络和知识图谱等技术,提出了一种结合半监督图神经网络和知识图谱的疾病引导模型[3]。研究者Xu W(2023)使用MASR语音识别模块结合门控卷积单元对不同类型的语音进行有效的文本处理;然后利用自然语言处理中的LTP模块对疑问句进行语义分析和切分匹配;将关键词与疾病数量相结合,用知识图谱划分并构建节点集合[4]。研究者Hanxu L(2021)建立了基于语义模板的质量问题知识检索过程模型。构建了一个域语料库,它由数以千计的质量问题处理记录组成,采用TF - IDF (词频-逆文档频率)算法对质量问题分析报告进行词汇提取[5]。研究者Li W (2022)基于知识图谱的问答是一种从结构化的知识图谱信息推断出自然语言问题答案的智能方法。作为主流的基于知识图谱的问答方法之一,基于信息检索的方法通过构建和排序候选路径来推断正确答案,在简单问题上取得了优异的性能,但由于实体信息丰富,关系多样,难以处理复杂问题[6]。研究者Yuan S(2021)构建了基于Neo4j的旅游知识图,构建了问答系统( QA ),采用上述方法,自然语言问题成功转化为图数据库中可识别的Cypher查询语句,相应的答案将从旅游知识图中捕获并返回[7]。研究者Junlian L (2022)利用知识图谱在配电网设备信息( DNEI )管理中的应用,可以有效地将设备数据进行融合,形成以知识为导向的新型检修管理模式,在语义检索能力和处理复杂大数据关系方面具有很大的优势[8]。研究者Junwei L (2022)首先基于中文Open KG . cn结构化医疗常识数据构建Neo4J知识图谱,然后基于构建的知识图谱构建问答系统,步骤包括从数据收集、数据表示、实现通用的图构建工具等方面构建完整可用的图,然后利用流水线式问答系统模型构建医疗常识问答系统,最后展望问答系统在不同医疗领域的应用前景和行业发展趋势[9]。研究者Yiming S (2024)基于知识图谱的问答系统旨在发现问题背后的内部知识与已知知识库三元组之间的联系,提出了一种知识图谱问答框架( ZDNN-KGQA ),将基于知识图谱的智能问答分为命名实体识别、实体消歧、属性分类和答案选择4个步骤[10]。
(2)知识图谱国内研究现状
蔡令仪(2024)提出并开发基于认知技能图谱的电力电子开关电源实验智能问答系统,旨在为学生提供个性化指导,首先,引入贝叶斯心理测量模型评估学生能力达成情况;然后,利用知识图谱技术构建陈述性知识图谱和用户数字镜像,分别用于存储电源特定领域知识和用户能力信息[11]。季晓慧(2024)利用已有相关矿物数据库用于存储和查询相关矿物知识,常用的搜索引擎也可以对矿物知识进行查询,但无法回答用自然语言进行提问的矿物问题,查询返回的答案需要进一步筛选,基于知识图谱进行矿物知识问答的相关研究,只能回答涉及知识图谱中一个三元组的简单问题,无法回答涉及多个三元组的多跳复杂问题[12]。李成林(2024)基于知识图谱技术,构建一个农作物良种问答系统,以帮助农户快速、准确地获取农作物品种相关信息,提高农业生产效率,增加农民收益借助自然语言处理和BiLSTM-CRF技术设计并开发了一个问答系统,经测试,构建的农作物良种问答系统准确率可达87.67%,能满足用户对农作物品种信息的查询、获取和推荐需求[13]。王乾龙(2023)研究当前数控机床故障方面的查询机制尚不完善,机床工人在查找故障原因所在时往往需要花费较多的时间,为改善现状,从内蒙古某机械厂的数控机床故障数据中抽取其三元组,构建数控机床故障知识图谱[14]。赵同明(2024)为满足人们对健康饮食知识的了解,文章采用网络爬虫工具在权威饮食网站上获取数据,对数据进行预处理后批量导入Neo4j数据库中,构建饮食知识图谱,在此基础上设计并实现问答系统[15]。曾德晶(2024)建立了长江流域取水许可知识图谱,基于大规模预训练语言模型提出了包含实体提及识别、实体链接、关系匹配等功能的知识图谱问答流水线方法,结合取水许可领域数据特点采用BM25算法进行候选实体排序,构建了长江流域取水许可知识图谱问答系统,并基于BS架构开发了web客户端[16]。黄涌(2024)提出一种基于BERT-BiGRU的模型,通过预训练语言模型BERT和双向门控循环单元BiGRU建立医疗问答系统,其中BERT提取文本语义特征,BiGRU学习文本的顺序依赖信息,进而全面表示文本语义结构信息[17]。王博(2023)针对传统搜索引擎无法仅凭关键字准确理解用户意图的问题,构建了基于知识图谱的问答系统,问答系统主要面向西藏旅游领域,通过爬虫技术获取西藏旅游景点数据,完成知识图谱的构建[18]。
1.3.2 知识图谱在教育领域的应用现状
根据互联网统计数据显示,知识图谱在教育领域的应用仍然相对较少,尽管潜力巨大,但实际落地的案例仍然有限。
周东岱(2024)知识图谱在教育领域,知识图谱可以被应用于课程推荐系统、个性化学习路径规划、教学资源整合以及智能辅导等方面。通过构建包含教材内容、学科关联、学习路径等信息的知识图谱,可以帮助学生更好地理解学科之间的联系,个性化地制定学习计划,并得到针对性的学习建议[19]。
此外,知识图谱还可以为教师提供更精准的教学资源和指导,帮助他们更好地了解学生的知识水平和需求,从而提供更有效的教学。尽管如此,由于教育领域与其他行业相比在技术应用和变革方面相对保守,知识图谱在教育领域的应用仍然相对较少。
同时,田箫(2023)在教育领域知识图谱也面临着数据整合、隐私安全等方面的挑战,这些都影响了知识图谱在教育领域的广泛应用和发展,因此,尽管知识图谱在教育领域有很大的潜力,但目前的应用仍相对有限[20]。计算机网络在鄂尔多斯应用技术学院计算机科学与技术中是一门专业核心课程设置4学分,64学时。然而复杂,很多学生学习时比较困难,造成基础不好的现象。本论文将该问题解决,使学生有更高的学习效率。
1.4 研究内容
本文研究旨在开发一个基于知识图谱的计算机网络课程问答系,以探索这种技术在教育领域辅助学习的可行性。简单来说,该系统将采用核心技术。
(1)图谱库Nebula和Llamaindex 用于构建计算机网络知识的知识图谱,为问答系统提供支撑。
(2)GPT自然语言处理用于理解用户提出的问题,将其转化为可在知识图谱中查找的形式。
(3)分词管理对用户问题进行分词和语义分析,进一步增强系统的理解能力。
通过整合这些技术,最终将开发出一个智能化的计算机网络课程问答系统,能够为学生提供快速、准确的知识解答,从而提高学习效率和体验。同时,研究还将探讨如何将该系统推广应用于教育领域,以期为学习计算机网络知识的学生带来便利。
2 关键技术介绍
经过多次调研得出,在实现基于知识图谱的计算机网络课程问答系统方面,采用了Vue单页面应用开发技术、Python接口技术、Nebula图谱库、Llamaindex、GPT自然语言处理技术、分词管理、内存数据库Redis以及MySQL数据库技术。这些技术在各自领域具有独特优势,通过综合运用,能够构建出高效、智能且功能丰富的问答系统。下面会对每种技术进行分析和概要说明。
2.1 Vue单页面应用开发技术
Vue单页面应用开发技术是一种流行的前端开发框架,特别适用于构建交互性强、用户体验良好的Web应用程序。其核心理念是通过组件化的方式构建用户界面,使得开发过程更加模块化、可维护性更高。
在基于知识图谱的计算机网络课程问答系统中,Vue单页面应用开发技术可以用于构建用户界面,包括问题输入界面、答案展示界面等。通过Vue的组件化特性,可以将界面划分为多个独立的组件,分别处理不同的功能模块,使得系统结构清晰、代码可维护性高。
此外,Vue提供了丰富的生态系统和插件,如Vue Router用于实现路由管理、Vuex用于状态管理等,这些工具能够帮助开发者更高效地构建复杂的单页面应用。
Vue单页面应用开发技术在基于知识图谱的计算机网络课程问答系统中能够提供良好的用户体验和可维护性,是一个值得选择的前端开发框架。
2.2 Nebula图谱库
Nebula图谱库是一种基于分布式存储和计算的图数据库,作为构建计算机网络课程问答系统的知识存储库,它具有以下技术优势。
(1)分布式架构:Nebula采用分布式存储和计算架构,能够支持海量数据的存储和高效计算,提供良好的横向扩展能力,并且具备高可用性和容错性。
(2)图数据库特性:作为专门针对图结构数据而设计的数据库,Nebula提供了图数据库特有的查询语言和数据模型,能够高效地处理复杂的图结构及图算法。
(3)实时查询和分析:Nebula图谱库支持实时的图数据查询和分析,可以快速完成复杂的图算法运算,并且能够应对动态图结构的变化。
(4)兼容性与易用性:Nebula兼容Cypher查询语言,使得开发人员可以利用熟悉的查询语法进行图数据的操作,降低了学习成本,提高了开发效率。
(5)社区支持和发展:Nebula图谱库拥有活跃的开源社区,持续地得到更新和改进,同时提供了丰富的文档和示例,方便开发者快速上手和解决问题。
综上所述,Nebula图谱库基于分布式架构、图数据库特性、实时查询和分析能力以及兼容性与易用性等方面具有明显的技术优势,适用于构建基于知识图谱的计算机网络课程问答系统,能够支持系统对复杂的图结构数据进行存储、查询和分析。
2.3 LlamaIndex
LlamaIndex作为基于知识图谱的计算机网络课程问答系统构建技术之一,其在知识检索中具有以下技术优势:
(1)语义理解
LlamaIndex能够通过知识图谱中的实体和关系,实现对用户提出问题的语义理解。系统能够识别问题中的关键词和实体,从而更准确地定位相关知识点和关系,提高问题与知识图谱之间的匹配度。
(2)关系推理
LlamaIndex能够利用知识图谱中的关系信息进行推理分析。系统可以根据实体之间的关联关系,推断出问题的答案,提供更全面和准确的知识检索结果。这种关系推理技术能够帮助系统更好地理解问题和知识图谱中的内容。
(3)多源知识整合
LlamaIndex可以整合多个数据源和知识库,构建丰富的知识图谱。系统能够从不同数据源中获取信息,将不同领域的知识点和关系整合到一个统一的知识图谱中,提供更全面和多样化的知识检索服务。
(4)动态更新
LlamaIndex支持知识图谱的动态更新,能够随时接收新的知识点和关系,并将其整合到知识图谱中。系统可以保持知识库的及时更新,确保用户获取到最新的知识信息。
(5)上下文推理
LlamaIndex具有较强的上下文推理能力,能够考虑问题的整体语境和背景信息。系统能够根据问题的上下文信息和知识图谱中其他知识点的关联,生成更准确和全面的答案,提高知识检索的质量。
(6)交互式查询
LlamaIndex支持用户与系统的交互式查询,用户可以通过多轮对话与系统进行信息交流,进一步细化问题和获取更深入的知识内容。系统能够根据用户的反馈和需求,动态调整查询策略,提供更个性化的知识检索服务。
因此上,LlamaIndex作为基于知识图谱的计算机网络课程问答系统构建技术之一,在知识检索中具有语义理解、关系推理、多源知识整合、动态更新、上下文推理和交互式查询等技术优势,能够为用户提供准确、全面的知识检索服务,提升用户体验和学习效果。
2.4 GPT自然语言处理
GPT(Generative Pre-trained Transformer)是一种基于深度学习的自然语言处理模型,具有强大的文本生成和理解能力。将GPT应用于基于知识图谱的计算机网络课程问答系统构建技术中,可以带来以下技术优势:
(1)语义理解
GPT模型能够通过预训练的方式学习大量文本数据的语义信息,从而具有较强的语义理解能力。在知识问答系统中,GPT可以帮助系统更好地理解用户提出的问题,从而更准确地定位相关知识点和关系。
(2)文本生成
GPT是一种生成式模型,能够根据输入的文本生成自然流畅的文本内容。在知识问答系统中,GPT可以根据问题生成符合语境的答案,提高系统生成答案的质量和流畅度。
(3)上下文理解
GPT模型是基于Transformer架构构建的,能够有效地捕捉文本中的上下文信息。在知识问答系统中,GPT可以考虑问题的整体语境和背景信息,进行上下文推理,生成更准确和全面的答案。
(4)多轮对话
GPT模型支持多轮对话的处理,能够根据用户的多轮提问和反馈进行信息交流。在知识问答系统中G自然的对话交流,帮助用户更深入地探索和理解知识内容。
(5)个性化推荐
基于GPT模型的知识问答系统可以根据用户的问题历史和偏好进行个性化推荐。系统可以根据用户的查询历史和反馈信息,推荐符合用户兴趣和需求的知识内容,提高用户体验和满意度。
(6)迁移学习
GPT模型支持迁在不同领域和语境下进行微调,适应不同应用场景。在知识问答系统中,GPT可以通过微调,适应特定领域的知识问答需求,提高系统的准确性和适用性。
所以,将GPT应用于基于知识图谱的计算机网络课程问答系统构建技术中,可以带来语义理解、文本生成、上下文理解、多轮对话、个性化推荐和迁移学习等技术优势,提高系统的智能化水平和用户体验。
2.5 MySql数据库
MySQL数据库在基于知识图谱的计算机网络课程问答系统构建技术中存储非知识点数据的巨大优势包括:
(1)关系型数据库特性:MySQL是一种关系型数据库管理系统,具有丰富的数据管理和查询功能。在知识图谱问答系统中,可以利用MySQL存储非知识点数据,如用户信息、日志记录、系统配置等,实现对这些数据的高效管理和查询。
(2)事务支持:MySQL支持事务操作,可以将多个数据库操作打包成一个事务进行执行,保证事务的原子性、一致性、隔离性和持久性(ACID特性)。在知识图谱问答系统中,可以利用MySQL的事务支持确保非知识点数据的数据完整性和一致性。
(3)数据备份和恢复:MySQL提供了数据备份和恢复的功能,可以定期备份数据库数据,以防数据丢失或损坏。在知识图谱问答系统中,可以利用MySQL的备份功能保障非知识点数据的安全性。
(4)高可靠性和稳定性:MySQL是一个成熟稳定的数据库管理系统,具有较高的可靠性和稳定性。在知识图谱问答系统中,可以通过MySQL存储非知识点数据,确保系统的稳定运行和数据的安全存储。
(5)性能优化:MySQL支持索引、查询优化等功能,可以提高数据库的查询性能和响应速度。在知识图谱问答系统中,通过合理设计数据库表结构和索引,可以优化非知识点数据的查询效率。
(6)与其他系统集成:MySQL作为一种常用的数据库管理系统,与许多其他系统和工具具有良好的集成性。在知识图谱问答系统中,可以利用MySQL与其他系统的集成优势,实现数据的共享和交互。
所以,MySQL数据库在基于知识图谱的计算机网络课程问答系统构建技术中存储非知识点数据的巨大优势包括关系型数据库特性、事务支持、数据备份和恢复、高可靠性和稳定性、性能优化以及与其他系统集成等方面,能够为系统提供高效、稳定和可靠的数据存储和管理功能。
3需求分析
在基于知识图谱的计算机网络课程问答系统的功能需求分析中,将关注系统所需具备的各项功能,以确保系统能够提供用户所需的全面、准确的问答服务。
在设计基于知识图谱的计算机网络课程问答系统时,功能需求分析是至关重要的一步。通过对系统所需具备的各项功能进行详细分析,可以确保系统能够满足用户的需求,提供稳定、高效、可靠的问答服务。主要功能需求包括用户管理、问题输入与回答、知识图谱展示、用户问答记录、数据统计分析等方面,每个功能都扮演着系统运行和用户体验中不可或缺的角色。
3.1 功能需求分析
基于知识图谱的计算机网络课程问答系统需求分析主要包括前端管理部分和后端管理部分。
3.1.1 开放问答功能需求分析
前端管理需求包括两部分:问答需求和知识节点展示需求,如图3.1前端管理用例图所示。
图3.1 前端管理用例图
(1)回答需求
功能要求用户可以在web问答界面输入问题,系统能够根据知识图谱检索相关知识点并给出准确或符合逻辑的推理答案。
(2)知识节点展示需求
系统应展示计算机网络课程的知识节点与节点间,包括节点和知识点之间的关系和连接,以帮助用户更好地理解知识结构,同时对知识问答也是一个辅助功能。
3.1.2 后端管理需求分析
后台管理需求包括系统相关信息的管理,包括用户管理、知识管理、问答日志查询和数据统计,如图3.2后台管理用例图。
图3.2 后端管理用例图
后端管理具体需求有:
(1)用户管理需求
这里的用户指的是对系统进行维护的操作人员信息管理,系统需要对信息需要具有增加,删除,修改,查询,密码修改等功能,以便系统后台管理功能能被授权维护。
(2)知识管理需求
系统需要对知识进行管理,主要是对知识节点及知识存储具有增加,删除,修改,查询等功能,达到对知识库本身进行维护和新知识入库的目的。
(3)用户问答记录管理需求
系统需要记录用户的问答历史,包括问题输入和系统回答,方便用户查看和管理,并根据问答结果对系统问答模型参数进行修正。
3.2 性能需求分析
在基于知识图谱的计算机网络课程问答系统中,性能需求分析至关重要。通过对系统性能的要求和需求进行详细分析,可以确保系统能够在稳定、高效的状态下运行,提供用户流畅的体验。具体性能需求描述有快速响应需求、高效检索需求、稳定性需求。
快速响应需求:系统应具备快速的响应速度,能够在用户输入问题后迅速返回答案,以提高用户体验。
(2)高效检索需求:系统的知识图谱检索功能应高效快速定位相关知识点,确保用户能够迅速找到答案。
(3)稳定性需求:系统应具备稳定的运行能力,保证系统长期稳定运行,避免系统故障或崩溃。
3.3 用户体验需求分析
用户体验需求是基于知识图谱的计算机网络课程问答系统设计和开发过程中至关重要的一环。通过对用户体验的要求和需求进行详细分析,可以确保系统能够提供用户友好、直观、高效的操作界面,以提升用户满意度和系统使用效果。用户体验具体需求有友好界面、智能推理、礼貌用语。
(1)友好界面:系统界面设计应简洁清晰,用户操作简单明了,提升用户体验。
(2)智能推理:系统应根据已有库存知识及上下文智能对一些非标准提问进行符合逻辑的智能推理,提高用户体验和个性化服务。
(3)礼貌用语:时刻注意系统问答结果的礼貌用语。尤其是对未知问题表示诚挚的歉意 。
4 系统设计
4.1 系统总体架构
基于知识图谱的计算机网络课程问答系统的总体架构图详见图4.1系统整体架构图,每个层次的简述。
(1)Web访问层
后台管理:提供管理员界面,用于管理系统的各项设置和功能。
开放式问答:提供给用户的问答界面,用户可以在此提交问题并获取答案。
(2)应用业务层
知识管理:管理系统中的知识库,包括添加、编辑、删除知识点等功能。
用户管理:管理系统的用户信息,包括注册、登录、权限管理等功能。
问答接口:处理用户提交的问题,调用下层服务进行处理并返回结果。
问答记录:记录用户的问答历史,用于后续分析和改进。
数据统计:对系统的使用情况、性能等进行统计分析。
(3)服务层
Nebula图谱库:存储和管理计算机网络知识图谱数据,提供数据检索和查询服务。
Llamaindex:辅助图谱库,可能提供额外的功能或数据支持。
GPT自然语言处理:处理用户提出的自然语言问题,将其转换为可理解的形式。
分词管理:对用户问题进行分词和语义分析,以提高系统理解能力。
(4)数据库和数据层
MySQL数据库:用于存储系统的结构化数据,如用户信息、问答记录等。
Redis缓存数据库:用于存储系统的临时数据或缓存数据,提高系统性能和响应速度。
(5)基础设施
服务器:承载系统各个组件和服务的硬件设备。
网络设备:提供网络连接和通信支持的设备。
操作系统:运行在服务器上的操作系统,如Linux或Windows。
存储设备:用于存储系统数据和文件的硬件设备,如硬盘或SSD。
架构整体上以实现用户与系统的问答交互为核心,通过多个层次的组件协同工作,实现了一个完整的基于知识图谱的计算机网络课程问答系统。
图4.1 系统整体架构图
4.2 MySql数据库设计
(1)users表
users设计如图4.2 users所示,该表用来存储后台管理员信息。
图4.2 users E-R图
id:这是一个唯一标识符,用于表示每个用户的独特身份,它是一个整数类型,通常是主键(Primary Key)列。Username:这是用户的登录名或用户名,它用于识别用户,并允许他们在系统中进行身份验证。是字符串类型的列。nickname:这是用户的昵称或称呼,是用户在系统中显示的名称,它是用于个性化用户体验的可选字段,通常是字符串类型的列。password:这是用户的密码,它用于保护用户账户的安全性,密码通常是以加密形式存储在数据库中,以防止未经授权的访问,是字符串类型的列。creatorid:这是创建者的ID,它用于记录创建该用户记录的用户的身份,这在一些系统中用于跟踪用户之间的关系或权限控制,是整数类型的列,用于引用另一个用户的ID。createtime:这是用户记录创建的时间戳或日期时间,它用于记录用户记录的创建时间,可以用于跟踪用户活动或执行其他与时间相关的操作,通常是日期时间类型的列。
通过这个用户表设计,可以在"users"表中存储每个用户的相关信息,并使用唯一的ID进行标识,这些信息包括用户名、昵称、密码、创建者ID和创建时间。这样的设计可以构建一个具有身份验证和用户管理功能的系统。
(2)askanswerlog记录
askanswerlog记录表设计详见4.3askanswerlog表E-R图。
图4.3 askanswerlog E-R图
id:这是一个唯一标识符,用于表示每个记录的独特身份,它是一个整数类型,通常是主键(Primary Key)列。Question:这是用户提出的问题,它用于记录用户的问题内容,通常是字符串类型的列。Answer:是问题的答案,它用于记录与问题相关的答案内容,可以是任意长度的文本或字符串,通常是字符串类型的列。Created_at:这是问题记录的时间戳或日期时间,它用于记录问题的提出时间,可以用于跟踪问题的时间顺序或执行其他与时间相关的操作,通常是日期时间类型的列。
通过这个问答记录表的设计,可以在“askanswerlog”记录表中存储用户提问和相应的答案,每条记录包括问题、答案以及记录时间,设计可以用于记录用户与系统的交互,并提供对问题和答案的历史记录。
4.3系统功能设计
软件开发过程中,系统功能模块设计是非常关键的一个环节。本文系统功能模块设计包括系统功能整体设计和系统功能详细设计两部分内容。
在系统功能整体设计阶段,会对系统涉及的所有功能项目进行全面的规划和设计。
系统功能详细设计阶段则是在整体设计的基础上,对每一个功能进行更加具体和深入的讲解,包括功能的实现逻辑和所采用的技术。
4.3.1系统功能整体设计
基于知识图谱的计算机网络课程问答系统的整体设计包括前端管理部分和后端管理两个主要部分,详见图4.4系统整体功能设计图。
图4.4 系统整体功能设计图
用户可以通过输入问题与系统进行交互,并获得相应的回答,此外,该部分还包括知识节点展示功能,可以向用户展示相关的知识节点信息。
后台管理部分包括:用户管理允许系统管理员对用户信息进行管理和维护,确保系统的安全性;知识管理允许管理员对系统的知识库进行添加、修改和删除等操作,以不断更新和完善系统的知识体系;问答记录功能记录和查看用户的历史问答记录,有助于系统分析用户需求和行为模式;数据统计功能提供系统使用情况的数据分析和统计,为系统管理者提供有效的运营支持和决策依据。
通过这些功能模块的设计,系统能够为用户提供智能问答服务,并确保后台管理的高效运作和数据管理。整体设计考虑了用户需求和系统管理的全面性,旨在为用户提供便捷的信息获取体验,同时为系统管理者提供有效的运营支持。
4.3.2系统功能详细设计
(1)问答功能设计
用户可以输入问题并获取答案,以类似聊天的方式进行问答,问答语言形式相对自由,不同的问答细节会获得不同的系统反馈,尽显问答系统的人工智能应用特色。
知识图谱问答流程如图4.5所示。首先,用户在web页面上提出一个问答请求,这个请求会被发送到后端的问答接口。接口会对用户提出的问题进行分词切割,将问题转化为可以匹配的关键词。
接下来,使用分词工具将问题切割后生成的名词会被当做参数去查询知识图谱,匹配检索系统在Nebula图谱库中对知识进行匹配检索。LlamaIndex会根据关键词匹配到相关的知识库内容,并将匹配结果返回给后端问答接口。
然后,后端问答接口会将匹配到的知识图谱的关系内容发送到GPT自然语言处理系统中进行处理。GPT会对知识内容进行语义理解和处理,总结并生成符合用户问题的答案。
图4.5知识图谱问答流程图
如输入了一个关于计算机网络的问题,首先系统会对问题进行分词,得到计算机网络这个名词主体,然后通过计算机网络这个名词主体去查询Nebula图数据库,可以得到如图所示的关系,可以发现展示了3个深度的关系,如果需要更深的关系,可以将3调整的更大,最后大模型通过这些得到的关系和最开始的问题,总结出答案。
计算机网络概论包含了多个主题,其中涵盖了计算机网络的定义与分类、网络体系结构与网络协议、分组交换技术、计算机网络的形成与发展等内容。这些主题之间通过包含关系相互连接,构成了一个知识体系。图4.6 展示了Nebula Graph 中计算机网络这本书的章节结构关系。从图中可以清晰地观察到书籍的层级结构,包括不同章节之间的层次关系以及各章节内容的组织方式,通过构建这样的图数据模型,可以更加直观地展示复杂的知识体系,并进行深入的数据分析和查询。这种基于图数据库的关系可视化方式,为表达实体之间的层级、归属等各种语义关系提供了有效的解决方案。
最后,后端问答接口将处理后的答案返回给web页面,同时展示给用户。用户可以在页面上看到与自己提出的问题相匹配的答案,完成整个问答流程。整个流程如4.7问答流程图所示。
图4.7 问答流程图
(2)知识节点关系图展示设计
web页面通过Echarts关系图的方式展示计算机网络课程从课程、章、节、详细分级知识节点及知识节点之间的关系,期望能够辅助用户学习和了解计算机网络课程相关知识体系。
知识图谱的构建方法根据已有的文档标注工具,将书籍中的章、小节、小小节、知识点标注好并生成Jion文件,可以清楚的知道节点之间的关系。通过标注还可以知道节点的颜色和最重要的关系,因为知识图谱最终的就是节点与节点之前通过关系进行关联的。图4.8 章与小节之间的关系如图所示。
图4.8章与小节之间的关系
第三标题与知识点之间的关系主要包括组成、条件、基本需求、包含、概念、问题、定义、包、,特点、功能、作用、关系、原理和背景等关系,如图4.9所示。
图4.9第三标题和知识点之间的关系
图4.10展示了知识图谱三元组的原始数据关系信息,这个信息是通过标注工具从计算机网络这本书中标注整理得到。
图4.10 样例数据图
知识存入Nebula图谱库通过LlamaIndex提供的 api,可以将三元组插入到知识图谱中。upsert_triplet方法支持保存和更新的功能,即 save and update。高效的将三元组数据插入到图数据 Nebula 中。
(3)后台管理设计
基于知识图谱的计算机网络课程问答系统的后台管理设计主要用于系统管理员管理系统的各种功能和设置,流程如图4.11后台管理流程图所示。
图4.11 后台管理流程图
(4)用户管理设计:允许系统管理员对用户信息进行管理和维护,确保系统的安全性。在用户管理页面、有用户列表、新增用户、更新用户信息、删除用户等功能,如图4.12用户管理图所示。
图4.12用户管理图
(5)知识管理设计:允许管理员对系统的知识库进行添加、修改和删除等操作,以不断更新和完善系统的知识体系。知识管理页面包括知识列表、新增知识、更新知识、删除知识,如图4.13知识管理图所示。
图4.13 知识管理图
(6)问答记录设计:记录和查看用户的历史问答记录,有助于系统分析用户需求和行为模式。问答管理页面包括问答列表查询,新增问答,更新问答,删除问答等功能,如图4.14问答管理图所示。
图4.14问答管理图
5 系统功能实现
基于知识图谱的计算机网络课程问答系统的功能实现主要包括前端管理和后端管理两个部分,前端管理部分包括问答接口:该系统提供一个开放式的问答接口,允许用户向系统提出与计算机网络课程相关的问题。自然语言理解:系统利用自然语言处理(NLP)技术对用户提出的问题进行解析和理解,以便准确理解用户的意图。知识图谱查询:基于知识图谱的计算机网络领域的知识,系统可以根据用户的问题查询相关的知识节点和关系。回答生成:系统根据查询到的知识节点和关系,生成针对用户问题的准确回答,并将其返回给用户。后端管理部分包括:知识图谱维护:系统提供一个后台管理界面,用于维护知识图谱的内容。管理员可以添加、修改和删除知识节点、关系以及相关属性。问题管理:管理员可以管理用户提出的问题,对问题进行分类、审核、编辑和删除等操作。用户管理:该系统可能包含用户管理功能,管理员可以管理用户的注册、登录和权限等信息。
5.1 开放问答功能实现
(1)问答功能实现
系统实现了基于网页的问答功能,用户可以通过聊天形式进行文字交互,提出计算机网络相关的问题,系统会根据预先建立的知识库,提供相应的答复。这一问答功能的实现思路如下:
知识库构建:收集整理计算机网络课程的相关知识内容,构建成结构化的知识库。知识库包含各个知识点的定义、概念解释、相关原理等内容。问答逻辑实现:用户在网页上输入问题,系统会分析问题内容,匹配知识库中的相关知识点。匹配结果,系统自动生成答复,并以聊天对话的形式呈现给用户,如果无法直接匹配到答案,系统会给出提示,引导用户进一步细化或补充问题,界面交互设计:网页界面采用聊天框的形式,用户和系统的对话记录会实时显示,提供输入问题的文本框,以及系统答复的展示区域,界面风格简洁明了,便于用户快速上手使用。
问答功能实现如图5.1问答界面所示。可以对系统进行随意提问,一问一答的形式展示,如果查询到知识图谱中的内容则总结答案返回给前端,如果没有查询到知识图谱中的内容,则返回对不起,未查询到相关知识。
图 5.1 问答界面
用户可以开放式的输入问题,如果问题是计算机网络课程中的章节或者知识点,则可以正确的回答出问题。如果问题不是计算机网络课程中的内容,则会提示,抱歉,未查询到相关知识。问答主要包含如下步骤,首先用户输入问题,然后分以下两种情况。
第一种情况查询mysql是否问过相同的问题,如果库存匹配有相同的问题,则直接返回答案给用户。
第二种情况没有相同的问题,则对问题进行分词,然后根据查询知识图谱库,查询后得到相应的知识图谱及关系,然后通过GPT大模型根据得到的关系和问题对问题进行总结输出答案到web页面 ,如果用户对回答满意,则保存回答结果到mysql中。
图5.2的代码主要展示了三元组入库的功能,准备好处理过的三元组,调用图5.2的方法,首先会获取到三元组信息,然后使用LlamaIndex封装好的插入方法,可以直接将三元组信息插入到Nebula图数据库中。
图5.2 知识存入Nebula图谱库代码举例
插入成功后可以查询图数据的数据,如图5.3查询结果所示,插入到知识图谱的数据集,该数据集展示了计算机网络这本书的章节信息,方便梳理章节之前的关系,为问答中的问题做快速定位。
图5.3 查询结果
图5.4所示为QA问答核心代码,主要实现了首先从MySQL数据库根据问题查询答案,如果命中,则直接返回给前端答案,如果未命中相关问题,则先对问题进行分词处理,对分词后的名词进行知识图谱查询,最后通过大模型将问题和知识图谱查询出来的与问题相关的图谱信息进行总结回答,返回给前端。
图 5.4 QA问答核心代码
当根据查询获取到知识图谱的数据并将其作为三元组插入到 Nebula 图数据库中后,通过功能来查询知识图谱的内容并在网页上展示出来。为了实现这个功能,以下是一个简单的流程:构建查询接口:在网页应用中,需要实现一个查询接口,通过该接口可以向 Nebula 图数据库发送查询请求。编写查询语句:根据用户在网页上的输入,构建相应的查询语句。查询语句可以使用 Cypher 查询语言或者 Nebula 的图查询语句。发送查询请求:通过查询接口,将构建好的查询语句发送给 Nebula 图数据库。处理查询结果:接收到 Nebula 图数据库的查询结果后,解析结果并进行处理。可以提取相关的节点、关系或属性信息。展示结果:根据处理后的结果,在网页上展示查询到的知识图谱内容。可以使用合适的图形或表格形式展示节点、关系以及属性信息。图5.5展示了知识图谱查询的代码,主要实现了查询Nebula图数据库,返回三元组信息,在前端显示。
图5.5知识图谱查询
5.2 知识图谱功能实现
图5.6知识节点的关系图,展示计算机网络这本书的全部章节关系,根据图谱可以清晰看到章节信息与章节关系。
图5.6 知识节点关系图
Llamaindex 同样提供了查询的 api。如图5.6知识节点关系图展示查询所有知识图谱实体与关系的信息,并通过 build_data 方法将查询到的图谱信息转化为前端需要的结构,分层级展示。其中links表示节点之间的关系,symbolSize表示节点的大小,name表示节点的内容,value表示节点的属性。
图5.7查询数据
图5.8知识节点关系图中查询所有知识图谱信息的核心代码如下:查询Nebula图数据库所有顶点和边关系的SQL语句,通过该方法,我们可以将图数据中所有信息查询出来,并在页面展示成图谱的形式,一目了然,通俗易懂的知道节点之间的关系。
query_template = f"""MATCH ()-[e]->() RETURN e;"""
all_relation = self.graph_store.query(query_template)
通过代码可以查询到Nebula图数据库中所有的三元组关系,将三元组关系组装成前端需要的结构,使用Echarts进行知识图谱的展示。图5.8知识节点关系图主要功能是通过调用接口查询所有知识图谱关系信息。
图5.8知识节点关系图核心代码
知识节点关系图,以Echarts关系图为表现形式,以图谱库知识节点为数据基础,对计算机网络课程知识节点及层级关系进行展示。
5.3 后台管理功能实现
(1)用户管理实现
用户管理实现了对用户信息的基本增加、删除、修改、查询功能,以及密码修改功能,最终达到对系统维护权限可授权的目的。
图5.9用户管理实现
用户登录代码: 用户输入用户名和密码,后端通过用户名和密码查询数据库,查看是否能够匹配,如果能够匹配则登录成功,不能匹配,则提示用户名和密码错误。
图5.10核心代码
用户列表核心代码: 通过分页对用户进行查询,并按照id的降序排列,分页默认每页10条数据。
图5.11核心代码
新增用户代码: 通过传入用户名,用户昵称,用户密码进行新用户注册。首先需要通过用户名进行唯一性校验,如果存在则提示用户已经存在,如果不存在,则进行插入操作,保存用户数据。
图5.12核心代码
修改用户代码: 通过传入用户名,用户昵称,用户密码对用户信息进行修改。
图5.13核心代码
删除用户代码: 删除用户时,只需要传入用户id即可删除用户,删除后提示用户删除用户成功。
图 5.14 核心代码
(2)问答记录
问答记录功能实现了对问答记录在问答时进行问题和答案的记录,并在后台管理端可以被管理员查询。问答记录最终可以作为系统实用的模型参数修正,知识点数据更新,以及问答处理逻辑修正的数据基础。图5.15 分页查询问答对,通过分页查询MySQL问答对的数据统计数据,主要查询的表是QA表,查询字段是问题和答案以及时间,展示在前端页面。
图5.15 分页查询问答对
图5.16核心代码
图5.17新增问答对,主要功能是通过前端传的问题和答案,对问答对进行保存,方便维护和统计问答信。
图5.17 新增问答对
(3)知识库管理
知识库管理功能实现了管理员通过后台管理对知识节点及知识的增加、删除、修改、查询等。该功能是最大限度的实现图谱库存储知识的节点关系正确和知识完整的有力保证。
图5.18知识库管理
图5.19 通过文件保存知识点,在开发过程中,我们需要处理大批量的知识点数据,可以通过导入文件的方式,批量处知识点数据。
图 5.19 知识点保存
6 系统测试
在实现基于知识图谱的计算机网络课程问答系统测试中,主要针对问答功能进行各种测试,以验证在不同提问方式和语境下的回答能力。以及在图谱库存知识缺失或者不全的情况下,问答系统基于当前库存知识对提问反馈的符合逻辑的推理回答。
6.1 问答测试用例
举例测试问题,不限以下问题,可以随意提问,只要是知识图谱中的,是都可以回答出来,并且回答正确的。测试用例详见表6.1测试用例。
表6.1问答测试用例
| Test Case ID | Test Case Name | Description | Test Steps | Expected Result |
|---|---|---|---|---|
| TC001 | 问答功能测试 | 验证系统的问答功能 | 打开问答页面 | 问答页面可以打开 |
| TC002 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入问题 | 问答页面可以打开,并可以输入问题 |
| TC003 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的章 | 可以回答出和问题相关章的内容 |
| TC004 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的小节 | 可以回答出和问题相关小节的内容 |
| TC005 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的小小节 | 可以回答出和问题相关小小节的内容 |
| TC006 问答功能测试 | 验证系统的问答功能 | 打开问答页面, | 输入图谱存在的知识点 | 可以回答出和问题相关知识点的内容 |
| TC007 问答功能测试 | 验证系统的问答功能 | 打开问答页面 | ,输入图谱不存在的信息 | 回答为未找到相关知识 |
| TC008 用户管理测试 | 验证用户管理功能 | 进入用户页面, | 对用户进行增删改查 | 可以对用户进行增删改查 |
续表6.1
| Test Case ID | Test Case Name | Description | Test Steps |
| TC009 | 问答管理测试 | 验证问答管理功能 | 进入问答管理页面,对问答进行增删改查 |
| TC010 | 知识点管理测试 | 验证知识点管理功能 | 进入知识点管理页面,对知识点进行增删改查 |
6.2 测试结果分析和评价
测试结果分析和评价详情见表6.2测试结果分析和评价。
表6.2测试结果分析和评价主要是对问答结果进行评估,评估系统对问题的回答是否正确.
表6.2 测试结果分析和评价
序号 测试问题和问答结果 答案评价
1 什么是计算机系统?
答:计算机系统是指由计算机硬件、软件和人员组成的整体,用于处理和管理信息的系统。 回答准确
2 什么是计算机网络?
答:计算机网络是指由若干计算机和其他通信设备通过通信线路连接起来,以实现信息交换和资源共享的系统。 回答准确
3 计算机网络和计算机系统的关系?
答:计算机网络和计算机系统的关系是计算机网络是计算机系统的一个组成部分。计算机系统包括硬件和软件,而计算机网络是连接多台计算机的通信系统。计算机网络通过物理层和数据链路层等技术实现计算机之间的数据传输和通信。计算机网络是计算机系统中负责数据通信的部分。 回答全面,回答准确
续表6.2
序号 测试问题和问答结果 答案评价
4 按照拓扑图划分,计算机网络分为几种类型
答:根据给定的拓扑图划分,计算机网络可以分为多种类型。 回答准确,答案不全面
5 鲁迅是谁?
答:鲁迅不在上下文中提及,因此无法回答鲁迅是谁。 回答符合逻辑推理
6 达芬奇是计算机之父吗?
答:根据上下文,没有提到达芬奇与计算机之父之间的关系,因此无法确定达芬奇是否是计算机之父。 回答符合逻辑推理
7 用户管理页面对用户进行增删改查 可以对用户进行增删改查
8 问答管理页面对问答进行增删改查 可以对问答信息进行增删改查
9 知识点管理页面对知识点进行增删改查 可以对知识点进行增删改查
上述测试结果表明:基于知识图谱的计算机网络课程问答系统在简单问答测试中表现非常优秀;在复杂问答测试中表现良好,关于答案的准确性和全面性有待提升;在未知问题问答测试中,答案符合逻辑推理。
总结与展望
基于前文测试结果表明,本文研究的基于知识图谱的计算机网络课程问答系统在功能和性能方面取得了显著成就。
首先,系统的功能性能符合预期,能够准确回答与计算机网络相关的问题,并通过清晰的知识图谱展示知识点之间的联系,为用户提供了全面的信息。其次,系统表现出色,稳定性强,未出现严重错误或异常情况,为用户提供了良好的交互体验。再次,系统对问题的容错率高,能够友好地处理用户输入的错误拼写或语法错误,确保了用户获取正确答案的能力。另外,系统的回答速度快,用户可以迅速获得准确的答案,提高了用户满意度。
因此可以得出结论:本文设计和实现的基于知识图谱的计算机网络课程问答系统通过构建知识图谱、设计问答模型、优化用户界面等工作,为学校教学与学习提供了新的途径和可能性。
知识图谱和大型语言模型如GPT的结合,为书籍目录和知识点问答管理系统提供了强大的支持和广阔的应用前景。以下是对这一系统未来发展的一些展望:
(1)个性化学习体验
结合知识图谱和GPT,系统可以为每个用户提供个性化的学习体验。通过分析用户的历史学习数据和兴趣点,系统能够推荐相关的知识点和书籍,从而提高学习效率和兴趣。
(2)智能问答
利用GPT的自然语言处理能力,系统可以提供更加智能的问答服务。用户可以以自然语言的形式提出问题,系统则能够理解问题的意图,并从知识图谱中检索相关信息,给出准确且易于理解的答案。
(3)跨学科知识整合
知识图谱能够将不同学科的知识点进行整合,形成跨学科的知识网络。这使得系统能够处理更为复杂的查询,例如,将历史、地理、文化等多个领域的知识结合起来,回答跨学科的问题。
(4)实时更新和维护
随着知识的不断更新,知识图谱需要定期进行维护和更新。GPT可以帮助自动化这一过程,通过分析最新的学术文献、新闻报道等,自动更新知识的信息。
版权声明:本文标题:基于知识图谱知识问答系统实现思路 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763510253a2938878.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论