基于知识图谱的《红楼梦》人物关系可视化及问答系统
详情请见 http://chizhunlp.com
文件树:
- app.py是整个系统的主入口
- templates文件夹是HTML的页面
|-index.html 欢迎界面
|-search.html 搜索人物关系页面
|-all_relation.html 所有人物关系页面
|-KGQA.html 人物关系问答页面 - static文件夹存放css和js,是页面的样式和效果的文件
- raw_data文件夹是存在数据处理后的三元组文件
- neo_db文件夹是知识图谱构建模块
|-config.py 配置参数
|-create_graph.py 创建知识图谱,图数据库的建立
|-query_graph.py 知识图谱的查询 - KGQA文件夹是问答系统模块
|-ltp.py 分词、词性标注、命名实体识别 - spider文件夹是爬虫模块
|- get_*.py 是之前爬取人物资料的代码,已经产生好images和json 可以不用再执行
|-show_profile.py 是调用人物资料和图谱展示在前端的代码
部署步骤:
- 0.安装所需的库 执行pip install -r requirement.txt
- 1.先下载好neo4j图数据库,并配好环境(注意neo4j需要jdk8)。修改neo_db目录下的配置文件config.py,设置图数据库的账号和密码。
- 2.切换到neo_db目录下,执行python create_graph.py 建立知识图谱
- 3.去 这里 下载好ltp模型。ltp简介
- 4.在KGQA目录下,修改ltp.py里的ltp模型文件的存放目录
- 5.运行python app.py,浏览器打开localhost:5000即可查看
系统整体流程图:
网站示例:
欢迎界面
主界面
ps:
- NodeSelecter -> NodeMatcher
- config.py中新版本py2neo的Connection profiles示例: graph = Graph("http://localhost:7474", auth=("neo4j", "123456"))
- No such file or directory: './raw_data/relation.txt':改为绝对路径
- 编码改为utf-8:file = open(path, encoding='utf-8')
- 下载pyltp...whl,放在pip文件夹下,cmd下载
- 下载ltp模型,更改pisrl文件
- ltp.py中Segmentor()和Postagger()语法修改: postagger = pyltp.Postagger(pos_model_path)
- 环境: Python3.6.0 - Jinja2 2.10.1 - Flask 1.1.0