基于Python的中医药知识问答系统设计与实现

news/2024/7/27 8:44:35/文章来源:https://blog.csdn.net/qq_43374605/article/details/136718964

[简介]
这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言,结合中医药领域的知识和技术,实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性,然后提出了设计思路和实现方法。系统的设计包括数据的采集和处理、问题的分类和分析、答案的生成和评价等关键步骤。通过实验验证,该系统在问答准确性和效率上都取得了较好的表现,具有一定的实用价值。文章最后总结了设计过程中遇到的问题和改进的方向,为进一步研究和应用提供了参考。

(节选)主要研究内容

(1)网络爬虫
(2)中药文本处理
(3)知识图谱搭建
(4)智能问答界面实现

一、知识图谱

在这里插入图片描述

二、问答页面

在这里插入图片描述

在这里插入图片描述
知识图谱架构只要指的是构建模式的结构。
在这里插入图片描述
偏方Flask实现:

app = Flask(__name__)
@app.route('/query/', methods=['GET', 'POST'])
def query():if request.method == "POST":name = request.form.get("name")dict_return = getdata(name)return render_template('query.html', dict_return=dict_return)else:dict_return = getdata('ALL')                       #默认初始页面return render_template('query.html', dict_return=dict_return)if __name__ == '__main__':app.run(debug=True)
class MyEncoder(json.JSONEncoder):def default(self, obj):"""只要检查到了是bytes类型的数据就把它转为str类型:param obj::return:"""if isinstance(obj, bytes):return str(obj, encoding='utf-8')return json.JSONEncoder.default(self, obj)def getdata(name):dict_return = {}#处理好的文件路径path = "./Data_excel/"file = path+str(name)+"偏方秘方.xlsx"data = pd.read_excel(file)num=list(i+1 for i in range(len(data[u'drug'])))drug = list(data[u'drug'])prescript = list(data[u'prescript'])part = list(data[u'part'])# 以下为将处理好的数据加入字典dict_return['num'] = numdict_return['drug'] = drugdict_return['prescript'] = prescriptdict_return['part'] = part# 滚动图item = []for i in range(0, len(drug)):item.append({'num':num[i],'drug': drug[i],'prescript':prescript[i],'part':part[i]})data_tb = json.dumps(item,cls=MyEncoder,ensure_ascii = False)data_tb = demjson.decode(data_tb)dict_return['data_tb'] = data_tbli=[]for root, dirs, files in os.walk('./Data_excel'):for file in files:li.append(file.split('偏')[0])dict_return['li'] = lireturn dict_return

三、偏方库查询

在这里插入图片描述
问答实现:

class SimpleQA:def __init__(self):self.data = {'name_part': {'水部': '藻类', '火部': '灯芯花'},'name_alias': {'藻类': '藻藻', '灯芯花': '火火'},'name_smell': {'藻类': '清新', '灯芯花': '芳香'},'name_cure': {'藻类': '泻火', '灯芯花': '散结'},'drug_department': {'藻类': '肝部科室', '灯芯花': '心部科室'},'drug_prescript': {'藻类': '清火汤', '灯芯花': '散结丸'},'drug_onepart': {'藻类': '水', '灯芯花': '火'}}def search(self, question_type, drug_name):if question_type not in self.data:return "抱歉,暂不支持该类型的问题。"if drug_name not in self.data[question_type]:return "抱歉,找不到相关信息。"if question_type == 'name_part':return '属于部类是:' + self.data[question_type][drug_name]elif question_type == 'name_alias':return '别名是:' + self.data[question_type][drug_name]elif question_type == 'name_smell':return '气味品质是:' + self.data[question_type][drug_name]elif question_type == 'name_cure':return '使用方法是:' + self.data[question_type][drug_name]elif question_type == 'drug_department':return '该去科室是:' + self.data[question_type][drug_name]elif question_type == 'drug_prescript':return '治疗疾病的偏方是:' + self.data[question_type][drug_name]elif question_type == 'drug_onepart':return '该病从属于:' + self.data[question_type][drug_name]if __name__ == '__main__':qa_system = SimpleQA()question_type = 'drug_prescript'drug_name = '藻类'answer = qa_system.search(question_type, drug_name)print(answer)
Q:2777.077.178

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1007292.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python INI文件操作与configparser内置库

目录 INI文件 configparser内置库 类与方法 操作实例 导入INI文件 查询所有节的列表 判断某个节是否存在 查询某个节的所有键的列表 判断节下是否存在某个键 增加节点 删除节点 增加节点的键 修改键值 保存修改结果 获取键值 获取节点所有键值 其他读取方式 …

54、WEB攻防——通用漏洞跨域CORS资源JSONP回调域名接管劫持

文章目录 同源策略CORSJSONP跨域回调子域名劫持 同源策略 同源策略包括三个条件:同域名、同域名、同端口。同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。 CORS CORS(跨域资源共享)已被所有浏览器支持,跨…

