摘要
为解决羊群疾病检索过程中出现的大量冗余数据及检索后仍需人工挑选准确答案造成的资源浪费,本研究通过以下3个步骤构建基于知识图谱的羊群疾病问答系统:(1)通过爬虫获取数据,人工提取部分信息,再进行自动化信息抽取,在命名实体识别任务中使用双向长短期记忆循环神经网络Bi-LSTM模型,并添加注意力机制提高识别效率,然后使用BIO规则进行实体标注,完成信息抽取,将数据融合后存储在Neo4j图数据库中,构建羊群疾病知识图谱。(2)针对属性映射,构建Bert-softmax模型;根据用户提问,采用Bert模型计算问句和属性的语义相似度,并通过softmax算法进行归一化处理,返回合适答案给用户,实现羊群疾病问答系统算法设计。(3)构建羊群疾病诊断平台,使用Bootstrap、Echarts、Vue组件实现羊群疾病问答系统的可视化,利用Python语言包含的flask框架搭建后台,封装疾病信息,通过web前端呈现给用户,并于后端建立连接,实现数据之间的交互。试验结果显示,基于Bi-LSTM + Attention + CRF模型实体识别的F1值为83.16%,构建的知识图谱包含实体4 576个,实体关系超13 000条;问答系统添加了预训练模型Bert,对问题识别的F1值为85.24%。结果表明,该系统实现了对羊群疾病的防治措施等多类问题进行快速检索和精准回答,可以辅助养殖人员在面临羊群疾病时进行生产决策。
羊群疾病的诊断和预防一直是养殖人员工作的重点,但专业的畜牧兽医人才的缺乏也是行业面临的问题。因此,帮助从业人员进行疾病诊断和预防的工具及系统受到了广泛的关注。互联网中查询羊群疾病的方式逐渐被用户接受,但由于自然语言(natural language)描述的不准确性和关键词的多样性使得检索结果容易出现偏差,且检索出的答案通常以网页的形式呈现,还需要人工进行挑选才能获得准确的答案。面向专业领域的问答系统能够在很大程度上解决互联网中数据冗余的困境,可以针对目标领域更专业地回答用户提出的问题。早期的问答系统主要以专家诊断系统为主,如陈勇
谷歌公司为解决用户的搜索体验欠佳和搜索质量不高的问题,进行了大量的研究,在2012年正式提出了知识图谱(knowledge graph)。知识图谱的出现解决了用户关键词把握不准确导致的检索失败及用户无法进行多轮对话查询等问
首先采用人工的方式,从互联网的文本信息中手动抽取出疾病实体和实体关系;然后,将这些实体及关系整理为“实体-关系-实体” 的三元组形式存放在Excel表格中,最后将Excel文件转换为json格式用于后续的操作。同时还使用网络爬虫的方式从羊群疾病网站(医链)上获取文本信息,将这一部分数据进行实体标注,作为Bi-LSTM-CRF命名实体识别模型的训练数据集。此外,还收集了“中国知网”获取的3 010篇羊病相关文献摘要以及CCL2021智能对话诊疗评测比赛中的数
在对疾病数据进行命名实体识别之前,需要构建语料库,协助模型进行实体标

图1 命名实体识别流程图
Fig. 1 Named entity recognition flowchart
首先收集好数据,将数据进行信息抽取、映射和融合,然后进行知识存储,形成知识图谱,知识图谱构建步骤如

图2 知识图谱构建步骤
Fig. 2 Knowledge graph construction steps
1)机器学习及深度学习模型。在命名实体识别任务中用LSTM和CRF等模型进行实体识别,LSTM可以简单理解为更复杂的循环神经网络(RNN

图3 Bi-LSTM模型结构图
Fig. 3 Bi-LSTM model structure diagram
实体命名识别模型的效果通过精确率(P)、召回率(R)以及F值(也被称为F1值,即P值和R值的调和平均数)的大小来进行评价,其公式如(1)、(2)、(3)所示。本研究基于Bi-LSTM模型+Attention机制+CRF模型对“中国知网”获取以“羊病”为关键词的中文文献摘要部分进行命名实体识别,且进行了对照试验来分析Bi-LSTM-CRF与CRF模型存在的差异。
(1) |
(2) |
(3) |
2)Neo4j图数据库存储。本研究使用Neo4j图数据库进行数据存储,Neo4j是NoSQL数据库中最具代表性的高质量图数据
智能问答系统的设计可以将知识图谱中丰富的结构化语义信息合理地应用,使得人机之间的交互更加高
智能问答系统基于命名实体识别和属性映射两部分实现,整体设计流程如

