非遗技艺知识图谱问答

非遗技艺知识图谱问答

项目概述

非遗技艺知识图谱问答项目旨在构建一个基于知识图谱的非物质文化遗产(非遗)技艺信息管理与智能问答平台。通过整合结构化的非遗技艺三元组数据,利用图数据库进行知识建模与存储,再结合自然语言处理和大语言模型(LLM)技术,项目实现了非遗知识的高效查询、可视化展示及智能问答交互。

该项目解决了非遗技艺信息分散、结构不统一、查询困难等核心问题,帮助用户快速获取非遗相关知识,提升文化遗产保护、传承与传播的数字化水平。目标用户涵盖文化研究人员、教育工作者、非遗传承人及广大对非遗文化感兴趣的公众。


技术架构

整体架构设计

项目基于Django Web框架搭建,采用前后端分离的MVC架构,核心采用Neo4j图数据库管理非遗知识数据。技术架构分为以下层次:

  • 数据层:通过datas模块将经清洗的CSV格式非遗三元组数据导入Neo4j图数据库,实现知识图谱的构建与持久化存储。
  • 业务逻辑层myneo4j模块作为知识图谱核心,提供图谱数据的查询、管理和问答功能,集成py2neo及OpenAI GPT接口,实现复杂图谱操作和智能交互。
  • 用户管理层accounts模块负责用户注册、登录及权限管理,保障系统安全与用户身份认证。
  • 表现层templates模块提供丰富的前端HTML模板,结合Bootstrap响应式设计,实现友好的用户交互界面及数据展示。
  • 静态资源层:集中管理CSS、JS、字体和图片等资源,支持前端页面的美观和交互效果。

主要技术栈

  • 后端框架:Django 3.x/4.x
  • 数据库:Neo4j图数据库(通过py2neo和neo4j官方Python驱动操作)
  • 数据处理:Pandas用于CSV数据读取和预处理
  • 自然语言处理:jieba中文分词
  • 智能问答:OpenAI GPT系列API集成
  • 前端技术:Django模板语言,Bootstrap,Material Design Icons,jQuery
  • 用户认证:Django内置认证系统扩展

模块间的关系和交互

  • datas模块负责将清洗后的结构化非遗数据导入Neo4j,支撑后续图谱构建。
  • myneo4j模块依赖Neo4j数据库,结合Django ORM管理部分图谱元数据,提供图谱查询接口和智能问答服务,调用OpenAI接口进行自然语言理解和回答生成。
  • accounts模块为系统提供用户身份认证和权限管理,保证问答和数据访问的安全。
  • templates模块配合myneo4jaccounts模块的视图层,渲染用户界面,实现交互与数据展示。
  • 静态资源模块为前端提供样式和交互脚本支持。

功能模块

1. datas 模块

  • 功能介绍
  • 读取并解析CSV格式的非遗技艺三元组数据(包括实体类型、实体名称、关系及描述)。
  • 利用Neo4j官方Python驱动将数据导入图数据库,构建实体节点及关系。
  • 采用Cypher的MERGE语句保证数据导入的幂等性,避免重复创建。
  • 支持多种CSV数据源(如datas.csvdata2.csv),便于扩展不同数据集。
  • 通过日志机制监控导入过程,保证数据导入的透明性和可维护性。
  • 模块协作
  • 作为知识图谱数据持久化基础,向myneo4j模块提供底层图数据库支持。
  • 输入文件需与数据预处理模块一致,输出图谱供问答及展示使用。

2. myneo4j 模块

  • 功能介绍
  • 定义图谱相关Django模型(节点、类型频次、问答记录),实现本地数据管理。
  • 封装图数据库访问工具,支持节点查询、关系遍历、复杂图谱检索。
  • 实现图谱数据的Web查询接口,支持图谱可视化数据获取(节点、关系、类别、图例)。
  • 集成OpenAI GPT接口,实现基于知识图谱的自然语言智能问答。
  • 采用jieba中文分词优化文本处理,适应中文问答场景。
  • 通过Django视图处理用户请求,渲染前端页面,保障数据交互及安全。
  • 模块协作
  • 依赖datas模块提供的图数据库数据。
  • 结合accounts模块用户信息,实现问答内容与用户的绑定管理。
  • templates模块协同提供图谱展示和问答交互界面。

3. accounts 模块

  • 功能介绍
  • 用户注册、登录、登出功能,实现用户身份验证。
  • 自定义用户模型扩展手机号码及明文密码字段(明文密码存储非安全,需注意)。
  • 表单验证确保输入数据合法性,重视密码安全策略。
  • 用户信息查看与修改,支持密码更新。
  • 后台管理界面支持用户数据维护和密码加密存储。
  • 模块协作
  • 为所有业务模块提供用户认证基础。
  • myneo4j模块的问答数据绑定用户身份。
  • 支持前端模板展现用户相关页面。