leetcode代码记录(有效的括号

目录 1. 题目:2. 我的代码:小结: 1. 题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足&…

缩写

解法&#xff1a; 看字符串首元素即可 #include<iostream> #include<vector> #include<string> #include<sstream> using namespace std; #define endl \n void solve() {cin >> ws;string s, str;getline(cin, s);stringstream ss(s);while (…

【wine】WINEDEBUG 分析mame模拟器不能加载roms下面的游戏 可以调整参数,快速启动其中一个游戏kof98

故障现象&#xff0c;MAME启动后&#xff0c;游戏都没有识别 添加日志输出&#xff0c;重新启动wine #!/bin/bashexport WINEPREFIX$(pwd)/.wine export WINESERVER$(pwd)/bin/wineserver export WINELOADER$(pwd)/bin/wine export WINEDEBUG"file,mame,warn,err"…

《计算机网络》:考研 2024/3/5 2.1.1-物理层基本概念引入

2024/3/5 2.1.1 物理层基本概念 Ch1. 本章思维导图 图1. 物理层思维导图 Ch2. 物理层接口特性 所谓物理层&#xff0c;物理层解决如何在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。物理层的主要任务&#xff1a;确定与传输媒体接口有关…

面试经典150题——两数相加

​Anything is worth "fighting for," and when you get it, dont doubt it, you deserve it, you deserve it. 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个题目虽然标的是中等&#xff0c;但是大家看一下应该还是比较容易想到思路的&#xff0c;这不就相当于…

Keepalived+LVS构建高可用集群

目录 一、Keepalive基础介绍 1. Keepalive与VRRP 2. VRRP相关技术 3. 工作原理 4. 模块 5. 架构 6. 安装 7. Keepalived 相关文件 7.1 配置组成 7.2 全局配置 7.3 VRRP实例配置&#xff08;lvs调度器&#xff09; 7.4 虚拟服务器与真实服务器配置 二、Keepalived…

mac系统下GCC优化编译的使用

mac系统下GCC优化编译的使用 编译流程 预处理&#xff1a;g -E homework.cpp -o homework.i 编译&#xff1a;g -S homework.i -o homework.s //.s为汇编文件 汇编&#xff1a;g -c homework.s -o homework.o 链接&#xff1a;g homework.o -o homework 优化选项 -O0&#…

前端网页如何在 Windows 上测试 Safari

“Windows上的Safari&#xff1f;”&#xff0c;“那不可能&#xff01; Safari 无法在 Windows 上运行。当然的&#xff01; 曾经可以在windows上运行&#xff0c;但苹果早在 2012 年就停止支持 Windows。对于想要测试 Safari 兼容性的 Web 开发人员来说&#xff0c;这真是太不…

数据结构-树状数组

&#x1f4d1;前言 本文主要是【树状数组】——树状数组简单使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一…

VR数字展厅在企业中应用的优势有哪些?

随着VR全景技术的成熟&#xff0c;VR数字展厅逐渐成为了企业展示形象和产品的重要手段之一。VR企业数字展厅是一种通过VR技术、3D建模技术展示企业形象和产品的创新方式&#xff0c;将企业线下的展厅搬到线上&#xff0c;为企业品牌形象带来了很多优势。 VR数字展厅在企业中应用…

【大厂AI课学习笔记NO.68】开源和开源发展情况

开源即源代码公开&#xff0c;任何人能获取源代码&#xff0c;查看、修改、分发他们认为合适的代码。 依托同行评审和社区生成&#xff0c;旨在以分散、协作的方式开发。 我们曾经很详细的讨论过开源协议的问题&#xff0c;详细可以参考我的文章&#xff1a; https://giszz.…

为什么要用scrapy爬虫库?而不是纯python进行爬虫?

为什么要用scrapy爬虫库&#xff1f;而不是纯python进行爬虫&#xff1f; Scrapy的优点Scrapy节省的工作使用纯Python编写爬虫的不足 Scrapy是一个使用Python编写的开源和协作的web爬虫框架&#xff0c;它被设计用于爬取网页数据并从中提取结构化数据。Scrapy的强大之处在于其广…

新手如何快速上手学习单片机?

读者朋友能容我&#xff0c;不使博文负真心 新开专栏&#xff0c;期待与诸君共享精彩 个人主页&#xff1a;17_Kevin-CSDN博客 专栏&#xff1a;《单片机》 学习单片机是一个有趣且有挑战性的过程。单片机是一种微控制器&#xff0c;广泛应用于各种电子设备和嵌入式系统中。在这…

精通Linuxd磁盘分区挂载的精髓:从理论到实战一网打尽

前言 想要深入了解Linux系统中磁盘分区挂载的原理和操作步骤吗&#xff1f;这篇文章将为你揭开分区挂载的神秘面纱&#xff0c;从理论到实践&#xff0c;详细讲解分区挂载的一切。无论你是初学者还是有一定经验的用户&#xff0c;都能从中获取新知识&#xff0c;提升技能水平。…

前后端交互理解 简易表白墙(servlet)

前后端交互理解 简易表白墙&#xff08;servlet&#xff09; 文章目录 前后端交互理解 简易表白墙&#xff08;servlet&#xff09;后端核心内容前后端交互接口约定后端代码展示 上期介绍过 Servlet API &#xff0c;本篇文章目的是借助 servlet 做出一个完整的网站。在一个网站…

RabbitMQ应用场景

1、异步处理 假设想象一下我们做一个商城项目&#xff0c;在用户支付模块中&#xff0c;可能会涉及到其它业务&#xff0c;比如&#xff1a;积分折扣、消费券、短信验证等功能。我们传统的执行步骤是逐步执行&#xff0c;也就是说当用户点击支付 ----> 积分折扣 ----> 消…

Docker进阶:深入了解 Dockerfile

Docker进阶&#xff1a;深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、…

区块链基础知识(上):区块链基本原理、加密哈希、公钥加密

目录 基本原理 加密哈希&#xff1a; 公钥加密&#xff1a; 希望有人向你发送只有你才能打开的加密文档/消息时使用 PKC 希望向其他人发送加密文档/消息并证明它确实由你发送时使用 PKC 使用 PKC 和加密哈希对文档/消息进行数字签名 交易哈希链使用数字签名转让数字资产所…