基于知识图谱的非遗技艺问答系统

基于知识图谱的非遗技艺问答系统

项目概述

本项目旨在构建一个基于知识图谱的非物质文化遗产(非遗)技艺问答系统,利用图数据库和自然语言处理技术,实现非遗相关知识的结构化管理与智能问答服务。通过整合非遗技艺的实体及其关系,构建丰富的知识图谱,支持用户便捷查询和深入理解传统技艺内涵,弘扬和传承非遗文化。

系统核心解决非遗知识分散、查询困难、交互不便的问题,为文化研究者、教育者、非遗爱好者等提供精准、高效的知识检索工具和智能问答体验,提升非遗信息服务水平和传播效果。

目标用户群体包括:

  • 非遗文化研究学者和教育工作者
  • 文化传承和保护机构
  • 传统技艺从业者及爱好者
  • 普通公众及文化旅游用户

技术架构

整体架构设计

系统采用典型的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.htmladd_relation.html:新增节点和关系的表单页面
  • modify_node.html:节点信息修改界面
  • node_manage.html:节点管理及查询界面
  • login.htmlregister.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

安装和配置步骤

  1. 环境准备
  • 安装Python及pip
  • 安装并启动Neo4j数据库,配置默认用户名密码
  1. 项目依赖安装
   pip install -r requests.txt
  1. 数据库初始化
  • 修改datas/initneo4j.py中Neo4j连接配置,确保连接正确
  • 运行初始化脚本导入数据
   python datas/initneo4j.py
  1. Django配置
  • 修改xy_neo4j/settings.py中数据库及其它配置项
  • 执行数据库迁移
   python manage.py migrate
  1. 创建超级管理员(可选)
   python manage.py createsuperuser

启动方式

  1. 启动Neo4j数据库服务,确保运行正常。
  2. 启动Django开发服务器:
   python manage.py runserver
  1. 访问浏览器,打开http://127.0.0.1:8000/进入系统首页。
  2. 用户可通过注册登录访问问答系统和知识图谱管理界面。

本项目通过结合Neo4j图数据库与Django Web框架,构建了一个面向非遗技艺知识管理与智能问答的综合平台。系统技术架构合理,模块职责明确,支持数据的结构化存储、高效查询与智能交互,为非遗文化的数字化传承提供了强有力的技术支持。


如有问题请联系作者:https://qalangtao.com 。
800

图片[1]-基于知识图谱的非遗技艺问答系统
图片[2]-基于知识图谱的非遗技艺问答系统
图片[3]-基于知识图谱的非遗技艺问答系统
图片[4]-基于知识图谱的非遗技艺问答系统
图片[5]-基于知识图谱的非遗技艺问答系统
图片[6]-基于知识图谱的非遗技艺问答系统
图片[7]-基于知识图谱的非遗技艺问答系统
图片[8]-基于知识图谱的非遗技艺问答系统

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享