4. templates 模块

  • 功能介绍
  • 提供统一的基础模板(base.html),定义页面结构及公共资源。
  • 实现主页(index.html)图谱查询入口及结果展示。
  • 关系图谱问答页面(wenda.html),支持用户输入问题和智能回答展示。
  • 用户认证相关页面:登录(login.html)、注册(register.html)、密码修改(modify.html)、个人信息管理(my_info.html)。
  • 响应式页面设计,结合Bootstrap和Material Design Icons,提升用户体验。
  • 模块协作
  • 与后端视图函数配合,动态渲染数据。
  • 依赖静态资源支持样式和交互。
  • accounts模块紧密合作完成用户交互流程。

项目结构

xy25_neo4j_feiyi/
├── accounts/           # 用户认证与账户管理模块
├── datas/              # 数据导入模块,负责CSV数据到Neo4j导入
├── myneo4j/            # 知识图谱核心模块,图数据库交互与智能问答
├── templates/          # Django模板文件,前端页面展示
├── static/             # 静态资源(CSS/JS/图片/字体)
├── xy_neo4j/           # Django项目配置及路由
├── manage.py           # Django项目管理命令入口
├── .venv/              # Python虚拟环境
├── .idea/              # IDE配置文件
├── README.md           # 项目说明文档
└── requests.txt        # 依赖包列表

关键目录和文件说明

  • accounts/models.py:定义扩展的用户模型UserProfile
  • datas/import_neo4j.pyimport_neo4j_2.py:实现CSV数据导入Neo4j的具体逻辑。
  • myneo4j/models.py:定义图谱相关数据模型。
  • myneo4j/pyneo_utils.py:Neo4j数据库操作工具封装。
  • myneo4j/views.py:图谱查询和智能问答视图逻辑。
  • templates/base.html:全局基础模板,其他页面模板继承基础布局。
  • templates/wenda.html:问答页面模板,支持用户提问与答案展示。
  • xy_neo4j/settings.py:Django项目配置,包括数据库连接与中间件设置。
  • manage.py:Django项目启动和管理命令脚本。

部署和运行

环境要求

  • 操作系统:建议Linux或Windows均可
  • Python版本:3.7及以上
  • Neo4j数据库:版本4.x及以上,确保支持Cypher和Bolt协议
  • 依赖库:Django, py2neo, pandas, jieba, requests, OpenAI SDK等
  • 其他:网络环境支持访问OpenAI API接口

安装和配置步骤

  1. 准备Python环境
  • 创建并激活虚拟环境(如使用venv)
  • 安装依赖:pip install -r requests.txt
  1. 配置Neo4j数据库
  • 安装并启动Neo4j数据库服务
  • 创建数据库用户并设置访问权限
  • 在Django项目配置文件settings.py中填写Neo4j连接参数
  1. 导入非遗数据
  • 进入datas目录,执行import_neo4j.pyimport_neo4j_2.py导入CSV数据到Neo4j
  1. 数据库迁移
  • 执行python manage.py makemigrationspython manage.py migrate完成Django ORM数据库迁移
  1. 配置OpenAI接口
  • 在项目中配置OpenAI API密钥,确保智能问答功能可用
  1. 收集静态资源(生产环境)
  • 执行python manage.py collectstatic

启动方式

  • 运行开发服务器:
python manage.py runserver
  • 访问地址:
http://127.0.0.1:8000/
  • 通过浏览器访问主页进行图谱查询,使用注册账号登录后即可体验问答等高级功能。

总结

非遗技艺知识图谱问答项目融合了图数据库、自然语言处理和Web技术,成功构建了一个面向非遗文化的知识管理与智能问答平台。项目采用Neo4j存储与管理非遗技艺的结构化知识,通过Django实现业务逻辑和用户管理,结合OpenAI大语言模型提供智能交互能力。完善的用户认证体系和现代化前端设计提升了系统的安全性和用户体验。

该平台不仅有助于非遗文化的数字化传承和普及,也为相关研究和教育提供了强大的知识支持和智能服务,具有显著的社会价值和技术前瞻性。


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

图片[1]-非遗技艺知识图谱问答
图片[2]-非遗技艺知识图谱问答
图片[3]-非遗技艺知识图谱问答
图片[4]-非遗技艺知识图谱问答
图片[5]-非遗技艺知识图谱问答
图片[6]-非遗技艺知识图谱问答
图片[7]-非遗技艺知识图谱问答
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享