j建网站,免费软件库合集软件资料网站,房价走势最新消息2022,建设部标准规范网站[简介] 这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言#xff0c;结合中医药领域的知识和技术#xff0c;实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性#xff0c;然后提出了设计思路…[简介] 这篇文章主要介绍了基于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_returndict_return)else:dict_return getdata(ALL) #默认初始页面return render_template(query.html, dict_returndict_return)if __name__ __main__:app.run(debugTrue)class MyEncoder(json.JSONEncoder):def default(self, obj):只要检查到了是bytes类型的数据就把它转为str类型:param obj::return:if isinstance(obj, bytes):return str(obj, encodingutf-8)return json.JSONEncoder.default(self, obj)def getdata(name):dict_return {}#处理好的文件路径path ./Data_excel/file pathstr(name)偏方秘方.xlsxdata pd.read_excel(file)numlist(i1 for i in range(len(data[udrug])))drug list(data[udrug])prescript list(data[uprescript])part list(data[upart])# 以下为将处理好的数据加入字典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,clsMyEncoder,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_prescriptdrug_name 藻类answer qa_system.search(question_type, drug_name)print(answer)
Q2777.077.178