从零构建医疗领域知识图谱的KBQA问答系统:其中7类实体,约3.7万实体,21万实体关系。

简介: 从零构建医疗领域知识图谱的KBQA问答系统:其中7类实体,约3.7万实体,21万实体关系。

从零构建医疗领域知识图谱的KBQA问答系统:其中7类实体,约3.7万实体,21万实体关系。

  • 项目效果

以下两张图是系统实际运行效果:

1.项目运行方式

运行环境:Python3
数据库:neo4j
预训练词向量:https://github.com/Embedding/Chinese-Word-Vectorshttps://pan.baidu.com/s/14JP1gD7hcmsWdSpTvA3vKA

1、搭建知识图谱:python build_grapy.py。大概几个小时,耐心等待。
2、启动问答测试:python kbqa_test.py

部分代码展示:

from entity_extractor import EntityExtractor
from search_answer import AnswerSearching


class KBQA:
    def __init__(self):
        self.extractor = EntityExtractor()
        self.searcher = AnswerSearching()

    def qa_main(self, input_str):
        answer = "对不起,您的问题我不知道,我今后会努力改进的。"
        entities = self.extractor.extractor(input_str)
        if not entities:
            return answer
        sqls = self.searcher.question_parser(entities)
        final_answer = self.searcher.searching(sqls)
        if not final_answer:
            return answer
        else:
            return '\n'.join(final_answer)


if __name__ == "__main__":
    handler = KBQA()
    while True:
        question = input("用户:")
        if not question:
            break
        answer = handler.qa_main(question)
        print("小豪:", answer)
        print("*"*50)

2.医疗知识图谱

数据源:39健康网。包括15项信息,其中7类实体,约3.7万实体,21万实体关系。

本系统的知识图谱结构如下:

1.1 知识图谱实体类型

实体类型 中文含义 实体数量 举例
Disease 疾病 14336 乙肝,癫痫
Alias 别名 8877 小儿褐黄病综合征,广疮
Symptom 症状 5622 手足烦热,四肢麻木
Part 发病部位 82 手部,上肢
Department 所属科室 82 感染科,外科
Complication 并发症 3201 落枕,流感
Drug 药品 4625 西黄胶囊,司帕沙星
Total 总计 36825

1.2 知识图谱实体关系类型

实体关系类型 中文含义 关系数量 举例
ALIAS_IS 别名是 52578 癫痫 别名是 羊角风
HAS_SYMPTOM 症状有 62105 乙肝 症状有 肝功能异常
PART_IS 发病部位是 26660 乙肝 发病部位是 肝
DEPARTMENT_IS 所属科室是 33867 乙肝 所属科室是 传染科
HAS_COMPLICATION 并发症有 25183 乙肝 并发症有 肝硬化
HAS_DRUG 可用药品 35914 乙肝 可用药品 恩替卡韦分散片
TOTAL 总计 210018 约210018对关系

1.3 知识图谱疾病属性

疾病属性 中文含义 举例
age 发病人群 老人,小孩
insurance 是否医保 医保
infection 是否传染 有传染性
checklist 检查项目 肝功能检查
treatment 治疗方法 药物治疗、心理治疗
period 治愈周期 一周
rate 治愈率 0.1%
money 费用 1000-2000元

3.问题意图识别

基于特征词分类的方法来识别用户查询意图

意图类型 中文含义 举例
query_disease 查询疾病 肝肿大是什么病
query_symptom 查询症状 慢性乙肝有什么表现
query_cureway 查询治疗方案 肚子一直痛怎么办
query_checklist 查询检查项目 乙肝需要做哪些检查
query_department 查询所属科室 乙肝去哪个科
query_rate 查询治愈率 乙肝能治好吗
query_period 查询治愈周期 乙肝多久能治好
disease_describe 查询疾病所以属性 慢性咽炎

4.总结

1、本项目构建简单,通过本项目能了解KBQA的工作流程。

2、本次通过手工标记210条意图分类训练数据,并采用朴素贝叶斯算法训练得到意图分类模型。其最佳测试效果的F1值达到了96.68%。选用NB的原因是通过与SVM训练效果比较后决定的。