图4 羊群疾病问答算法整体设计流程图
Fig. 4 Flow chart of overall design of question answering algorithm for herd disease
针对用户在系统中的提问,如:“羊发烧感冒能吃什么药?”。首先确定疾病实体和属性,然后在知识图谱中进行匹配。 “感冒”这个实体通过Bi-LSTM+CRF模型命名实体识别得到,属性通过Bert模型得到。Bert模型可以同时输入A、B两个句子,得到它们的相似度在0~1之间,并根据对应实体取出相似度最高的属性作为结果。
本研究对比了Bi-LSTM-CRF模型和CRF模型对同一数据集的命名实体识别效果,试验结果如
方法Method | P | R | F1 |
---|---|---|---|
CRF | 76.16 | 86.64 | 81.06 |
Bi-LSTM-CRF | 78.75 | 88.06 | 83.16 |
将数据用训练好的Bi-LSTM-CRF模型对采集的数据进行自动标注,通过该模型,最终得到疾病名称实体352个,疾病症状实体3 206个以及治疗方案实体1 429个。通过信息抽取和知识融合等步骤,最终搜集到的数据见表
实体类型 Entity types | 实体数量 The number of entities | 举例 Example |
---|---|---|
诊断结果Check | 914 |
口腔、蹄部皮肤出现水疱和溃烂 Blisters and ulcers on the skin of the mouth and hooves |
疾病类别Department | 8 |
传染病 Infectious disease |
疾病名称Disease | 266 |
口蹄疫 Foot-and-mouth disease |
药物Drug | 750 |
青霉素软膏,磺胺软膏 Penicillin ointment, sulfonamide ointment |
Method 预防措施 | 698 |
保护粘膜、皮肤,做好检疫消毒 Protect mucous membrane, skin, do quarantine disinfection |
疾病症状Symptom | 1 940 |
唇部出现小红斑,口角出现水疱 Small erythema appeared on the lips and blisters appeared at the corner of the mouth |
总计Total | 4 576 | —— |
实体关系类型 Entity relationship types | 举例 Example |
---|---|
属于 Belongs_to |
<口疮,属于,传染病> <Oral sore,belongs_to,infectious disease> |
所需诊断 Need_check |
<口疮,所需诊断,口腔皮肤出现水疱> <Oral sore,need_check,blisters appear on the oral skin> |
推荐药物 Recommend_drug |
<口疮,推荐药物,碘甘油> <Oral sore,recommend_drug,iodine glycerin> |
预防措施Recommend_method |
<口疮,预防措施,做好检疫消毒> <Oral sore,recommend_method,do quarantine disinfection> |
疾病症状Has_symptom |
<口疮,疾病症状,唇部出现小红斑> <Oral sore,has_symptom,small red spots appear on the lipsn> |
疾病症状并发疾病Accompany_with |
<跛行,发生感染,并发疾病,腐蹄病> < Lameness, infection,accompany_with, foot rot > |
将抽取好的数据使用Python逻辑代码转化为json格式,通过读取json文件路径,建立Neo4j数据库连接。对json文件中保存的数据进行判断,将判断后的数据加入到对应的列表中;创建知识图谱的节点和边,并将实体、关系、属性和属性值等信息存储到图数据库Neo4j中。可视化的羊病知识图谱的部分实体和边如

