Git Product home page Git Product logo

kgqa-based-on-medicine's Introduction

基于医药知识图谱的智能问答系统

  • 这是一个基于Python模块REfO实现的知识库问答初级系统. 该问答系统可以解析输入的自然语言问句生成 SPARQL 查询,进一步请求后台基于TDB知识库的Apache Jena Fuseki 服务, 进而得到问题的结果。
  • 提供疾病症状、疾病用药、药品查询等功能。
  • demo演示

需要环境

  • python3.5.2开发环境
    • 安装jieba中文分词组件
    • 安装sparqlwrapper,python与Apache Jena Fuseki服务的交互组件
    • Django,Web应用框架,用于交互展示
  • Apache Jena,是一个开源的Java语义网框架(open source Semantic Web Framework for Java),用于构建语义网和链接数据应用
    • apache-jena-fuseki,开启Apache Jena Fuseki 服务
  • Java环境,Apache Jena需要在Java环境下运行
  • 数据

怎么运行

  • 下载TDB药品疾病知识库数据 & clone项目代码
  • 开启Apache Jena Fuseki 服务
    • 将TDB数据和Apache Jena Fuseki放在同一个目录下。
    • 进入Apache Jena Fuseki文件夹,运行fuseki-server.bat,然后退出。程序为我们在当前目录自动创建“run”文件夹
    • 将项目代码apache_configuration文件夹下的kgdrug.tll和rules.tll文件移动到“run”文件夹下。
      • kgdrug.tll:知识库本体文件
      • rules.tll:规则推理配置文件
    • 将项目代码apache_configuration文件夹下的fuseki_conf.ttl文件移动到“run”文件夹下。
      • fuseki_conf.ttl:Fuseki配置文件,主要配置上述两个文件的路径和TDB知识库路径
    • 上述操作配置好后,再次运行fuseki-server.bat,开启Apache Jena Fuseki 服务
  • 安装python环境需要的包
pip install requirements.txt
  • 这里需要修改项目代码中setting.py文件中的字典导入路劲,因为我们的文件路径可能不一样。
  • 运行KB_query文件夹中的query_main.py,开启命令行模式。
python query_main.py
  • 在项目根目录下运行manage.py,开启项目的web模式
python manage.py runserver

可能遇到的问题

  • 第二次开动Apache Jena Fuseki 服务时,如果启动失败,需要到TDB文件把prefix前缀的文件全部删除掉。
  • 代码运行错误,应该大部分集中在路径错误上,请仔细阅读报错信息。

项目不足

  • 只支持一问一答式的对话。
  • 只支持查询知识库有的数据,知识库不包含的数据则查询不到。
  • 页面UI设计交简陋

后期更新

  • 加入药品、疾病的同义词,增加系统的鲁棒性
  • 增加疾病推断功能
  • 增加多轮式对话功能
  • 重新设计页面UI

参考

基于 REfO 的 KBQA 实现及示例

kgqa-based-on-medicine's People

Contributors

yeyzheng avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.