一种禽畜疾病问诊方法及系统
技术领域
本发明涉及自然语言理解
技术领域
,特别涉及一种禽畜疾病问诊方法及系统。背景技术
近年来,随着物联网的发展,智能产业不断兴起,各种各样的智能化应用,开始出现在人们的生产和生活中,很多行业都有了新的智能技术突破,养殖业也不例外,一直紧跟人工智能+物联网的步伐,迎来了养殖业新时代,那就是-智能养殖业。
在日常生活中的各大养殖类网站平台存在着大量的专家知识,但我们也发现存在很多养殖户遇到的养殖问题没有得到及时的解决,一般养殖户发出一个问题需要几个小时或者几天才能得到回复,通过研究猪养殖户们的日常质询的问题,我们发现,一般来说养殖户们会抛出一些病猪的症状并且这些症状比较常见,与此同时也会给出一些该症状下的一些图片,来询问养殖业专家或者兽医该症状是由什么疾病引起的或者质询专家给出一些解决方法,或者开一些药来解决目前状况,但这些方法存在以下问题:1、回复者的专业知识水平呈次不齐权威性较低真实性无从考证;2、一般来说不能得到比较全面的专业解答一般回复比较精简;3、回复的实时性不高,尤其在一些急性症状上这种缺点是比较致命的。
发明内容
为了解决上述技术问题,本发明提供一种具有专业知识库支撑的、可以对用户问诊问题进行实施回复的、可以减少对话轮数提高问诊效率的禽畜疾病问诊方法及系统,本发明技术方案如下:
一种禽畜疾病问诊方法,包括以下步骤:
S1:用户通过对话框输入对话内容;
S2:后台接收用户对话内容,基于自然语言理解技术对用户对话内容进行分析,若用户对话内容中信息不全,则通过对话框向用户提出信息补充,直至用户意图以及症状描述信息齐全;
通过对话框向用户提出症状补充的方法具体为:通过调用疾病知识库对所述用户的症状描述进行症状扩充,生成症状列表,向用户确认症状列表中的症状是否存在,直至根据症状列表中的症状可以会诊出该禽畜可能罹患的疾病;
所述疾病知识库的构建方法为:
利用爬虫技术从禽畜专业网站上获取疾病数据,提取疾病数据中的症状以及症状实例,构建成疾病知识库,所述疾病知识库包括:疾病-症状关系表、疾病-症状类型关系表以及症状-症状类型关系表;
S3:通过对话框向用户返回该禽畜可能罹患的疾病。
其中,所述步骤S2中通过疾病知识库对所述用户描述的症状信息进行症状扩充的方式包括以下步骤:
对所述用户描述的症状进行同义词泛化,通过疾病知识库中的疾病-症状关系表匹配出经过同义词泛化后的症状可能对应的疾病;
通过疾病知识库中的疾病-症状类型关系表匹配出所述可能对应的疾病对应的症状类型;通过疾病知识库中的症状-症状类型关系表匹配出所述症状类型下的所有症状,生成症状列表。
其中,所述步骤S2中通过对话框向用户分别确认症状列表中的每种症状是否存在,采用的对话策略包括以下步骤:
基于疾病知识库,对症状列表中的所有症状进行疾病匹配,生成候选疾病-症状二维表,具体为,当症状列表中的任意一种或几种症状属于某种疾病所产生的症状,则认为匹配上了该疾病,将匹配出的疾病与其对应的所有症状依次列出,生成候选疾病-症状二维表;
对候选疾病-症状二维表中的症状维度的每种症状数量进行统计,将统计出处于中位数的症状作为询问问题向用户确认该症状是否存在;
接收用户的回复,确认症状是否存在后,更新候选疾病-症状二维表,重复上一步骤,确定向用户提出的询问问题,直至候选疾病-症状二维列表中所有的候选疾病的症状均得到确认。
其中,所述步骤S2中基于自然语言理解技术对用户对话内容进行分析的方法具体为:
后台基于自然语言理解技术分析用户对话内容中的用户意图、内容实体以及实体类型;
将相同实体类型下的实体进行统一,具体为,根据相同实体类型下的两两实体间的文本编辑距离相似度和词嵌入相似度计算其加权平均值,当加权平均值超过阈值则认为该两个实体相同。
其中,将疾病问诊信息作为疾病知识库的疾病数据,利用其进行学习后对疾病知识库进行扩充。
其中,所述步骤S2后台接收用户对话内容后,还包括:记录并保存当前后台调用算法库情况、执行的动作情况以及记录当前的对话轮数。
其中,所述疾病知识库的构建方法还包括以下步骤:
提取疾病数据中的症状以及症状实例,对所述症状实例进行分类归纳,对所述症状进行归一化处理,生成csv表格作为疾病知识库。
其中,所述用户通过互联网对话框输入对话内容,所述对话的输入形式为文字输入或者语音输入。
其中,所述禽畜为猪,所述禽畜专业网站为猪专业的知识网站。
一种禽畜疾病问诊机器人系统,包括:
调度管理单元,用于接收用户的对话内容,将对话内容输入到语义理解单元进行语义分析,接收语义理解单元返回的症状描述;调用疾病知识库单元,对用户描述的症状信息进行症状扩充,生成症状列表,若根据症状描述以及症状列表可以会诊出该禽畜可能罹患的疾病,则将疾病诊断结果返回给用户,若不能,则将症状描述以及症状列表输出给对话管理单元生成对症状列表中的症状确认的对话内容;接收到对话管理单元输出的关于症状确认的对话内容后,将对话内容返回给用户,等待用户的回复;
语义理解单元,基于自然语言理解技术分析用户对话内容中的用户意图、内容实体以及实体类型,并从中提取出用户描述的症状信息;
疾病知识库单元,用于存储利用爬虫技术从禽畜专业网站上获取疾病数据并提取疾病数据中的症状以及症状实例而构建成的信息集,包括:疾病-症状关系表、疾病-症状类型关系表以及症状-症状类型关系表;
对话管理单元,接收到症状描述以及症状列表后,根据预设的对话策略,生成向用户确认症状列表中的症状是否存在的对话内容并输出。
与现有技术相比,本发明的有益效果如下:
本发明基于各大专业的养殖网站获取各种疾病的相关知识构建疾病知识库(疾病和症状的知识图谱)作为知识支撑,通过对论坛中的养殖户的问题进行意图分类用于问答系统的意图理解;可以对绝大多数的禽畜疾病作出专业的回复,另一方面,通过对症状进行扩充,全面的考虑到可能存在的疾病以及可能发生的症状,利用扩充后的症状列表进行提问,有的放矢的对疾病进行排查;
采用症状维度中症状数量的中位数症状对用户进行提问,确认该症状的情况,无论用户回答是或者否,均可排除了一半的疾病,从而达到减少对话轮数的效果;
利用问诊过程中产生的信息来扩充疾病知识库的训练数据,以此来诊断猪病诊断,相比于现有方法,本发明实时性强精度高内容完善,并且可以根据真实的用回反馈来迭代模型让问诊系统越来越“聪明”。
附图说明
图1为本发明禽畜疾病诊断方法的流程图;
图2为本发明实施例中获取到的疾病数据经过标注后的示意图;
图3为本发明实施例中疾病知识库中猪疾病-症状关系表示意图;
图4为本发明实施例中疾病知识库中猪疾病-症状类型关系表示意图;
图5为本发明实施例中疾病知识库中猪症状-症状类型关系表示意图;
图6为猪疾病问诊聊天实例示意图;
图7为猪疾病问诊的对话流程框图;
图8为禽畜疾病问诊系统结构框图。
图中,1-调度管理单元,2-语义理解单元,3-疾病知识库单元,4-对话管理单元。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
参见图1,本发明提供一种禽畜疾病问诊方法,包括以下步骤:
S1:用户通过对话框输入对话内容;
S2:后台接收用户对话内容,基于自然语言理解技术对用户对话内容进行分析,若用户对话内容中信息不全,则通过对话框向用户提出信息补充,直至用户意图以及症状描述信息齐全;
通过对话框向用户提出症状补充的方法具体为:通过调用疾病知识库对所述用户的症状描述进行症状扩充,生成症状列表,向用户确认症状列表中的症状是否存在,直至根据症状列表中的症状可以会诊出该禽畜可能罹患的疾病;
本发明基于自然语言理解技术对对话内容进行分析,采取的方法包括使用word2vec,Minimum Edit Distance的算法对用户输入的对话内容进行处理,提高口语理解能力的和症状的理解能力。
所述疾病知识库的构建方法为:
利用爬虫技术从禽畜专业网站上获取疾病数据,提取疾病数据中的症状以及症状实例,构建成疾病知识库,所述疾病知识库包括:疾病-症状关系表、疾病-症状类型关系表以及症状-症状类型关系表;
S3:通过对话框向用户返回该禽畜可能罹患的疾病。
本发明的禽畜问诊方法适用对象为所有养殖的家禽家畜,本发明的一种实施例中,所述禽畜类型为猪,数据来源为猪专业的知识网站;
本实施例中,所述疾病知识库的构建方法还包括以下步骤:
提取疾病数据中的症状以及症状实例,对所述症状实例进行分类归纳,对所述症状进行归一化处理,例如:眼睛红肿经过归一化则变为眼睛红,眼睛肿,疾病数据进行处理后形成的列表参见图2(仅部分数据),进行人工标注,标签包括:猪的疾病和该疾病分类、该疾病下的文本、症状分类、该症状名称,标注后作为训练数据对模型进行训练,最终利用模型生成csv表格作为疾病知识库。
疾病知识库参见图3至图5,图3为猪疾病-症状关系表,第一列为猪的疾病,第二列到最后一列为该疾病所对应的症状、图4为猪疾病-症状类型关系表,第一列为猪的疾病,第二列到最后一列为该疾病所对应症状的症状类型英文简称,图5为猪症状-症状类型关系表,第一个值是猪的症状,第二个值是该症状的症状类型英文简称;收录了135中常见猪病问题,1300+中症状基本上可以覆盖大多养殖户对需求。
优选的,将疾病问诊过程产生的信息作为疾病知识库的疾病数据,利用其进行学习后对疾病知识库进行扩充。
参见图6,猪疾病问诊聊天实例,通过对话,确认了用户意图为,公猪、仔猪的疾病咨询,而后分别向用户确认了食欲废绝、腹泻、精神沉郁症状,根据这些症状,诊断可能患有猪流行性感冒。
优选的,所述步骤S2中通过疾病知识库对所述用户描述的症状信息进行症状扩充的方式包括以下步骤:
对所述用户描述的症状进行同义词泛化,通过疾病知识库中的疾病-症状关系表匹配出经过同义词泛化后的症状可能对应的疾病;当某种疾病可能会引发该症状,则认为该疾病为该症状可能对应的疾病;
通过疾病知识库中的疾病-症状类型关系表匹配出所述可能对应的疾病对应的症状类型;一种疾病可能对应了多种症状类型,例如,仔猪低血糖病,对应的症状类型有体温症状、饮食症状、眼部症状、皮肤症状等等,因此匹配出的症状类型有多种;
通过疾病知识库中的症状-症状类型关系表匹配出所述症状类型下的所有症状,生成症状列表。一种症状类型下可能有多种症状,例如,参见图5,症状类型‘abdomen_sym’下有“腹部收缩”、“腹部增大”、“腹部糜烂”、“腹部圆鼓”等多种症状。因此,通过扩展后的症状列表,全面的将可能的症状罗列出来,以供后续的诊断。
优选的,所述步骤S2中通过对话框向用户分别确认症状列表中的每种症状是否存在的方法具体包括:
基于疾病知识库,对症状列表中的所有症状进行疾病匹配,生成候选疾病-症状二维表,具体为,当症状列表中的任意一种或几种症状属于某种疾病所产生的症状,则认为匹配上了该疾病,将匹配出的疾病与其对应的所有症状依次列出,生成候选疾病-症状二维表;
对症状列表中的所有症状进行疾病匹配,采用的其中一种方式为:假设扩充后的症状列表中有10种症状,对这10种症状进行排列组合,对排列组合后的所有组合进行疾病匹配,即,当该组症状为某种疾病可能会引发的症状中的任意一种或几种,则认为该疾病为该组症状可能对应的疾病,而后将疾病名称以及症状名称补充完整,经过排除重复项等处理后,则,补全后的症状、以及对应的疾病列表为候选疾病-症状二维表,包括候选疾病和症状两个维度。
基于候选疾病-症状二维表通过对话进行症状确认,对候选疾病-症状二维表中的症状维度的每种症状数量进行统计,将统计出处于中位数的症状作为询问问题向用户确认该症状是否存在;
接收用户的回复,确认症状是否存在后,更新候选疾病-症状二维表,重复上一步骤,确定向用户提出的询问问题,直至候选疾病-症状二维列表中所有的候选疾病的症状均得到确认。
采用症状维度中症状数量的中位数症状对用户进行提问,确认该症状的情况,无论用户回答是或者否,均可排除了一半的疾病,从而达到减少对话轮速的效果,经过多次实验,该方法可以将轮数降低原先的1/4。
参见图7,问诊的对话流程图,在完成会诊任务后,后台还会给用户推荐相关疾病的资料,供用户了解该疾病的情况以及一些应对措施等。
优选的,本发明实施例的步骤S2中基于自然语言理解技术对用户对话内容进行分析的方法具体为,后台基于自然语言理解技术分析用户对话内容中的用户意图、内容实体以及实体类型;
将相同实体类型下的实体进行统一,具体为,根据相同实体类型下的两两实体间的文本编辑距离相似度和词嵌入相似度计算其加权平均值,当加权平均值超过阈值则认为该两个实体相同。
优选地,所述步骤S2后台接收用户对话内容后,还包括:记录并保存当前后台调用算法库情况、执行的动作情况以及记录当前的对话轮数。
优选的,所述用户通过互联网对话框输入对话内容,所述对话的输入形式为文字输入或者语音输入。
另一方面,参见图8,本发明还提供一种禽畜疾病问诊系统,包括:
调度管理单元1,用于接收用户的对话内容,将对话内容输入到语义理解单元2进行语义分析,接收语义理解单元返回的症状描述;调用疾病知识库单元3,对用户描述的症状信息进行症状扩充,生成症状列表,若根据症状描述以及症状列表可以会诊出该禽畜可能罹患的疾病,则将疾病诊断结果返回给用户,若不能,则将症状描述以及症状列表输出给对话管理单元生4成对症状列表中的症状确认的对话内容;接收到对话管理单元4输出的关于症状确认的对话内容后,将对话内容返回给用户,等待用户的回复;
语义理解单元2,基于自然语言理解技术分析用户对话内容中的用户意图、内容实体以及实体类型,并从中提取出用户描述的症状信息;
疾病知识库单元3,用于存储利用爬虫技术从禽畜专业网站上获取疾病数据并提取疾病数据中的症状以及症状实例而构建成的信息集,包括:疾病-症状关系表、疾病-症状类型关系表以及症状-症状类型关系表;
对话管理单元4,接收到症状描述以及症状列表后,根据预设的对话策略,生成向用户确认症状列表中的症状是否存在的对话内容并输出。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:用于辅助疾病推理的系统及存储介质