问答模型方案设计

方案设计图示

问答模型设计图

  • query: 用户的提问
  • passage: 文章

问答模型设计的是简单问题模型,即query的答案是从passage中抽取出的。query和passage经过数据预处理,得到id形式的输入,然后把query,passage的id形式输入到BERT模型,BERT模型经过处理会输出答案的位置,输出位置以后就可以得到相应的答案了。

数据集

使用的DuReader内置中文数据集,数据集形式:

  • Question: 提问
  • context: 提问对应的段落
  • answer: 问题答案
  • location: 答案在段落中开始的位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问答系统的系统设计⽅案 问答系统的系统设计⽅案 问答系统的系统设计⽅案 问答系统的系统设计⽅案 ⼀、软件架构风格 ⼀、软件架构风格   "每⼀个模式描述了⼀个在我们周围不断重复发⽣的问题及该问题解决⽅案的核⼼。这样,你就能⼀次⼜⼀次地使⽤该⽅案⽽不必做重 复⼯作"。模式的关键在于模式的可重复性,问题与场景的可重复性带来解决⽅案的可重复使⽤。⽽架构也与此同义,为了实现系统的⾼性 能、⾼可⽤、易伸缩、可扩展、安全等各种技术架构⽬标,各⼤互联⽹公司提出各种解决⽅案,这些⽅案被业界复⽤,从⽽逐渐形成⼤型⽹ 站架构模式。   分层是企业应⽤系统中最常见的⼀种架构模式,将系统在横向维度上切分成⼏个部分,每个部分负责⼀部分相对⽐较单⼀的职责,然后 通过上层对下层的依赖和调⽤组成⼀个完整的系统。   分层在计算机世界⽆处不在,在本项⽬也⽤到了,如下图:   主要层分为负责处理请求的api层,负责业务处理的service层,负责数据处理的model层,其他还有负责缓存的cache层,中间件层 middleware以及⼀些配置层等等,具体见下图:   分割就是即是纵向⽅⾯对软件进⾏切分。本系统以问答为核⼼,粒度适中,⽐如服务层⽬前分割成⽤户,问题,回答等,其中问题⼜可 分割成普通问题和热点问题,其对应页⾯展⽰也有所不同。   数据访问热点不均衡,频繁数据放在缓存中,并且有⼀定期限不会长期占⽤宝贵内存,通过缓存加快数据访问速度,减轻后端应⽤和数 据存储的负载能⼒,这种设计对数据库架构⼗分重要。   本系统采⽤redis远程字典式缓存服务,将部分热点数据进⾏缓存,能够快速响应⽤户对热点内容读取的需求,另外点赞收藏等易变化的 部分数据不⽴即存⼊数据库,⽽是通过缓存操作加定时任务,实现弱⼀致性的数据存取。   系统的安全问题也是架构设计中必须要考虑到的,⽐如直接使⽤https进⾏通信,选择更好的加密算法也是需要考虑好的。本项⽬主要使 ⽤Bcrypt算法。⽤户表的密码通常使⽤MD5等不可逆算法加密后存储,为防⽌彩虹表破解更会先使⽤⼀个特定的字符串加密,然后再使⽤⼀ 个随机的salt加密。 特定字符串是程序代码中固定的,salt是每个密码单独随机,⼀般给⽤户表加⼀个字段单独存储,⽐较⿇烦。 BCrypt算 法将salt随机并混⼊最终加密后的密码,验证时也⽆需单独提供之前的salt,从⽽⽆需单独处理salt问题。 ⼆、接⼝设计风格 ⼆、接⼝设计风格   谈完了系统的架构风格,我们来谈谈接⼝设计的策略风格。⼀个后端系统主要任务就是设计好各种不同任务的底层接⼝,⼀个好的接⼝ 设计往往利于提⾼系统的解耦程度,⽽⼀个好的设计规范更能⽅便使⽤者调⽤,也利于后端开发⼈员理解任务的性质。   本系统采⽤restful风格的API设计规范,即"动词 + 宾语"的结构组成的数据操作指令,主要涉及get(读取)、post(新建)、put(更 新)、patch(部分更新)和delete(删除)。   此外,响应状态码也应该精确,这⾥是内部返回响应,主要包含状态码,提⽰信息,数据,如下图通⽤返回结构体: 三、软件系统概念原型下的视图 三、软件系统概念原型下的视图   ⼀个系统⽆论⼤⼩,皆可分模块,通过视图勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。   如下图,可知⼤致功能划分。   各层依赖视图:   关于泛化视图,由于采⽤的是⾯向过程的go语⾔没有类与类的继承等特性,但采⽤了组合⽅式来实现各层函数的调⽤。例如model层需 要定义answer结构体,并且为这个实体嵌⼊⼀些常⽤⽅法,以供service层调⽤。   关于执⾏视图,这⾥以判断⽤户是否能修改问题的时序图来举例:   也可看看⽤例图:   部署视图,本系统采⽤docker部署: 四、软件系统运⾏环境和技术选型说明 四、软件系统运⾏环境和技术选型说明 编程语⾔:go web框架:gin orm:gorm 缓存:redis 消息中间件:rabbitMQ 运⾏环境:Linux+docker 五、数据库设计 五、数据库设计   设计者的概念模型和最终⽤户的概念模型。设计模型作为产品设计者的概念模型,是对产品构成结构和操作⽅式的系统化、结构化描 述;相对应的⽤户模型,是⽤户在产品使⽤过程中形成的关于产品构成和操作⽅式等的结构化理解。⽽设计者是通过⼀系列视觉线索,以及 ⽤户的产品使⽤过程将设计模型传递给⽤户,并最终转换为⽤户概念模型。设计模型和⽤户模型的最理想状态就是⼆者完全等同,即产品的 所有设计意图和操作⽅式完全被⽤户所理解。因此实体的划分与联系⾄关重要,由功能结构分析可知,系统需包含⽤户、⽤户信息、问题、 问题标签、回答、收藏、消息实体,⼤致E-R图如下: 通⽤字段 列名 数据类型 长度 唯⼀ ⾮空 注释
