D038 vue+django西游记问答知识图谱可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片

up主B站: 麦麦大数据

关注B站,有好处!

编号: D038

视频

视频链接

1 系统简介

本系统是一个基于Vue和Django构建的"西游记智能问答知识图谱可视化系统",旨在为用户提供一个结合知识可视化与智能问答的学习平台。其核心功能包括:数据文件管理、知识图谱构建与可视化、智能问答以及用户管理模块。系统通过数据文件管理模块获取西游记相关信息,构建知识图谱以展示人物关系、事件序列等信息,并通过可视化界面让用户直观理解。同时,系统提供智能问答功能,支持用户就西游记内容提出问题并获取智能回答。用户管理模块则包含登录、注册和个人设置功能,确保用户能够安全访问系统并个性化定制使用体验。## 2 功能设计

该系统采用B/S架构模式,分为前端和后端两个部分。前端使用Vue.js框架构建,结合Vuex进行状态管理,Vue Router实现路由导航,ECharts用于数据可视化。后端采用Django框架构建RESTful API,处理业务逻辑,并与MySQL数据库和Neo4j图数据库进行交互。MySQL数据库主要用于存储结构化的用户信息和人物数据,Neo4j则用于存储人物之间的关系和图谱结构。系统还引入了爬虫模块,用于抓取相关数据,并通过蒸汽姿态API获取人物立绘。整个系统强调用户体验,通过统一的API接口和模块化设计,确保系统的可扩展性和维护性。

2.1系统架构图

该系统采用典型的B/S(浏览器/服务器)架构模式,前端通过Vue.js生态系统构建,包括Vue Router(用于路由导航)、Vuex(用于状态管理)和Echarts(用于数据可视化),为用户提供交互式、直观的界面体验。后端基于Django框架开发,利用Django REST framework构建API接口,负责业务逻辑处理和数据交互。系统搭配MySQL数据库进行数据存储,使用Django ORM进行数据持久化操作。知识图谱的构建和智能问答功能则依赖于数据处理模块,该模块通过解析数据文件中的西游记相关信息,构建实体关系模型,并结合自然语言处理技术(如NLTK、spaCy等)实现智能问答功能。用户管理模块则提供安全的登录注册功能,并支持个人信息和头像的管理,确保用户体验的个性化和安全性。

2.2 功能模块图

3 功能展示

3.1 登录 & 注册

登录界面背景是一个视频,展示和本文系统主题相匹配的内容,登录和注册界面在一个界面下,通过按钮来切换,注册界面输入用户名和密码,会检查这个用户是否存在,登录界面则要检查用户名是否存在以及用户名密码是否正确:

3.2 知识图谱构造

如果通过校验,则可以进入主页,在主页是一个左侧菜单,右侧操作面板的布局,右上角是登录用户的头像和退出按钮:

3.3 知识图谱可视化

知识图谱可视化支持搜索:

3.4 智能问答

基于LTP模型的问答系统实现,可以根据知识图谱,咨询人物和人物关系具体在后面有代码介绍:


3.5 个人设置

个人设置方面包含了用户信息修改密码修改 功能。

用户信息修改中可以上传头像,完成用户的头像个性化设置,也可以修改用户其他信息。

修改密码需要输入用户旧密码和新密码,验证旧密码成功后,就可以完成密码修改。

4程序代码

4.1 代码说明

代码介绍:基于LTP的西游记人物问答小应用的实现。该应用可以回答关于西游记人物的基本信息,如角色、别名、性格特点等问题

4.2 流程图

4.3 代码实例

python 复制代码
import ltp
import numpy as np

# 加载LTP模型
LTP_MODEL_PATH = "model"
segmentor = ltp.Segmentor()
segmentor.load_with_lexicon(LTP_MODEL_PATH + "/cws.model", LTP_MODEL_PATH + "/lexicon.txt")

# 西游记人物知识库
characters = {
    "孙悟空": {"role": "主角", "alias": "齐天大圣", "personality": "勇敢、机智"},
    "猪八戒": {"role": "二当家", "alias": "天蓬元帅", "personality": "好吃懒做"},
    # ...更多角色
}

def get_character_info(question):
    # 分词
    words = segmentor.segment(question)
    # 提取人物实体
    for word in words:
        if word in characters:
            return characters[word]
    return None

# 示例使用
question = "孙悟空的别名是什么?"
info = get_character_info(question)
if info:
    print(f"{question} 的回答是:{info['alias']}")
else:
    print("没有找到相关信息。")
相关推荐
一 乐8 分钟前
酒店客房预订|基于springboot + vue酒店客房预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
编程修仙25 分钟前
第三篇 Vue路由
前端·javascript·vue.js
Kagol1 小时前
🎉TinyVue v3.27.0 正式发布:增加 Space 新组件,ColorPicker 组件支持线性渐变
前端·vue.js·typescript
同学807962 小时前
🔥🔥高效易用的 Vue3 公告滚动组件:打造丝滑的内容滚动体验(附源码)
前端·vue.js
编程修仙2 小时前
第二篇 Vue指令
前端·javascript·vue.js·前端框架
守护砂之国泰裤辣2 小时前
el-select 选项偏移 到左边 左上角
前端·javascript·vue.js
安冬的码畜日常3 小时前
【玩转 Postman 接口测试与开发2_020】(完结篇)DIY 实战:随书示例 API 项目本地部署保姆级搭建教程(含完整调试过程)
python·测试工具·django·接口测试·postman·fastapi·api项目
全栈陈序员3 小时前
说说你对 Vue 的理解
前端·javascript·vue.js·学习·前端框架
武昌库里写JAVA3 小时前
vue+iview+node+express实现文件上传,显示上传进度条,实时计算上传速度
java·vue.js·spring boot·后端·sql
KLW753 小时前
vue3中操作样式的变化
前端·javascript·vue.js