基于BERT的知识库问答系统
简介
知识库问答可以主要分为两个模块,问题实体识别模块和属性匹配模块,系统整体流程图如下:
数据
此次使用的数据集来自NLPCC ICCPOL 2016 KBQA 任务集,其包含 14 609 个问答对的训练集和包含 9 870 个问答对的测试集。 并提供一个知识库,包含 6 502 738 个实体、 587 875 个属性以及 43 063 796 个 三元组。知识库文件中每行存储一个事实( fact) ,即三元组 ( 实体、属性、属性值) 。
知识库样例如下,共有43063796行:
训练NER的数据格式如下:
训练BERT二分类的数据如下:
运行效果:
- 精确查找可找到且属性包含在问句中:
- 需要模糊查找且需要进行属性匹配:
问题
最主要的问题就是进行模糊搜索时速度过慢,且对于问题的要求很高,只能提问xx的xx是什么这一种问题。
基于医疗知识图谱的自动问答
简介
立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。 并构建了一个基于医药知识图谱的问答系统。
整体框架如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I6gCEOFF-1571281119622)(C:/Users/zhang/Desktop/QA图片/neo4j流程.jpg)]
数据来源
项目的数据来自寻医问药网站,爬取的结构化数据,构建了以疾病为中心的医疗知识图谱,项目的数据存储采用Neo4j图数据库,问答系统采用了规则匹配方式完成,数据操作采用neo4j声明的cypher。
知识库内容
1.实体类型
2.实体关系类型
3.属性类型
支持的问题类型
运行效果
总结
基于规则的问答系统没有复杂的算法,一般采用模板匹配的方式寻找匹配度最高的答案,回答结果依赖于问句类型、模板语料库的覆盖全面性,面对已知的问题,可以给出合适的答案,对于模板匹配不到的问题或问句类型,就无能为力了。