欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

“基于医疗知识图谱的问答系统”代码解析

程序员文章站 2022-03-26 19:03:31
“基于医疗知识图谱的问答系统”代码解析(五)chatbot_graph.py —聊天机器人图谱代码分析终于来到最终章了,刚开始还挺兴奋,此时困了,熬了两个小时,还是不要熬夜了。“基于医疗知识图谱的问答系统”代码解析(一)“基于医疗知识图谱的问答系统”代码解析(二)“基于医疗知识图谱的问答系统”代码解析(三)“基于医疗知识图谱的问答系统”代码解析(四)#!/usr/bin/env python3# coding: utf-8# File: chatbot_graph.py# Au...

“基于医疗知识图谱的问答系统”代码解析(五)

chatbot_graph.py —聊天机器人图谱代码分析

终于来到最终章了,刚开始还挺兴奋,此时困了,熬了两个小时,还是不要熬夜了。
“基于医疗知识图谱的问答系统”代码解析(一)
“基于医疗知识图谱的问答系统”代码解析(二)
“基于医疗知识图谱的问答系统”代码解析(三)
“基于医疗知识图谱的问答系统”代码解析(四)

#!/usr/bin/env python3
# coding: utf-8
# File: chatbot_graph.py
# Author: lhy<lhy_in_blcu@126.com,https://huangyong.github.io>
# Date: 18-10-4

# 导入需要的文件
from question_classifier import *
from question_parser import *
from answer_search import *

'''问答类'''
class ChatBotGraph:
    def __init__(self):
        # 实例化
        self.classifier = QuestionClassifier() # 分类器
        self.parser = QuestionPaser()          # 分析器
        self.searcher = AnswerSearcher()       # 答案搜索器

    # sent 为用户输入进来的语句
    def chat_main(self, sent):
        # 设置默认回答
        answer = '您好,我是小勇医药智能助理,希望可以帮到您。如果没答上来,可联系https://liuhuanyong.github.io/。祝您身体棒棒!'
        # 对输入语句进行分类,把结果存入res_classify
        res_classify = self.classifier.classify(sent)
        # 如果不存在,就返回默认值
        if not res_classify:
            return answer

        # 再对res_sql提取关键词
        res_sql = self.parser.parser_main(res_classify)
        # 最终答案在答案搜索文件的search_main函数可得
        final_answers = self.searcher.search_main(res_sql)
        # 如果找不到最终答案,就返回默认值
        if not final_answers:
            return answer
        # 找到了多个的化,就用换行符替代
        else:
            return '\n'.join(final_answers)

if __name__ == '__main__':
    # 实例化handler
    handler = ChatBotGraph()
    # 问题-答案查询流程
    while 1:
        # 以 ‘用户:   ’  来询问
        question = input('用户:')
        # 调用函数 返回答案
        answer = handler.chat_main(question)
        # 输出答案
        print('小勇:', answer)

结果展示

“基于医疗知识图谱的问答系统”代码解析
其实可以看出来,对话问答还是存在很多瑕疵的,主要是关键词的匹配,如果我们能用一种模型训练语句的相似度,从而可以判断语句是否为一种命令

总结

可能医生给我今天打的针 让我晚上特别兴奋。希望大家在知识图谱里共同努力呀,有问题一定要指出来哟,毕竟晚上做出的决定一般不可靠。

本文地址:https://blog.csdn.net/qq_41521728/article/details/112598648