3、优化点:

  • 训练数据还是太少,且对问题进行标注时易受主观意见影响。意图类别还是太少,本系统得到分类模型只能预测出上面设定的7类意图。
  • 对于问题句子中有多个意图的情况只能预测出一类,今后有时间再训练多标签模型吧。。
  • 知识图谱太小了,对于许多问题都检索不出答案。今后可以爬取其它的健康网站数据或者利用命名实体识别和关系抽取技术从医学文献中抽取出实体与关系,以此来扩充知识图谱。
  • 在本项目中采用了预训练的词向量来找近似词。由于该词向量特别大,加载非常耗时,因此影响了整个系统的效率。这个可能是因为电脑配置太低的原因吧。
  • 没有实现推理的功能,后续将采用多轮对话的方式来理解用户的查询意图。同时将对检索出的结果进行排序,可靠度高的排在前面。

项目链接跳转

文章码源链接

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

相关文章
|
3月前
|
供应链 前端开发
如何做好供应商分级管理?一文讲清供应商全生命周期管理
本文探讨了供应商分级管理的必要性及合理分类方法,解析了如何通过供应商管理系统实现全生命周期管理,涵盖从潜在供应商评估到淘汰退出的各个环节。文章介绍了多种分级模式,如按合作关系、物料重要性及绩效评分进行分类,并结合DMAIC模型实现高效供应商管理。通过系统化策略,企业可提升管理效率、降低成本,优化供应链协同效率。
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
322 7
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
2月前
|
算法 开发者 Python
【2025国赛】2025 年全国大学生数学建模比赛思路、代码更新中.....
【2025国赛】2025 年全国大学生数学建模比赛思路、代码更新中.....
247 0
|
7月前
|
人工智能 编解码
ReCamMaster:视频运镜AI革命!单镜头秒变多机位,AI重渲染颠覆创作
ReCamMaster 是由浙江大学与快手科技联合推出的视频重渲染框架,能够根据用户指定的相机轨迹重新生成视频内容,广泛应用于视频创作、后期制作、教育等领域,提升创作自由度和质量。
496 0
|
12月前
|
NoSQL 前端开发 数据可视化
基于Neo4j的医疗知识图谱展示系统——毕业设计绝佳选择
基于Neo4j的医疗知识图谱展示系统——毕业设计绝佳选择
293 1
|
数据采集 传感器 监控
LabVIEW在SpaceX的应用
LabVIEW在SpaceX的应用
208 0
|
Web App开发 数据可视化 搜索推荐
博士科研最好用的科研绘图工具有哪些?
该博客介绍了几种博士科研中最好用的科研绘图工具,包括ChiPlot、Veusz、Echarts、MeedPeer和Python可视化库,并提供了它们的优缺点分析。
541 2
博士科研最好用的科研绘图工具有哪些?
|
存储 人工智能 自然语言处理
领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
|
机器学习/深度学习 算法 数据可视化
Transformer要变Kansformer?用了几十年的MLP迎来挑战者KAN
【5月更文挑战第15天】KANs,一种基于Kolmogorov-Arnold表示定理的新型神经网络,以其独特结构挑战传统的MLP。KANs在边而非节点上使用可学习激活函数,展现出超越MLP的准确性和更快的扩展性。其可解释性优势利于科学应用,但训练速度较慢,未来优化有望改善。KANs在科学任务和潜在的Transformer集成中展示出广阔的应用前景。[链接](https://arxiv.org/pdf/2404.19756)
419 5
|
存储 人工智能 自然语言处理
大模型时代还需要知识图谱么?新一代知识图谱语义框架SPG赋能企业数智化转型
本文以商家经营和风险防控为例,介绍了在企业数字化中的图谱应用。结合当前产业应用和研究进展,本文梳理总结了LLM、KG 在企业数字化中的可能应用。
大模型时代还需要知识图谱么?新一代知识图谱语义框架SPG赋能企业数智化转型