1. 绪论
1.1. 研究背景
步入21世纪以来,信息技术飞速发展,新能源理念逐渐兴起,这推动了传感器技术的迅猛进步。传感器技术作为信息技术的核心组成部分,能够将物理世界中的各类信息转化为可传输、可解析的数字信号,在工业自动化、智能家居、环境监测、医疗健康等众多领域发挥着关键支撑作用。
知识图谱作为一种高效的知识组织和推理工具,能帮助学生深入理解课程知识点及其相互关系,提高学习效果和理解深度。基于此,本课题旨在开发一个基于语义网络的《传感器原理与应用》课程知识图谱,希望为《传感器原理与应用》课程的教学提供全新的辅助工具和学习资源。
1.2. 研究现状
在国际上,知识图谱在教育领域的应用研究已取得一定成果。在欧美等发达国家,知识图谱已广泛应用于在线学习[1]、智能辅导[2]等教育场景,可以提高教学和学习质量。课程知识图谱不仅可以帮助学生梳理课程内容的逻辑框架和知识点的联系,还通过个性化学习建议[3]和智能辅导策略[4],提高学生的学习兴趣和学习效率。
1.3. 研究内容
(1) 调研分析:调研《传感器原理与应用》[5]课程的教学内容、知识点及其关联关系,明确知识图谱的构建需求。
(2) 结构设计:基于需求分析结果,设计知识图谱的语义网络结构[6],包括节点(知识点)、边(知识点之间的关系)以及属性的定义。
(3) 从数据获取与整理:从教材、教学大纲、课件等教学资源中获取知识点,并进行整理和分类,为知识图谱的构建提供数据基础。
(4) 知识图谱构建:利用图数据库Neo4j [7]与Python技术,根据设计的语义网络结构,构建《传感器原理与应用》课程的知识图谱。
(5) 可视化界面开发:开发可视化界面,展示知识图谱,提供节点搜索[8]、路径导航、关系展示等功能,便于用户浏览和查询。
1.4. 研究意义
知识图谱不仅能够结构化地呈现课程知识,还可以通过智能化手段提升教学效率和学习体验。结合《传感器原理与应用》课程的特点,以下是知识图谱在辅助教学中的具体应用方向及实现方法:
(1) 个性化学习路径推荐:学生的基础和理解能力不同,传统“一刀切”的教学模式难以满足个性化需求。知识图谱可以分析学生的学习行为(如点击的节点、查询的问题),推荐适合的学习路径。
实现方法:
1) 学习行为分析:记录学生在知识图谱中的浏览路径(如“温度传感器→热电效应→应用案例”),分析其兴趣点和知识盲区。
2) 路径推荐算法:基于图算法(如PageRank或社区发现)计算知识点的重要性,结合学生的历史数据,生成个性化学习序列。
(2) 动态知识关联与跨课程整合
传感器技术涉及多学科知识(如《电子电路》《信号处理》),学生难以建立跨课程联系。知识图谱可自动关联相关课程内容,形成知识网络。
实现方法:
1) 跨课程实体对齐:使用本体对齐技术(如OWL语义匹配)将《传感器原理与应用》的“灵敏度”与《信号处理》的“信噪比”关联。
2) 可视化导航:在知识图谱界面中,用不同颜色标记跨课程节点,支持一键跳转。
(3) 学习效果评估与反馈
传统考试难以全面评估学生对知识体系的掌握程度。知识图谱可生成动态测评题目,并分析错误知识点之间的关联。
实现方法:
1) 自适应测试生成:根据学生答题情况,从图谱中抽取关联知识点生成新题(如答错“热电偶原理”后,追加“热电偶材料选择”题目)。
2) 错误模式分析:用图挖掘算法(如频繁子图挖掘)发现常见错误组合(如混淆“光电效应”与“压电效应”)。
2. 技术综述
2.1. 语义网络与知识图谱
语义网络属于图形化呈现工具,其借助节点来表征实体,利用边来阐释实体间的关联关系,进而对现实世界中的实体、属性以及它们之间的相互联系进行模拟。这种结构化的表达形式,为呈现复杂的现实状况搭建了一个直观的框架。
知识图谱则是语义网络的高级形态,它着重以结构化的手段,精准地对客观世界中的概念、实体以及它们之间错综复杂的联系加以描述,使互联网信息更契合人类的认知模式。在构建知识图谱时,核心要点在于筛选出若干种关键的关系类型,以此构建出既精准又易于操作的知识体系。
2.2. 知识图谱的数据处理
在传感器数据处理领域中,知识图谱的应用主要体现在以下几个方面:
(1) 数据语义化处理:把传感器数据映射到知识图谱中,实现对传感器数据的语义理解。例如,将“温度传感器读数30℃”这一数据映射到知识图谱中的“温度传感器”实体,并关联到“环境温度”这一属性。
(2) 查询优化:基于知识图谱的查询能更高效地获取所需信息。例如,在智能电网中,借助知识图谱可快速查询“哪些传感器用于监测电网设备温度”。其构成原理和过程如图1所示;
Figure 1. Data cleaning and knowledge graph construction
图1. 数据清洗和知识图谱构建
课程知识图谱数据的处理步骤
构建《传感器原理与应用》课程知识图谱首先需要对所应用的数据进行规整处理,使各个节点间关系正确,处理步骤如下:
(1) 知识点的提取与分类:
传感器原理[9]:像“光电效应”“压电效应”等,这些原理是传感器工作的基础,要将相应传感器与其知识点进行规整整合。
传感器类型[10]:例如“温度传感器”“压力传感器”等,每种类型都有其特定的工作原理和应用场景,需要梳理完善其知识点。
(2) 关系的定义:
层级关系[11]:例如“变组式电感传感器”属于“电感式传感器”,章节,这种关系有助于理清知识点的层次结构。
关联关系[12]:比如“电涡流电感式传感器”应用于“电涡流电感式传感器的应用”,这种关系展示了知识点之间的实际应用联系。
3. 知识图谱的需求设计与实现
3.1. 课程知识图谱的需求分析
知识结构
《传感器原理与应用》课程的知识结构丰富多样,知识点全面蕴含多种关键技术,为了构建出易于学生学习应用的知识图谱,基于课程内容进行分析,课程知识图谱需要有以下几点内容:
(1) 传感器基础概念:从传感器的基本概念出发,详细解释本质含义,同时对多种分类方式进行探讨,清晰呈现出不同类型传感器的特点与区别。在此基础上,深入分析传感器的工作原理,揭示其内在运行机制。
(2) 传感器种类与应用实例:需要分类介绍多种常见且重要的传感器类型,如温度传感器[13]、压力传感器[14]、光传感器[15]和位移传感器[16]等。针对每一种传感器类型,要介绍工作原理,还需深入探讨它们在不同领域的实际应用,使学生能够更好地理解传感器在现实生活中的重要作用,增强知识的实用性和可操作性。
3.2. 本体的设计与实现
3.2.1. 内容目标
学生可以通过《传感器原理与应用》课程知识图谱掌握传感器的基本原理、分类和工作原理,了解传感器材料与技术;熟悉传感器的关键性能指标,了解各类传感器的特点及应用场景,能根据实际需求选择合适的传感器;具备初步的传感器应用能力。由此设计知识图谱框架,主要实体[17]分为课程、各传感器、知识点。知识架构关系如图2所示。
Figure 2. Knowledge architecture
图2. 知识架构
3.2.2. 图谱功能目标
通过构建知识图谱,使学生可以达到以下学习目标:
(1) 理论知识掌握:学生能够通过知识图谱全面掌握传感器的基本原理、分类及工作原理,深入理解传感器的本质和运行机制。
(2) 性能指标能力:通过知识图谱熟悉传感器的关键性能指标,如精度、灵敏度、线性度、重复性等,并能够运用这些指标对传感器的性能进行准确评估并使用。
3.2.3. 关键概念与实体
在知识图谱中,包含以下关键概念和实体,它们是构建知识图谱的核心要素,也是学生学习和理解传感器知识的关键:
(1) 传感器:作为核心概念,传感器涵盖了其定义、分类、工作原理、性能指标、应用场景等多个方面。例如,“温度传感器”是一个具体的传感器实体,它的定义是用于测量温度的传感器,分类可以按照工作原理分为热电偶温度传感器、热电阻温度传感器等,工作原理是基于热电效应或电阻随温度变化的特性,性能指标包括测量范围、精度、响应时间等。
Figure 3. Entity attribute data table
图3. 实体属性数据表
Figure 4. Associated data tables for each sensor
图4. 各传感器关联数据表
(2) 传感器原理:包括灵敏度、精度、稳定性、响应时间等关键性能指标。在传感器系统中起着重要的作用。
结合知识架构图4在经过数据处理后可得到实体属性数据表如图5所示。
与各个传感器关系数据表如图6所示。
3.2.4. 创建知识图谱
使用py2neo库[18] Graph、Node、Relationship和NodeMatcher类,Graph用于连接Neo4j数据库,Node用于创建节点,Relationship用于创建关系,NodeMatcher [19]用于在图中查找节点,这些类使得在Python中操作Neo4j图数据库变得简单而高效。
首先,借助py2neo库连接到Neo4j数据库,并且在导入数据前清空数据库;再利用pandas库[20]的read_excel()函数从图6所示的实体属性数据表中读取数据写到DataFrame库中。
python代码如下图5 (#后为注释):
Figure 5. Connecting NEO4J and reading data
图5. 连接NEO4J并读取数据
Figure 6. Reading data to create nodes and relationships
图6. 读取数据创建节点和数据
再通过代码,使用函数:iterrows()遍历[21]读取图6所示关系数据表中的每一行数据,后用print()函数进行写入,在遍历写入所有内容后,使用Node(key,name=value)创建节点,Relationship(head_node,'包含',tail_node)创建关系链。其中graph.merge用于将node与relationship合并入数据库。代码如图6。
接着遍历写入数据后的DataFrame数据库中的每一行数据,使用NodeMatcher的match()方法查找节点通过row['开始实体']和row['结束实体']获取对应的值。最后使用relationship创建关系并合并到neo4j数据库中。代码如图7所示:
Figure 7. Code for establishing a relationship
图7. 建立关系的代码
至此,可以在Neo4j中创建一个包含传感器实体、性能指标实体及其关系的简单知识图谱。学生可以通过Neo4j Browser [22]或其他可视化工具查看和探索这个知识图谱,从而更直观地理解《传感器原理与应用》课程的知识点。
经过知识规整与数据调用可在网页看见知识图谱如图8所示。
Figure 8. The result of building a knowledge graph
图8. 知识图谱的构建结果
图8为基于python与neo4j通过数据读取所生成的知识图谱,整体关系主要分为三层课程、章节、知识点。其中章节包含各个传感器,此知识图谱可以通过页面进行观看使用,可通过点击进行操作自身想了解的传感器的关联知识点。