项目概述
本项目“电影知识图谱问答”基于Django框架,结合Neo4j图数据库,构建了一个电影领域的知识图谱问答系统。项目旨在通过结构化的电影数据存储与智能问答交互,为用户提供便捷、准确的电影信息查询和知识探索服务。
- 主要目的和价值
利用知识图谱技术实现电影数据的语义化管理,支持多维度、多关系的查询,结合自然语言处理和大语言模型(OpenAI GPT)技术,提升用户对电影知识的理解与获取效率。系统不仅具备数据的高效存储和检索能力,还能通过智能问答实现人机自然交互,极大地丰富用户体验和应用场景。 - 解决的核心问题
传统电影信息查询往往依赖关键词匹配,难以挖掘电影之间复杂的关系和属性。项目通过构建电影知识图谱,解决了数据孤立、结构单一和查询复杂度高的问题,实现了基于图谱的关系查询和智能问答,提升了查询的准确性和灵活性。 - 目标用户群体
电影爱好者、影视研究人员、数据分析师及相关从业者,期望通过智能化和图谱技术深入探索电影数据及其内在联系,获取丰富且精准的电影信息。
技术架构
- 整体架构设计
系统采用典型的三层架构设计:
- 数据层:基于Neo4j图数据库,存储和管理电影实体及其关系。
- 业务逻辑层:基于Django框架,负责用户管理、图谱数据操作、智能问答逻辑处理。
- 表现层:通过Django模板引擎渲染前端页面,支持用户交互、图谱查询与问答展示。
- 主要技术栈
- 后端框架:Django
- 图数据库:Neo4j,使用py2neo作为Python客户端
- 自然语言处理:jieba中文分词
- 智能问答:集成OpenAI GPT模型API
- 前端技术:Django模板引擎、Bootstrap、Material Design Icons
- 数据存储:CSV文件导入至Neo4j图数据库
- 版本控制与开发环境:Python虚拟环境(venv)、IDE支持(如PyCharm)
- 模块间的关系和交互
- datas模块负责将原始CSV数据导入Neo4j,构建基础知识图谱。
- myneo4j模块是核心业务模块,提供图谱的查询、展示与智能问答功能,调用OpenAI接口实现自然语言交互。
- accounts模块提供用户身份认证及管理,支持问答记录与个性化服务。
- templates模块承担前端页面模板渲染,与后端视图紧密配合,支持用户界面交互。
- 各模块通过Django的路由系统和模型层有机结合,实现数据流和请求响应的高效协作。
功能模块
1. datas模块
- 功能介绍
- 数据导入:读取CSV格式的电影数据文件,解析电影及相关实体属性。
- 图谱构建:连接Neo4j数据库,创建电影节点及其属性,建立实体间的关系。
- 数据清洗与去重:通过字段映射及NodeMatcher,实现节点唯一性校验,保证数据质量和规范化。
- 与其他模块协作
- 为myneo4j模块提供结构化的图数据库数据基础。
- 依赖外部数据采集成果(CSV文件)。
2. myneo4j模块
- 功能介绍
- 图数据库管理:定义节点和关系数据模型,支持节点查询和关系分析。
- 智能问答:集成OpenAI GPT模型,实现基于知识图谱的自然语言问答交互。
- Web服务:基于Django视图处理请求,渲染图谱展示和问答页面。
- 统计分析:维护关系类型频次等统计数据,辅助数据分析。
- 用户问答记录管理,支持用户行为追踪。
- 与其他模块协作
- 调用accounts模块的用户模型,实现用户身份关联。
- 依赖datas模块构建的图数据库数据。
- 结合templates模块完成前端动态内容渲染。
3. accounts模块
- 功能介绍
- 用户认证:实现用户注册、登录、注销等身份管理功能。
- 用户信息维护:支持用户个人信息修改和密码安全管理。
- 表单验证和数据安全保障。
- 后台管理界面定制,方便管理员管理用户数据。
- 与其他模块协作
- 为myneo4j模块的问答记录和权限控制提供用户身份支持。
- 与前端页面配合,实现用户交互界面。
4. templates模块
- 功能介绍
- 页面模板提供:首页、登录、注册、用户信息修改、问答交互等多种功能页面。
- 采用Django模板继承机制,实现页面复用和统一布局。
- 结合Bootstrap等前端框架,实现响应式和现代化界面。
- 嵌入表单元素,支持前后端数据交互。
- 与其他模块协作
- 接收myneo4j和accounts模块视图传递的数据,渲染动态页面。
- 依赖静态文件模块(css、js、图片)实现样式和交互效果。
项目结构
xy25_neo4j_film/
├── accounts/ # 用户认证与管理模块
│ ├── models.py # 用户模型定义
│ ├── forms.py # 用户表单验证
│ ├── views.py # 用户视图逻辑
│ ├── urls.py # 用户路由配置
│ └── admin.py # 后台管理配置
├── datas/ # 数据导入与图谱构建模块
│ ├── importneo4j.py # 核心导入脚本
│ ├── 合并后的数据.csv # 原始电影数据文件
│ └── cibiao.txt # 辅助词表文件
├── myneo4j/ # 核心业务逻辑模块,图谱查询与问答
│ ├── models.py # 图谱数据模型定义
│ ├── pyneo_utils.py # Neo4j数据库操作封装工具
│ ├── views.py # 业务视图逻辑
│ ├── urls.py # 路由映射
│ └── admin.py # 后台管理配置
├── templates/ # 前端页面模板
│ ├── base.html # 基础布局模板
│ ├── index.html # 首页模板
│ ├── login.html # 登录页面
│ ├── register.html # 注册页面
│ ├── modify.html # 修改密码页面
│ ├── my_info.html # 用户信息页面
│ └── wenda.html # 问答交互页面
├── static/ # 静态资源(CSS、JS、图片等)
├── xy_neo4j/ # Django项目配置目录
│ ├── settings.py # 项目配置文件
│ ├── urls.py # 全局路由配置
│ ├── wsgi.py # WSGI接口
│ └── asgi.py # ASGI接口
├── manage.py # Django项目管理脚本
├── .venv/ # Python虚拟环境
└── README.md # 项目说明文档
- 关键目录和文件作用
accounts/:用户认证与管理核心代码。datas/:负责数据导入和知识图谱构建的脚本和数据文件。myneo4j/:业务逻辑核心,图谱数据管理与智能问答实现。templates/:页面模板文件,支撑前端界面。static/:存放CSS、JS、图片等静态资源。xy_neo4j/:Django项目配置与路由管理。manage.py:Django项目启动及管理工具。
部署和运行
- 环境要求
- Python 3.x
- Django 3.x 或以上版本
- Neo4j 图数据库(建议使用Neo4j Desktop或企业版,版本兼容py2neo)
- py2neo Python库
- 依赖库包括jieba、requests、OpenAI SDK等
- 网络环境支持调用OpenAI GPT接口
- 安装和配置步骤
- 环境准备
- 创建并激活Python虚拟环境(推荐使用venv)。
- 安装依赖:
pip install -r requests.txt(包含所有必要依赖)。
- Neo4j配置
- 安装并启动Neo4j数据库,设置用户名和密码。
- 配置
datas/importneo4j.py和myneo4j/pyneo_utils.py中Neo4j连接参数。
- 数据导入
- 执行
python datas/importneo4j.py,将CSV数据导入Neo4j,构建知识图谱。
- 执行
- Django项目配置
- 依据
xy_neo4j/settings.py配置数据库、静态文件路径及OpenAI API密钥等。
- 依据
- 数据库迁移
- 运行
python manage.py makemigrations和python manage.py migrate,创建Django数据库表。
- 运行
- 创建超级用户(可选)
- 运行
python manage.py createsuperuser,便于后台管理。
- 运行
- 启动方式
- 启动Django开发服务器:
bash python manage.py runserver - 访问
http://127.0.0.1:8000/即可使用系统功能。 - 管理后台地址为
http://127.0.0.1:8000/admin/,用于用户及数据管理。
本项目通过集成Neo4j图数据库和OpenAI智能问答,结合Django强大的Web开发能力,构建了一个功能完善、用户体验良好的电影知识图谱问答系统。系统不仅具备数据导入、存储及复杂关系查询能力,还创新性地引入自然语言交互,极大提升了电影信息的获取效率和交互智能化水平,具有较高的实用价值和推广潜力。
如有问题请联系作者:https://qalangtao.com 。
600
![图片[1]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102937_65_357-1024x478.png)
![图片[2]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102938_66_357-1024x475.png)
![图片[3]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102939_67_357-1024x478.png)
![图片[4]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102940_68_357-1024x449.png)
![图片[5]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102941_69_357-1024x449.png)
![图片[6]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102942_70_357-1024x450.png)
![图片[7]-电影知识图谱问答](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129102943_71_357-1024x481.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