【资源说明】 毕业设计基于flask框架和python搭建的互动问答论坛源码+项目说明(含nginx部署方案).zip qa.py:该类用于处理问答页面请求,主要包括:搜索、详情、发布、评论 - user.py: 该类用于处理用户页面的请求,主要包括:注册、登录、注册、验证码邮件 - init.py ```python from .qa import bp as qa_bp from .user import bp as user_bp ``` migrations包 flask-migrate 是基于 Alembic 进行的一个封装,并集成到 Flask 中,而所有的迁移操作其实都是 Alembic 做的,他能跟踪模型的变化,并将变化映射到数据库中。 static包 静态文件,顾名思义,就是那些不会被改变的文件,比如图片,CSS 文件和JavaScript 源码文件。默认情况下,Flask 在程序根目录中名为 static 的子目录中寻找静态文件。 templates包 用于存放前端页面的模板文件。 app.py文件 这个是主`app`文件,运行文件。并且因为`db`被放到另外一个文件中,所以使用`db.init_app(app)`的方式来绑定数据库。 config.py文件 常量文件,用来存放数据库配置和邮箱配置。 decorators.py文件 修饰器文件,使评论和问答需登录才能发布 exts.py文件 把`db`变量和`mail`变量放到一个单独的文件,而不是放在主`app`文件。 这样做的目的是为了在大型项目中如果`db`被多个模型文件引用的话,会造成`from your_app import db`这样的方式,但是往往也在`your_app.py`中也会引入模型文件定义的类,这就造成了循环引用。所以最好的办法是把它放在不依赖其他模块的独立文件中。 ```python # ext.py from flask_sqlalchemy import SQLAlchemy from flask_mail import Mail db = SQLAlchemy() mail = Mail() ``` forms.py文件 表单文件,用来对注册表单、登录表单、问答表单、评论表单进行规范化限制。 models.py文件 模型文件,用来存放所有的模型,并且注意,因为这里使用的是`flask-script`的方式进行模型和表的映射,因此不需要使用`db.create_all()`的方式创建数据库。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
### 回答1: 医疗知识问答数据集是指一个包含医疗领域常见问题和对应答案的数据集。这个数据集可以被用于训练和评估医疗智能问答系统。在CSDN(国内最大的IT技术分享社区)上,我们可以找到很多医疗知识问答数据集的资源。 医疗知识问答数据集的重要性在于它可以帮助开发者构建更智能的医疗问答系统,以提供更准确和可靠的医疗咨询服务。这对于患者在没有专业医生指导的情况下获取有关健康问题的信息是非常有益的。 在使用这样的数据集时,开发者需要首先清洗和预处理数据,确保问题和答案符合标准格式。然后,可以使用机器学习和自然语言处理技术进行文本特征提取和模型训练。这样的系统可以使用自然语言理解技术识别和理解用户提出的问题,并根据预先设定的知识库或数据库提供合适的答案。 医疗知识问答系统有许多应用场景,例如在线问诊、健康咨询和医学研究。通过使用医疗知识问答数据集进行系统训练,我们可以帮助用户更方便地获取医疗知识、提高医疗决策的准确性,并提高医疗行业的效率。 随着人工智能技术的发展,医疗知识问答系统将在未来得到更广泛的应用。然而,我们也需要谨慎对待这些系统的局限性,因为它们不能代替专业医生的诊断和治疗。因此,在使用这样的系统时,我们仍然需要保持理性和谨慎,避免错误的医疗决策和处理。 ### 回答2: 医疗知识问答数据集是一种用于医疗领域的问答对集合,其中包含了一系列与医学相关的问题和相应的答案。这个数据集的主要目的是为了帮助医疗从业者、研究人员和学生在医学知识领域中进行研究和实践。 这个数据集通常包括了各种各样的医学问题,涵盖了临床医学、疾病诊断、治疗方法、药物知识等方面。每个问题都会对应一个准确的答案,这些答案可以来自医学专家、大型医学数据库、研究论文等可靠的资源。 通过使用这个医疗知识问答数据集,医疗从业者可以快速准确地获取医学知识,解答疑惑,提高工作效率。研究人员可以利用数据集中的问题和答案进行机器学习、自然语言处理等方面的研究,开发智能问答系统,提供更好的辅助决策工具。学生可以利用这个数据集进行医学知识的学习和训练,提升自己的专业素养。 总而言之,医疗知识问答数据集对于医学领域的发展具有积极的推动作用。希望未来能够更多地收集和整理这样的数据集,并结合人工智能技术,为医疗行业带来更多的创新和进步。 ### 回答3: 医疗知识问答数据集是指一个收集了大量医疗相关问题和回答的数据集。这类数据集通常用于训练医疗智能问答系统或者进行医疗知识的研究。目前,CSDN等平台上有一些共享的医疗知识问答数据集供人们使用。 这样的数据集通常包含了各种医疗健康问题,例如疾病诊断、药物治疗、手术操作等等。问题可能是人们在日常生活中遇到的真实问题,也可能是人们特意设计的问题,以测试系统的能力。而回答通常是根据医学知识和实践经验给出的解释或建议。 使用医疗知识问答数据集可以对医疗智能问答系统进行训练与评估。通过让系统学习并理解这些问题和回答,系统可以逐渐提升自己在回答类似问题上的准确性和有效性。同时,还可以利用这些数据集进行医疗知识的研究,探索不同疾病、治疗方法之间的联系,或者发现新的治疗方案和诊断标准。 除了提供丰富的训练数据,医疗知识问答数据集还可以用于构建医疗智能问答系统的评估标准。通过将系统的回答与数据集中的标准答案进行比较,可以评估系统的答案是否准确、完整,以及系统的回答是否能够满足用户需求。 总之,医疗知识问答数据集在医疗智能问答系统的开发与研究中起到了至关重要的作用,它不仅丰富了系统的训练数据,还可以提供评估标准,促进医疗智能问答系统的发展和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值