基于知识图谱的非遗技艺问答系统
项目概述
本项目旨在构建一个基于知识图谱的非物质文化遗产(非遗)技艺问答系统,利用图数据库和自然语言处理技术,实现非遗相关知识的结构化管理与智能问答服务。通过整合非遗技艺的实体及其关系,构建丰富的知识图谱,支持用户便捷查询和深入理解传统技艺内涵,弘扬和传承非遗文化。
系统核心解决非遗知识分散、查询困难、交互不便的问题,为文化研究者、教育者、非遗爱好者等提供精准、高效的知识检索工具和智能问答体验,提升非遗信息服务水平和传播效果。
目标用户群体包括:
- 非遗文化研究学者和教育工作者
- 文化传承和保护机构
- 传统技艺从业者及爱好者
- 普通公众及文化旅游用户
技术架构
整体架构设计
系统采用典型的Web应用架构,基于Django框架搭建后端服务,结合Neo4j图数据库存储和管理知识图谱数据,前端通过Django模板渲染实现交互页面。整体架构划分为数据层、业务逻辑层和表现层三大部分:
- 数据层:以Neo4j图数据库为核心,存储非遗技艺的实体节点与关系,支持复杂语义查询和图谱推理。
- 业务逻辑层:基于Django实现,负责用户认证、知识图谱管理、问答处理等功能,封装数据库操作接口,处理前端请求。
- 表现层:利用Django模板及Bootstrap前端框架,提供用户登录注册、知识图谱浏览维护、智能问答等界面。
主要技术栈
- 后端框架:Python Django
- 图数据库:Neo4j,交互使用py2neo库
- 前端技术:Django模板语言、Bootstrap响应式框架、Material Design图标
- 自然语言处理:jieba中文分词库
- 数据格式及处理:CSV数据导入,UTF-8编码支持
- 安全性:Django自带用户认证体系、CSRF令牌保护
模块间关系与交互
- datas模块负责知识图谱的初始化数据导入,从CSV文件构建Neo4j数据库的实体及关系,为系统提供基础数据支撑。
- myneo4j模块作为核心业务逻辑模块,封装图数据库访问和问答处理,提供知识图谱的增删改查接口及智能问答服务,依赖datas模块构建的图谱数据。
- accounts模块提供用户注册、登录及权限管理,保障系统安全并支持用户相关功能。
- templates目录提供前端页面模板,配合myneo4j和accounts模块的视图函数,完成前后端数据交互与用户界面展示。
整体架构设计确保数据层与业务逻辑层解耦,模块职责清晰,支持系统的高效开发和后续扩展。
功能模块
1. datas模块
- 功能介绍:实现非遗知识图谱的初始化构建。通过
initneo4j.py脚本读取CSV格式的实体及关系数据,判断节点是否存在,动态创建节点和关系,完成数据结构化存储到Neo4j图数据库中。 - 详细功能:
- 解析实体类型、关系类型CSV文件
- 节点和关系的增量创建,避免重复
- 生成辅助词表(词汇与词性)支持自然语言处理
- 协作关系:为myneo4j模块提供基础知识图谱数据,产生的词表辅助问答模块的语义解析。
2. myneo4j模块
- 功能介绍:基于Django实现的图数据库管理和问答系统核心。管理Neo4j中节点与关系数据,支持用户通过Web界面查询和维护知识图谱,同时实现智能问答功能。
- 详细功能:
- 定义图节点(MyNode)和问答数据(MyWenda)模型
- 封装Neo4j操作函数,实现节点查询、关系匹配、图谱数据格式化
- 提供知识图谱可视化展示接口
- 实现智能问答接口,结合jieba分词提升查询匹配效果
- 支持权限控制,保证数据安全
- 协作关系:
- 调用datas模块构建的图谱数据
- 依赖accounts模块实现用户身份认证
- 与前端模板协作完成页面渲染和交互
3. accounts模块
- 功能介绍:用户身份认证与管理模块,基于Django用户体系扩展,实现注册、登录、登出和用户信息维护流程。
- 详细功能:
- UserProfile用户模型定义,支持自定义字段扩展
- 登录与注册表单验证
- 视图逻辑处理用户认证请求
- 管理后台用户信息展示和密码加密处理
- 协作关系:
- 保障myneo4j模块问答及管理功能的权限安全
- 与前端模板结合提供用户认证界面
4. templates目录(前端页面模板)
- 功能介绍:Web前端页面模板集合,提供统一的界面风格和交互入口,覆盖用户认证、知识图谱管理和智能问答等功能。
- 详细功能:
base.html:全局框架模板,统一页面风格和导航index.html:首页,支持知识图谱查询入口add_node.html、add_relation.html:新增节点和关系的表单页面modify_node.html:节点信息修改界面node_manage.html:节点管理及查询界面login.html、register.html:用户登录与注册wenda.html:智能问答界面- 协作关系:
- 由myneo4j和accounts模块中的视图函数渲染和控制
- 支持用户提交请求,前后端数据交互
模块协作关系总结
- datas模块提供数据基础,构建知识图谱。
- myneo4j模块利用图谱数据实现业务逻辑,提供图数据库管理和问答服务。
- accounts模块保障用户身份认证与系统安全。
- templates目录配合各模块视图,实现完整用户交互界面。
项目结构
xy25_neo4j_fy/
├── accounts/ # 用户认证管理模块
│ ├── models.py # 用户模型定义
│ ├── forms.py # 登录注册表单
│ ├── views.py # 用户认证业务逻辑
│ ├── urls.py # 用户相关路由
│ └── admin.py # 后台用户管理配置
├── datas/ # 知识图谱数据导入模块
│ ├── initneo4j.py # 核心数据导入脚本
│ ├── 关系表2.csv # 关系数据文件
│ ├── 属性表2.csv # 属性数据文件
│ ├── cibiao.txt # 词表
│ └── cixing.txt # 词性表
├── myneo4j/ # 图数据库管理与问答模块
│ ├── models.py # 图节点与问答模型
│ ├── pyneo_utils.py # Neo4j操作封装
│ ├── views.py # 业务视图逻辑
│ ├── urls.py # 路由配置
│ └── admin.py # 后台管理配置
├── templates/ # 前端页面模板
│ ├── base.html # 基础框架模板
│ ├── index.html # 首页
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── wenda.html # 问答页
│ ├── add_node.html # 新增节点
│ ├── add_relation.html# 新增关系
│ ├── modify_node.html # 节点修改
│ └── node_manage.html # 节点管理
├── static/ # 静态资源(CSS、JS、图片等)
├── xy_neo4j/ # Django项目配置目录
│ ├── settings.py # 项目配置
│ ├── urls.py # 全局路由
│ ├── wsgi.py # WSGI接口
│ └── asgi.py # ASGI接口
├── manage.py # Django管理命令入口
├── README.md # 项目说明文档
└── requests.txt # 依赖库列表
- accounts目录负责用户认证管理,关键文件为models.py和views.py。
- datas目录存放原始关系和属性数据及导入脚本
initneo4j.py,完成知识图谱构建。 - myneo4j目录实现图数据库操作、问答逻辑和视图控制。
- templates目录包含HTML页面模板,支持前端交互。
- static目录存放前端静态资源文件。
- xy_neo4j为Django项目配置主目录,管理路由及项目设置。
部署和运行
环境要求
- 操作系统:Linux/Windows/macOS均可
- Python版本:3.7及以上
- Django版本:兼容Django 3.x或以上
- Neo4j图数据库:4.x或以上版本,需已安装并启动
- 依赖库:
- py2neo(Neo4j数据库驱动)
- jieba(中文分词)
- 其他Django及常用库(详见
requests.txt)
安装和配置步骤
- 环境准备
- 安装Python及pip
- 安装并启动Neo4j数据库,配置默认用户名密码
- 项目依赖安装
pip install -r requests.txt
- 数据库初始化
- 修改
datas/initneo4j.py中Neo4j连接配置,确保连接正确 - 运行初始化脚本导入数据
python datas/initneo4j.py
- Django配置
- 修改
xy_neo4j/settings.py中数据库及其它配置项 - 执行数据库迁移
python manage.py migrate
- 创建超级管理员(可选)
python manage.py createsuperuser
启动方式
- 启动Neo4j数据库服务,确保运行正常。
- 启动Django开发服务器:
python manage.py runserver
- 访问浏览器,打开
http://127.0.0.1:8000/进入系统首页。 - 用户可通过注册登录访问问答系统和知识图谱管理界面。
本项目通过结合Neo4j图数据库与Django Web框架,构建了一个面向非遗技艺知识管理与智能问答的综合平台。系统技术架构合理,模块职责明确,支持数据的结构化存储、高效查询与智能交互,为非遗文化的数字化传承提供了强有力的技术支持。
如有问题请联系作者:https://qalangtao.com 。
800
![图片[1]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103148_105_357-1024x478.png)
![图片[2]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103149_106_357-1024x467.png)
![图片[3]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103150_107_357-1024x477.png)
![图片[4]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103150_108_357-1024x462.png)
![图片[5]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103151_109_357-1024x477.png)
![图片[6]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103152_110_357-1024x387.png)
![图片[7]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103153_111_357-1024x472.png)
![图片[8]-基于知识图谱的非遗技艺问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129103154_112_357-1024x443.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