图5 羊群疾病知识图谱中Neo4j实体和关系可视化图
Fig. 5 Neo4j entity and relationship visualization diagram of sheep disease knowledge graph
本研究通过语料库生成4 000个问答语句(如

图6 数据集样例图
Fig. 6 A case diagram of sample dataset
羊群疾病问答系统可以实现以下4个方面的问答:根据症状诊断病情、根据疾病回答疾病症状、根据疾病描述给出治疗方案及根据疾病查询预防措施。例如,用户输入“羊痘的症状有哪些?”,系统则会返回结果,如

图7 羊群疾病问答系统中的问答示例
Fig. 7 Q & A example of sheep disease knowledge graph
本研究构建了羊群疾病的知识图谱,并进行了问答系统的应用。重点采用Bi-LSTM-CRF模型进行命名实体识别,并添加Attention机制,增加关键词的权重,从而实现了高质量的自动抽取过程。羊群疾病问答系统通过Bert模型进行属性映射或者语句相似度计算,实现了比较复杂的问答场景应用。羊群疾病诊断平台通过Web端的形式进行可视化,并通过发送ajax请求,实现了问答系统的交互。用户可以通过该平台查询羊群疾病、治疗方法、预防措施等信息。本研究通过不同来源的数据构建羊群疾病的知识图谱,一方面,拓宽了中文知识图谱的领域范围,将知识图谱应用于畜牧行业垂直领域,为畜牧行业数字化、智能化提供思路。另一方面,填补了羊病知识图谱的空缺,不仅可以为羊群疾病在线诊断平台提供数据支撑,还可以为动物疾病库提供结构化的数据来源,有助于养殖人员科学地管理羊群。此外,在对“中国知网”文献摘要部分进行知识抽取过程中构建了Bi-LSTM-CRF模型,并与模型CRF对比进行效果评价,发现Bi-LSTM-CRF进行实体标注的准确率较高。
在问答系统方面,先分析用户需求及系统需求,然后进行系统总体架构设计,结合图谱构建技术和疾病问答算法,搭建了一个羊群疾病智能诊断平台。其中系统需求被细分为系统功能设计、数据库设计、系统部署和系统功能展示几个部分。平台具有羊群疾病知识构建、羊群疾病检索功能、羊群疾病总体内容和羊群疾病关系问答4个模块,数据层绑定在flask框架中,使用py2neo工具包对Neo4j数据库进行访问,前端页面的设计使用HTML标签,并且结合CSS进行调整。使用JavaScript语言结合Vue框架实现与用户的交互。与传统基于规则匹配的问答系统不同,本系统使用了Bert等模型,通过计算语义和属性之间的相似度,在复杂的问答情景下提高问答的泛化能力,将相似度最高的结果作为答案反馈给用户,从而实现了基于神经网络的智能问答。虽然本研究构建了近2万个实体及关系,但要想成为更加专业的问答系统仍有扩充数据集的必要。此外,问答系统的应用效果也还有进步的空间,未来增加用户及专家反馈模块将更便于系统的优化。
参考文献References
陈勇,李书琴,张平.羊病诊断与防治专家系统的研制与应用[J].动物医学进展,2003,24(5):61-64.CHEN Y,LI S Q,ZHANG P.Development & application of computer diagnosis,prevention and treatment expert system on sheep and goat disease[J].Progress in veterinary medicine,2003,24(5):61-64 (in Chinese with English abstract). [百度学术]
李驰航.基于Web的羊病诊断专家系统关键技术的研究[D].杨凌:西北农林科技大学,2009.LI C H.The research on key technologies of sheep & goat diagnosis expert system based on Web[D].Yangling:Northwest A & F University,2009 (in Chinese with English abstract). [百度学术]
聂艳召.基于案例推理的羊病诊断专家系统研究与实现[D].杨凌:西北农林科技大学,2007.NIE Y Z.The study and implementation of sheep & goat diagosis expert system based on CBR[D].Yangling:Northwest A & F University,2007 (in Chinese with English abstract). [百度学术]
SINGHAL A.Oficial google blog:introducing the knowledge graph:things,not strings[EB/OL].[2012-05-16].https://blog.google/products/search/introducing-knowledge-graph-things-not/. [百度学术]
ABACHA A B,ZWEIGENBAUM P.MEANS:a medical question-answering system combining NLP techniques and semantic Web technologies[J].Information processing & management,2015,51(5):570-594. [百度学术]
GOODWIN T R,HARABAGIU S M.Medical question answering for clinical decision support[C]//Proceedings of the 25th ACM International on Conference on Information and Knowledge Management.New York:ACM,2016:297-306. [百度学术]
SHI L X,LI S J,YANG X R,et al.Semantic health knowledge graph:semantic integration of heterogeneous medical knowledge and services[J/OL].BioMed research international,2017,2017:2858423[2022-12-05].https://doi.org/10.1155/2017/2858423. [百度学术]
KUHN M,LETUNIC I,JENSEN L J,et al.The SIDER database of drugs and side effects[J].Nucleic acids research,2016,44(1):1075-1079. [百度学术]
王雅童.基于知识图谱的兽药知识问答系统研究与实现[D].泰安:山东农业大学,2022.WANG Y T.Research and implementation of veterinary drug knowledge question answering system based on knowledge graph[D].Tai’an: Shandong Agricultural University,2022 (in Chinese with English abstract). [百度学术]
李岩.基于知识图谱的禽畜疾病问答系统分析与设计[D].石家庄:河北经贸大学,2022.LI Y.Analysis and design of livestock disease question answering system based on knowledge graph[D].Shijiazhuang: Hebei University of Economics and Business,2022 (in Chinese with English abstract). [百度学术]
CHEN W,LI Z W,FANG H Y,et al. A benchmark for automatic medical consultation system: frameworks,tasks and datasets[J/OL]. Bioinformatics,2023,39(1):btac817[2022-12-05]. https://doi.org/10.1093/bioinformatics/btac817. [百度学术]
JAFFE A,KLUGER Y,LINDENBAUM O,et al.The spectral underpinning of word2vec[J/OL].Frontiers in applied mathematics and statistics,2020,6:593406[2022-12-05].https://doi.org/10.3389/FAMS.2020.593406. [百度学术]
SHERSTINSKY A. Fundamentals of recurrent neural network (RNN) and long short-term memory (LSTM) network[J/OL]. Physica D: nonlinear phenomena, 2020, 404: 132306[2022-12-05].https://doi.org/10.1016/j.physd.2019.132306. [百度学术]
SIAMI-NAMINI S,TAVAKOLI N,NAMIN A S.The performance of LSTM and BiLSTM in forecasting time series[C]//2019 IEEE International Conference on Big Data (Big Data). Los Angeles,CA,USA:IEEE,2020:3285-3292. [百度学术]
李素建,王厚峰,俞士汶,等.关键词自动标引的最大熵模型应用研究[J].计算机学报,2004,27(9):1192-1197.LI S J,WANG H F,YU S W,et al.Research on maximum entropy model for keyword indexing[J].Chinese journal of computers,2004,27(9):1192-1197 (in Chinese with English abstract). [百度学术]
MNIH V,HEESS N,GRAVES A,et al.Recurrent models of visual attention[DB/OL].arXiv,2014:1406.6247.https://doi.org/10.48550/arXiv.1406.6247. [百度学术]
BAHDANAU D,CHO K,BENGIO Y.Neural machine translation by jointly learning to align and translate[DB/OL].arXiv,2014:1409.0473. https://doi.org/10.48550/arXiv.1409.0473. [百度学术]
GREFF K,SRIVASTAVA R K,KOUTNÍK J,et al.LSTM:a search space odyssey[J].IEEE transactions on neural networks and learning systems,2017,28(10):2222-2232. [百度学术]
VUKOTIC A, WATT N, ABEDRABBO T,et al.Neo4j in action[M]. Manning:Manning Publications Co., 2015:14-17. [百度学术]
TURE F,JOJIC O.Ask your TV:real-time question answering with recurrent neural networks[C]//Proceedings of the 39th International ACM SIGIR conference on Research and Development in Information Retrieval. New York:ACM,2016:457-458. [百度学术]