大数跨境
0
0

基于Neo4j的《水浒传》人物关系可视化及问答系统

基于Neo4j的《水浒传》人物关系可视化及问答系统 GitHubTopp
2025-05-25
0
基于Neo4j的《水浒传》人物关系可视化及问答系统
源代码
https://www.gitpp.com/chatwike/project-gpp-0525004

基于Neo4j的《水浒传》人物关系可视化及问答系统开源项目介绍

一、项目背景与意义

在数字阅读时代,面对《水浒传》等古典文学中错综复杂的百余人名与千余条人物关系链,传统检索方式存在三大痛点:

  1. 信息过载
    :搜索引擎返回大量文本片段,用户需自行筛选有效信息
  2. 关系模糊
    :人物称谓变异多(如"宋公明"与"及时雨"指代同一人)导致关联断裂
  3. 交互门槛高
    :非技术用户难以直接操作图数据库进行关系查询

本项目通过构建知识图谱+问答系统+可视化界面三位一体的解决方案,实现:

  • 智能解析"林冲和鲁智深的关系""晁盖死后谁继承寨主"等复杂问题
  • 以图谱形式直观展示梁山好汉阵营分布、师徒关系等深层关联
  • 验证中文NLP技术在古典文学场景下的实践可行性

二、技术架构与创新点

1. 多源数据融合处理

  • 数据采集层
    • Spider模块:爬取百度百科等权威来源的108将人物画像、字号、星宿等结构化数据
    • 人工合成:构建包含7类实体(人物、事件、地点等)的2000+条三元组关系数据
  • 知识建模层
    • 定义"结拜""隶属""敌对"等12种语义关系类型
    • 建立"人物-称谓"同义词典,解决"行者武松"与"武都头"的指代消歧

2. 智能问答引擎

  • NLP处理流水线
    1. LTP分词:基于隐马尔可夫模型实现角色名精准切分
    2. 依存句法分析:解析"晁盖的遗言对宋江有何影响"等复杂句式
    3. 实体链接:将"花和尚"映射至"鲁智深"节点
  • 查询生成器

    cypher


    MATCH (p:Person{name:"卢俊义"})-[:RELATED_TO*2]->(e:Event)

    WHERE e.title CONTAINS "上山" RETURN e.description
    • 将"卢俊义如何上梁山"转化为Cypher语句:

3. 可视化交互系统

  • 图谱展示层
    • Neo4j Bloom插件实现动态布局,支持力导向/层级/环形等多种视图切换
    • 点击节点弹出人物生平浮层,边关系显示具体关联事件
  • Flask应用层
    • RESTful API设计:/api/query接口支持模糊搜索与精确匹配
    • 模板继承机制:通过Jinja2实现问答页面与图谱页面的导航联动

三、核心功能演示

1. 智能问答场景

  • 输入:"宋江有哪些结义兄弟?"
  • 处理流程:

    cypher


    MATCH (a:Person{name:"宋江"})-[:结拜]->(b:Person) RETURN b.name
    1. 返回结果:武松、李逵、戴宗(按结拜顺序排序)
    1. LTP识别"宋江""结义兄弟"为关键词
    2. 查询Cypher:

2. 关系图谱探索

  • 全貌模式:展示梁山派系分布,不同颜色区分"天罡星""地煞星"阵营
  • 路径追踪:点击"杨志"可追溯"生辰纲失窃→落草二龙山→加入梁山"的轨迹

3. 数据管理模块

  • 三元组版本控制:记录"史进拜王进为师"等关系的添加/修改时间戳
  • 图谱健康检查:定期扫描孤岛节点,提示"焦挺"等冷门角色关联度

四、项目扩展性

1. 技术升级方向

  • 引入BERT-wwm实现语义相似度计算,提升"鲁智深和林冲谁更早结识"等比较类问题的准确率
  • 接入Neo4j Graph Data Science库,计算人物PageRank值识别核心角色

2. 文学研究应用

  • 社交网络分析:量化梁山好汉的"小团体"现象
  • 叙事结构可视化:关联"三打祝家庄"等事件节点的时间轴

五、系统部署与使用

  1. 环境配置:

    bash


    docker-compose up -d neo4j  # 启动图数据库

    pip install -r requirements.txt  # 安装Flask/LTP依赖
  2. 数据初始化:

    python


    python neo_db/import_data.py --json data.json  # 加载三元组
  3. 访问地址:http://localhost:5000

六、学术价值与实践意义

  • 教学应用
    :可作为中文系《水浒传》研究课程的辅助工具
  • 技术示范
    :展示从数据采集到知识图谱落地的完整NLP工程化路径
  • 开源贡献
    :提供古典文学领域首个可复用的KG构建模板

本项目通过将知识图谱技术与文学研究深度融合,不仅为数字人文领域提供了创新解决方案,更为中文NLP在垂直场景的应用积累了宝贵经验,适合作为计算机科学与文学交叉学科的毕业设计标杆项目。



基于Neo4j的《水浒传》人物关系可视化及问答系统
源代码
https://www.gitpp.com/chatwike/project-gpp-0525004

【声明】内容源于网络
0
0
GitHubTopp
top开源系统分享
内容 444
粉丝 0
GitHubTopp top开源系统分享
总阅读193
粉丝0
内容444