基于Python的中医药知识问答系统设计与实现
[简介]
这篇文章主要介绍了基于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
相关文章:
基于Python的中医药知识问答系统设计与实现
[简介] 这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言,结合中医药领域的知识和技术,实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性,然后提出了设计思路…...
QT 如何防止 QTextEdit 自动滚动到最下方
在往QTextEdit里面append字符串时,如果超出其高度,默认会自动滚动到QTextEdit最下方。但是有些场景可能想从文本最开始的地方展示,那么就需要禁止自动滚动。 我们可以在append之后,添加如下代码: //设置编辑框的光标位…...
【C/C++ 学习笔记】指针
【C/C 学习笔记】指针 视频地址: Bilibili 概念 可以通过指针间接访问内存用于保存地址 使用 通过 & 可以获取数据的指针 通过 * 可以取得指针的数据 指针的数据类型就是 数据类型 * int number 10;int *p &number;// 10 cout << "number: " …...
【Node.js从基础到高级运用】十二、身份验证与授权:JWT
身份验证与授权是现代Web应用中不可或缺的部分。了解如何在Node.js应用中实施这些机制,将使你能够构建更安全、更可靠的应用程序。本文将引导你通过使用JWT实现用户注册、登录和权限控制的过程。 JWT(Json Web Token) JWT是一种用于双方之间…...
蓝桥杯刷题|01入门真题
[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 出现次数的形式。 例如,连续…...
Python Django相关解答
问题:什么是django? Django是一个开源的高级web框架,皆在快速开发安全可维护的网站。他鼓励快速开发,并遵循“don’t repeat yourself”DRY原则 Django的MTV架构是什么 Django遵循MTV(模型-模板-试图)架构模式。模型(…...
在Linux/Ubuntu/Debian中使用7z压缩和解压文件
要在 Ubuntu 上使用 7-Zip 创建 7z 存档文件,你可以使用“7z”命令行工具。 操作方法如下: 安装 p7zip: 如果你尚未在 Ubuntu 系统上安装 p7zip(7-Zip 的命令行版本),你可以使用以下命令安装它:…...
设计一些策略和技术来防止恶意爬虫
当涉及到反爬虫时,我们需要设计一些策略和技术来防止恶意爬虫访问我们的网站。以下是一个简单的反爬虫框架示例,供您参考: import requests from bs4 import BeautifulSoup import timeclass AntiScrapingFramework:def __init__(self, targ…...
elasticsearch常见问题:xpack.security.transport.ssl、unknown setting [node.master]
文章目录 引言I 安装elasticsearch1.1 安装Master Node1.2 安装Slave nodeII elasticsearch常见问题2.1 invalid configuration for xpack.security.transport.ssl2.2 server ssl configuration requires a key and certificate2.3 unknown setting [node.master]III Kibana启动…...
LLM(大语言模型)——Springboot集成文心一言、讯飞星火、通义千问、智谱清言
目录 引言 代码完整地址 入参 出参 Controller Service Service实现类 模型Service 入参转换类 文心一言实现类 讯飞星火实现类 通义千问实现类 智谱清言实现类 引言 本文将介绍如何使用Java语言,结合Spring Boot框架,集成国内热门大模型API&am…...
什么是堆?什么是栈?
在计算机科学中,"堆(heap)"和"栈(stack)"是两种用于存储数据的数据结构,它们在内存管理中扮演着不同的角色。 堆(Heap): 动态分配内存:…...
【镜像转存】利用交互式学习平台killercoda转存K8S镜像至Docker私人仓库
文章目录 1. 镜像转存需求2. 注册并登陆 killercoda URL3. 打开playground4. 在线拉取K8S镜像并打上标签5. 推送K8S镜像到Docker私有仓库6. 登陆Docker私有仓库查看 1. 镜像转存需求 因K8S镜像在不开代理的情况下,拉取超时、下载缓慢,导致镜像拉取不下来…...
ov多域名SSL数字证书1200元一年送一月
随着互联网的发展,不论是个人用户还是企事业单位都不止有一个网站,为了保护网站安全,就需要为网站安装SSL证书,而SSL证书中的通配符SSL证书和多域名SSL证书都可以同时保护多个域名站点。其中,多域名SSL证书可以同时保护…...
MySQL 系统变量查看与设置(System Variables Configuration)
MySQL中有大量的系统变量控制服务器的行为,大部分的系统变量是不需要我们调整的,保持默认即可。但为了获得更高的性能和稳定性,有时需要适当对部分变量进行调整,本文总结了MySQL中系统变量的查看与设置方法。 目录 一、变量的类型…...
【Docker】apache 容器化部署
Apache环境标准软件基于Bitnami apache 构建。当前版本为2.4.58 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform Q…...
基于element-plus +腾讯云COS实现图片上传
① 首先基于element-plus里面的:http-request"upload"自定义封装事件写一个点击事件之后基于腾讯云的 登录 对象存储控制台 ,创建存储桶。获取存储桶名称和 地域名称登录 访问管理控制台 ,获取您的项目 SecretId 和 SecretKey。在项目中安装 …...
Kafka模拟器产生数据仿真-集成StructuredStreaming做到”毫秒“级实时响应StreamData落地到mysql
这是仿真过程某图: 仿真实战kafka kafka消费sink端和StructuredStreaming集成通信成功 , 数据接收全部接收 数据落地情况: 全部接收到并all存入mysql 下面就简单分享一下StructuredStreaming代码吧 import org.apache.spark.sql.function…...
IDEA如何删除git最新一次远程提交
IDEA如何删除git最新一次远程提交 选择应用 -> Git -> Show History 选择最新提交上一次提交 -> Reset Current Branch to Here… Reset 提示框选择 Hard push到远程分支 -> 选择Force Push 结果验证 (最新分支已被删除)...
什么是单向数据流
单向数据流是一种数据流动的模式,通常用于前端框架(如 React、Vue 等)中。在单向数据流中,数据只能从一个方向流向另一个方向,不会出现数据的双向流动。这种模式有助于简化数据的管理和状态的维护,提高代码…...
Qt 线程池 QThreadPool
一.Qt 线程池 QThreadPool介绍 Qt线程池是一种管理多个线程的并发编程模型,通过使用线程池可以提高性能、控制并发度、提供任务队列和简化线程管理。 在Qt中,线程池的使用主要涉及以下几个步骤: 创建任务类:需要定义一个任务类&am…...
Android系统级证书安装:解决HTTPS抓包的SSLHandshakeException
1. 为什么系统级证书安装成了Android抓包的“最后一道墙”做Android逆向分析的朋友,大概率都经历过这个场景:Charles或Fiddler配好代理、手机连上Wi-Fi、HTTP流量哗哗地跑,可一打开目标App——空白页、网络错误、甚至直接闪退。点开App的设置…...
Flut Renamer:免费跨平台批量文件重命名工具的完整使用指南
Flut Renamer:免费跨平台批量文件重命名工具的完整使用指南 【免费下载链接】renamer Flut Renamer - A bulk file renamer written in flutter (dart). Available on Linux, Windows, Android, iOS and macOS. 项目地址: https://gitcode.com/gh_mirrors/ren/ren…...
4个突破性价值:Axure-cn语言包的全中文界面革命
4个突破性价值:Axure-cn语言包的全中文界面革命 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是否曾因Axure RP的…...
3个关键步骤:彻底掌握Synology NAS的USB网卡驱动配置
3个关键步骤:彻底掌握Synology NAS的USB网卡驱动配置 【免费下载链接】r8152 Synology DSM driver for Realtek RTL8152/RTL8153/RTL8156 based adapters 项目地址: https://gitcode.com/gh_mirrors/r8/r8152 为你的Synology NAS扩展网络能力从未如此简单。R…...
幻兽帕鲁存档迁移终极指南:5分钟解决换服数据丢失问题
幻兽帕鲁存档迁移终极指南:5分钟解决换服数据丢失问题 【免费下载链接】palworld-host-save-fix Fixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated servers and …...
VisualGGPK2游戏资源编辑器:流放之路玩家的终极MOD制作指南
VisualGGPK2游戏资源编辑器:流放之路玩家的终极MOD制作指南 【免费下载链接】VisualGGPK2 Library for Content.ggpk of PathOfExile (Rewrite of libggpk) 项目地址: https://gitcode.com/gh_mirrors/vi/VisualGGPK2 你是否曾经想要修改《流放之路》的游戏界…...
ChatGPT企业版安全合规全解析:如何在72小时内完成GDPR/等保2.0双认证接入?
更多请点击: https://intelliparadigm.com 第一章:ChatGPT企业版核心架构与合规定位 ChatGPT企业版并非简单叠加访问权限的SaaS服务,而是基于隔离部署、数据主权保障与策略可编程性构建的合规优先架构。其底层采用多租户物理隔离的专用基础设…...
终极音乐解锁指南:3个简单步骤让加密音乐重获自由
终极音乐解锁指南:3个简单步骤让加密音乐重获自由 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://g…...
联想刃7000K BIOS高级配置优化指南:解锁隐藏参数设置与性能调优
联想刃7000K BIOS高级配置优化指南:解锁隐藏参数设置与性能调优 【免费下载链接】Lenovo-7000k-Unlock-BIOS Lenovo联想刃7000k2021-3060版解锁BIOS隐藏选项并提升为Admin权限 项目地址: https://gitcode.com/gh_mirrors/le/Lenovo-7000k-Unlock-BIOS 本文详…...
JiYuTrainer终极指南:轻松破解极域电子教室限制,重获学习自主权
JiYuTrainer终极指南:轻松破解极域电子教室限制,重获学习自主权 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在学校的计算机教室里,…...
