今天的任务分两步,首先要搭建一个知识图谱(详见task03),然后启动问答测试(task04task05详细讲),构建一个简单的基于知识图谱的对话系统。
今天主要是能跑通这两步,能让自己对整个任务有一个整体的认识。
源码组成部分包括:
data:存放数据
img:存放readme里的图片
model:存放训练好的tfidf模型和意图识别模型
build_graph.py:构建图,详见task03
entity_extractor.py:抽取问句中的实体和识别意图,详见task04
search_answer.py:根据不同的实体和意图构造cypher查询语句,查询图数据库并返回答案,详见task05
2.搭建知识图谱环境
2.1.数据集
数据源:39健康网。包括15项信息,其中7类实体,约3.7万实体,21万实体关系。数据结构如图所示:
知识图谱实体类型
2.2.搭建过程
因为这次任务目标是先跑通,所以仅简略写下步骤。
要将数据导入Neo4j图数据库,首先进入build_graph.py类中,在类MedicalGraph中加入本地Neo4j图数据库的账号和密码;
classMedicalGraph:
def__init__(self):
...
运行:
pythonbuild_graph.py
终于好了,看下结果,我们有了3w多节点,20多万个关系。
3.启动问答测试
运行命令:
pythonkbqa_test.py
注意:其中一个库名称为ahocorasick,这个直接pip安装找不到,安装时要改为pyahocorasick.但是程序里面用的时候,还是要改回ahocorasick.
THE END