发明内容
为了解决上述技术问题,本发明实施例提供了一种医疗搜索语句的处理方法、装置和设备,以使得即使对于不太具备医疗专业知识的普通用户输入的医疗搜索语句,也能够进行精确的处理,精准的获得用户的真实搜索意图,从而可以反馈给用户其真正需要的、有参考价值的电子病历,提高了电子病历存在的意义和价值。
第一方面,提供了一种医疗搜索语句的处理方法,包括:
基于已有的医疗字典,从用户输入的医疗搜索语句中提取医疗词汇和所述医疗词汇对应的描述词汇组;
利用医疗病历模型的字段统计结果,根据所述医疗词汇和所述描述词汇组计算每个电子病历的目标权重;
基于所述目标权重将所述医疗搜索语句转换为机器搜索语句。
可选地,所述从用户输入的医疗搜索语句中提取医疗词汇和所述医疗词汇对应的描述词汇组,包括:
利用标点符号对所述医疗搜索语句进行断句,得到至少一个第一短句;
从各所述第一短句中分别挖掘所述医疗字典中已记载的医疗词汇;
剔除各所述第一短句中的挖掘到的所述医疗词汇,得到各所述第一短句对应的第二短句;
对各所述第二短句进行分词,得到各医疗词汇对应的描述词汇组。
可选地,所述目标权重,具体为下述权重之和:表示所述医疗词汇在所述医疗病历模型包括的字段中分布的第一目标权重,表示所述描述词汇组在所述医疗病历模型的病历文书包括的字段中分布的第二目标权重,以及,表示所述医疗词汇之间关联程度的第三目标权重。
可选地,计算所述第一目标权重,包括:
在所述医疗病历模型的字段统计结果中,查找每个所述医疗词汇在所述医疗病历模型包括的各字段中的频率;
对于每个所述医疗词汇,计算该医疗词汇在每个所述字段中出现的频率占该医疗词汇在所有所述字段中出现的总频率的比例,记作该医疗词汇在每个所述字段中分布的第一权重;
将所述医疗搜索语句中的所有所述医疗词汇的所述第一权重相加,得到电子病历的所述第一目标权重。
可选地,计算所述第二目标权重,包括:
将每个所述医疗词汇在每个所述字段中分布的所述第一权重,以及所述医疗词汇对应的描述词汇组均映射到所述病历文书中;
对于每个所述描述词汇组,确定映射到所述病历文书中的、该描述词汇组对应的所述医疗词汇在每个所述字段中分布的所述第一权重,为该描述词汇组在所述病历文书的每个所述字段中分布的第二权重;
将所述医疗搜索语句中的所有所述描述词汇组的所述第二权重相加,得到所述第二目标权重。
可选地,计算所述第三目标权重,包括:
在所述医疗病历模型的字段统计结果中,查找出所述搜索语句中所有的所述医疗词汇中,存在关联关系的第一医疗词汇和第二医疗词汇;
计算所述第一医疗词汇和第二医疗词汇关联关系出现的频率占所有包括所述第一医疗词汇和/或所述第二医疗词汇的关联关系出现的总频率的比例,记作所述第一医疗词汇和所述第二医疗词汇之间的第三权重;
将所述医疗搜索语句中的所有所述医疗词汇的所述第三权重相加,得到所述第三目标权重。
可选地,所述基于所述目标权重将所述医疗搜索语句转换为机器搜索语句,包括:
将所述医疗病历模型中的每个所述目标权重分别映射到所述医疗病历模型对应的所述电子病历中,得到处理后的医疗病历模型;
基于所述处理后的医疗病历模型,将所述医疗搜索语句转换成query语句,实现对所述医疗搜索语句的搜索。
可选地,该方法还包括:
获得搜索结果,所述搜索结果中包括符合下述情况的电子病历:所述目标权重大于预设权重阈值的所有电子病历,或者,所述目标权重最大的前预设个数个电子病历;
基于所述目标权重,显示所有的所述搜索结果。
第二方面,还提供了一种医疗搜索语句的处理装置,包括:
提取单元,用于基于已有的医疗字典,从用户输入的医疗搜索语句中提取医疗词汇和所述医疗词汇对应的描述词汇组;
计算单元,用于利用医疗病历模型的字段统计结果,根据所述医疗词汇和所述描述词汇组计算每个电子病历的目标权重;
转换单元,用于基于所述目标权重将所述医疗搜索语句转换为机器搜索语句。
可选地,所述提取单元,包括:
断句子单元,用于利用标点符号对所述医疗搜索语句进行断句,得到至少一个第一短句;
挖掘子单元,用于从各所述第一短句中分别挖掘所述医疗字典中已记载的医疗词汇;
剔除子单元,用于剔除各所述第一短句中的挖掘到的所述医疗词汇,得到各所述第一短句对应的第二短句;
分词子单元,用于对各所述第二短句进行分词,得到各医疗词汇对应的描述词汇组。
可选地,所述目标权重,具体为下述权重之和:表示所述医疗词汇在所述医疗病历模型包括的字段中分布的第一目标权重,表示所述描述词汇组在所述医疗病历模型的病历文书包括的字段中分布的第二目标权重,以及,表示所述医疗词汇之间关联程度的第三目标权重。
可选地,所述计算单元,包括:
第一查找子单元,用于在所述医疗病历模型的字段统计结果中,查找每个所述医疗词汇在所述医疗病历模型包括的各字段中的频率;
第一计算子单元,用于对于每个所述医疗词汇,计算该医疗词汇在每个所述字段中出现的频率占该医疗词汇在所有所述字段中出现的总频率的比例,记作该医疗词汇在每个所述字段中分布的第一权重;
第二计算子单元,用于将所述医疗搜索语句中的所有所述医疗词汇的所述第一权重相加,得到电子病历的所述第一目标权重。
可选地,所述计算单元,包括:
映射子单元,用于将每个所述医疗词汇在每个所述字段中分布的所述第一权重,以及所述医疗词汇对应的描述词汇组均映射到所述病历文书中;
确定子单元,用于对于每个所述描述词汇组,确定映射到所述病历文书中的、该描述词汇组对应的所述医疗词汇在每个所述字段中分布的所述第一权重,为该描述词汇组在所述病历文书的每个所述字段中分布的第二权重;
第三计算子单元,用于将所述医疗搜索语句中的所有所述描述词汇组的所述第二权重相加,得到所述第二目标权重。
可选地,所述计算单元,包括:
第二查找子单元,用于在所述医疗病历模型的字段统计结果中,查找出所述搜索语句中所有的所述医疗词汇中,存在关联关系的第一医疗词汇和第二医疗词汇;
第四计算子单元,用于计算所述第一医疗词汇和第二医疗词汇关联关系出现的频率占所有包括所述第一医疗词汇和/或所述第二医疗词汇的关联关系出现的总频率的比例,记作所述第一医疗词汇和所述第二医疗词汇之间的第三权重;
第五计算子单元,用于将所述医疗搜索语句中的所有所述医疗词汇的所述第三权重相加,得到所述第三目标权重。
可选地,所述转换单元,包括:
获得子单元,用于将所述医疗病历模型中的每个所述目标权重分别映射到所述医疗病历模型对应的所述电子病历中,得到处理后的医疗病历模型;
转换子单元,用于基于所述处理后的医疗病历模型,将所述医疗搜索语句转换成query语句,实现对所述医疗搜索语句的搜索。
可选地,该装置还包括:
获得单元,用于获得搜索结果,所述搜索结果中包括符合下述情况的电子病历:所述目标权重大于预设权重阈值的所有电子病历,或者,所述目标权重最大的前预设个数个电子病历;
显示单元,用于基于所述目标权重,显示所有的所述搜索结果。
第三方面,还提供了一种医疗搜索语句的处理设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述第一方面提供的所述方法。
第四方面,还提供了一种存储介质,其特征在于,所述存储介质用于存储程序代码,所述程序代码用于执行上述第一方面提供的所述方法。
在本发明实施例中,提供了一种医疗搜索语句的处理方法,通过构建较为全面的医疗字典,得到搜索语句中的医疗词汇和描述词汇组,以及利用对预先建立的医疗病历模型中的字段进行分析、统计所得的统计结果,根据医疗词汇和描述词汇组计算每个电子病历的目标权重,最后,基于目标权重将医疗搜索语句转换为机器搜索语句,这样,即使对于不太具备医疗专业知识的普通用户输入的医疗搜索语句,也能够进行精确的处理,精准的获得用户的真实搜索意图,从而按照真正的搜索意图转换为机器可以识别的机器搜索语句,即可反馈给用户其真正需要的、有参考价值的电子病历,提高了电子病历存在的意义和价值。
具体实施方式
目前,随着信息化的飞速发展,电子病历作为临床医学的载体以及医院信息系统的核心,是医疗领域最主要的数据之一。针对累积的大量电子病历,发明人经过研究发现,如果可以通过简单的搜索和查看等操作,累积的电子病历就可以快速高效的服务于临床科研、服务于广大患者,这样,电子病历将发挥更有意义的作用。
但是,当前搜索电子病历所采用的技术,一般包括:第一种,通过对搜索语句进行分词,并对分词结果进行全文检索。作为一个例子,该分析搜索方法的具体过程可以包括:首先,对输入的搜索语句进行词性标注,得到标注后的结果,例如:假设输入的搜索语句为“高血压病史2月余,规律口服氨氯地平,血压控制可”,标注后结果为“高血压/n病史/n2月/t余/ng,/wd规律/n口服/vn氨氯地平/n,/wd血压/n控制/v可/v。/wj”;然后,将标注后的结果去除停用词,并选择第三方分词工具,并在其语料集中加入医疗知识字典中的词语,例如:高位截瘫、高温一起的溶血性贫血、高心病、高雄激素血症、高血压、高血压1级、高血压1级低危等,训练出适用于医疗领域的分词工具;接着,将标注后的结果,输入到已训练好的适用于医疗领域的分词工具,得到对搜索语句的分词结果;最后,按照分词结果并且的关系在所有的电子病历中进行全文搜索。这样,相当依赖分词工具的准确率,一旦分词工具的准确率较低,就可能导致分词结果不够准确,从而造成搜索结果不准确;而且,这种模糊的搜索,任何类型的文件都可能会被匹配到,极易获得用户并不想要的搜索结果。
第二种,考虑到医疗领域是专业性很强的领域,为了提高搜索的准确率,可以预先构建医疗字典,将各种疾病的名称、药物的名称、症状的描述等医疗词汇收录其中,这样,可以先将搜索语句中包括的医疗词汇挖掘出来,再将挖掘所得的各个医疗词按照并且的关系在所有的电子病历中进行全文搜索。这样,类似第一种搜索方法,任何类型的文件都可能会被匹配到,只搜索医疗词汇,而忽略了搜索语句中的其他限定,例如:用户搜索语句中明确限定“既往史”中的病,但是搜索结果很可能包括该疾病出现在“首页诊断”中的电子病历,这样搜索结果不符合用户真正的搜索意图没,也不是想要的。
第三种,构建医疗精准搜索平台,将电子病历中的结构化数据和非结构化数据按照医疗病历模型进行结构化存储后,可以在构建好的医疗精准搜索平台,选择各个字段,进行组合查询,得到符合用户意图的电子病历。这样的搜索方式虽然可以得到较为精准的搜索结果,但是,不仅比较依赖医疗专业知识,而且需要了解电子病例的数据结构从而可以准确找到想要搜索的字段,较为适用于医疗工作者,对于普通的用户则存在很大的局限性,无法方便大众。
基于此,为了解决上述技术问题,本发明实施例提供了一种医疗搜索语句的处理方法,通过构建较为全面的医疗字典,得到搜索语句中的医疗词汇和描述词汇组,以及利用对预先建立的医疗病历模型中的字段进行分析、统计所得的统计结果,根据医疗词汇和描述词汇组计算每个电子病历的目标权重,最后,基于目标权重将医疗搜索语句转换为机器搜索语句,这样,即使对于不太具备医疗专业知识的普通用户输入的医疗搜索语句,也能够进行精确的处理,精准的获得用户的真实搜索意图,从而按照真正的搜索意图转换为机器可以识别的机器搜索语句,即可反馈给用户其真正需要的、有参考价值的电子病历,提高了电子病历存在的意义和价值。
由于医疗领域相对较为专业,为了后续可以更加清楚和方便的介绍本发明实施例,首先对本发明实施例中涉及的专业名称进行解释和说明。
1)电子病历(英文:Electronic Medical Record,简称:EMR):是指以电子化方式管理的有关患者个人终生健康状态和医疗保健行为的信息,尤其包括患者在医院诊断治疗全过程的原始记录,它包含有病案首页、病程记录、检查检验结果、医嘱、手术记录、护理记录等等。EMR不仅包括静态病历信息,还包括提供的相关服务,涉及患者信息的采集、存储、传输、处理和使用。作为一个实例,图1示出了真实的一种电子病历的示意图。
2)医疗字典:在医疗领域,常用的词库有疾病、症状、手术、药品、检验、检查等六大类,针对每一类均可收集对应的医疗词汇并创建对应部分的医疗词库,将所有的医疗词库汇总为医疗字典。例如:疾病词库可以包括:冠状动脉粥样硬化性心脏病、高血压等,症状词库可以包括:发热、头疼等,手术词库可以包括:心脏介入手术、胸腔镜手术等,药品词库可以包括:阿司匹林、阿托伐他汀钙等,检验词库可以包括:红细胞、白细胞等,检查词库可以包括:心电图、超声等。
3)医疗病历模型:是指基于电子病历数据,根据适用的场景定义了结构化的数据结构,将电子病历数据,按照定义好的数据结构进行存储。作为一个实例,表1示出了真实的一种医疗病历模型的示例:
表1
4)权重:权重是指某一因素或指标相对于某一事物的重要程度,体现的不仅仅是某一因素或指标所占的百分比,而且强调该因素或指标的相对重要程度,倾向于贡献度或重要性。通常,权重可通过划分多个层次指标进行判断和计算,常用的方法包括:层次分析法、模糊法、模糊层次分析法和专家评价法等。
5)自然语言处理(英文:Natural Language Processing,简称:NLP):是计算机科学领域与人工智能领域中的一个重要方向,主要研究如何更好的实现人与计算机之间用自然语言进行有效通信的各种理论和方法,通俗的理解,NLP就是让计算机理解人们日常所使用的语言的一门涵盖语言学、计算机科学、数学等的交叉科学。
6)结构化数据:目前数据分为结构化数据、半结构化数据和非结构化数据。其中,结构化的数据是指可以使用关系型数据库表示和存储的、表现为二维形式的数据;非结构化数据是指没有固定结构的数据,例如图片、文档等;半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层,半结构化数据也被称为自描述结构的数据,常见的半结构化数据包括:XML和JSON。
7)关联分析:又称关联挖掘,是一种简单、实用的分析技术,用于发现存在于大量数据集中的关联性或相关性,从而描述一个事物中某些属性同时出现的规律和模式。例如:分析“胸闷”是否为“冠心病”的常见症状。
8)自然语句搜索:基于对人为输入的自然语句进行挖掘解析,转换成可以让搜索工具进行有效搜索的语句,进行搜索并反馈与该自然语句准确对应的搜索结果。
下面结合附图,通过实施例来详细说明本发明实施例中一种医疗搜索语句的处理方法的具体实现方式。
图2示出了本发明实施例提供的一种医疗搜索语句的处理方法的流程示意图。参见图2,该方法具体可以包括:
步骤201,基于已有的医疗字典,从用户输入的医疗搜索语句中提取医疗词汇和所述医疗词汇对应的描述词汇组。
可以理解的是,用户输入的医疗搜索语句一般为自然语言,表达的方式和语序不固定,为了可以准确的识别出用户的搜索意图,需要将该搜索语句中包括的信息尽可能全面的挖掘出来。在医疗搜索语句中,一般包括医疗词汇和其相关的描述词汇。例如:假设用户输入的搜索语句为“患有不稳定型心绞痛病史2年,一直服用瑞舒伐他汀钙,最近发现胸闷并伴有头晕”,其中,医疗词汇包括:不稳定型心绞痛、瑞舒伐他汀钙、胸闷和头晕,其余均为描述词汇。
需要说明的是,对于医疗搜索语句中出现的每个医疗词汇,可以对应于一个描述词汇组,该描述词汇组中可以包括0个描述词汇、1个描述词汇或者多个描述词汇,在本发明实施例中不作具体限定。
具体实现时,步骤201实现的具体过程可以包括:第一步:基于医疗字典中各部分医疗词库,挖掘用户输入的医疗搜索语句中包括的医疗词汇;第二步,从医疗搜索语句中确定每个医疗词汇对应的描述词汇组。
作为一个示例,如图3所示,步骤201具体可以通过下述步骤实现:
步骤31,利用标点符号对所述医疗搜索语句进行断句,得到至少一个第一短句。
可以理解的,一种情况下,如果该医疗搜索语句的末尾标点符号计作该医疗搜索语句的标点符号,那么,进行断句后得到的第一短句的数量,可以等于该医疗搜索语句中标点符号的数量。另一种情况下,如果该医疗搜索语句的末尾标点符号不计作该医疗搜索语句的标点符号,那么,进行断句后得到的第一短句的数量,可以等于该医疗搜索语句中标点符号的数量加一。
例如:假设用户输入的医疗搜索语句为“患有不稳定型心绞痛病史2年,一直服用瑞舒伐他汀钙,最近发现胸闷并伴有头晕”,则可以识别出该医疗搜索语句中包括两个标点符号,均为“,”,那么,根据步骤31,对该医疗搜索语句进行断句,得到3个第一短句,分别为:“患有不稳定型心绞痛病史2年”、“一直服用瑞舒伐他汀钙”和“最近发现胸闷并伴有头晕”。
步骤32,从各所述第一短句中分别挖掘所述医疗字典中已记载的医疗词汇。
可以理解的是,第一短句中,可以包括一个医疗词汇,也可以包括多个医疗词汇。例如:第一短句“患有不稳定型心绞痛病史2年”中,包括录入医疗字典的疾病词库中的“不稳定型心绞痛”;再例如:第一短句“一直服用瑞舒伐他汀钙”中,包括录入医疗字典的药品词库中的“瑞舒伐他汀钙”;又例如:第一短句“最近发现胸闷并伴有头晕”中,包括录入医疗字典的症状词库中的“胸闷”和“头晕”。
需要说明的是,还可以借助医疗同义词字典,对医疗搜索语句中的医疗词汇进行识别和确定。医疗同义词字典中,包括许多疾病、药品、症状等的多词一意的对应关系,例如:该医疗同义词字典中包括:“小肠过敏性紫癜”和“小肠变态反应性紫癜”代表同一疾病,“不稳定性心绞痛”、“不稳定心绞痛”和“不稳定型心绞痛”代表同一疾病。
步骤33,剔除各所述第一短句中的挖掘到的所述医疗词汇,得到各所述第一短句对应的第二短句。
例如:对于第一短句“患有不稳定型心绞痛病史2年”,去除步骤32中挖掘到的医疗词汇“不稳定型心绞痛”,得到第二短句“患有病史2年”;再例如:对于第一短句“一直服用瑞舒伐他汀钙”,去除步骤32中挖掘到的医疗词汇“瑞舒伐他汀钙”,得到第二短句“一直服用”;又例如:对于第一短句“最近发现胸闷并伴有头晕”,去除步骤32中挖掘到的医疗词汇“胸闷”和“头晕”,得到第二短句“最近发现并伴有”。
需要说明的是,对于包括多个医疗词汇的第一短句,也可以以医疗词汇对该第一短句进行再次断句,得到数目与该第一短句中包括的医疗词汇的个数相同的第二短句。例如:对于第一短句“最近发现胸闷并伴有头晕”,去除步骤32中挖掘到的医疗词汇“胸闷”和“头晕”,也可以得到2个第二短句“最近发现”和“并伴有”。
步骤34,对各所述第二短句进行分词,得到各医疗词汇对应的描述词汇组。
例如:对第二短句“患有病史2年”进行分词,得到医疗词汇“不稳定型心绞痛”对应的描述词汇组“患有病史2年”;再例如:对“一直服用”进行分词,得到医疗词汇“瑞舒伐他汀钙”对应的描述词汇组“一直服用”;又例如:对第二短句“最近发现”进行分词,得到医疗词汇“胸闷”对应的描述词汇组“最近发现”,同理,对第二短句“并伴有”进行分词,得到医疗词汇“头晕”对应的描述词汇组“并伴有”。
如此,经过上述步骤31~步骤34的处理,即可从用户输入的医疗搜索语句中准确的提取出其中的至少一个医疗词汇和每个医疗词汇对应的描述词汇组,为后续进行得到符合用户意图的机器搜索语句,从而反馈给用户需要的电子病历数据提供了准确的数据基础。
步骤202,利用医疗病历模型的字段统计结果,根据所述医疗词汇和所述描述词汇组计算每个电子病历的目标权重。
可以理解的是,医疗病历模型,是将其包括大量电子病历按照一定的结构进行存储形成的数据模型。结构化处理后的电子病历,包括许多字典,本发明实施例中,预先对该医疗病历模型中所有结构化处理后的电子病历的字段进行归类分析和统计,得到医疗病历模型的字段统计结果。
作为一个示例,预先对医疗病历模型的字段进行归类分析和统计,得到医疗病历模型的字段统计结果的过程,具体可以包括:
第一步,将医疗病历模型中的与医疗字典相关的字段归类分析出来,例如:疾病={首页诊断-诊断名称,入院记录-既往史-疾病名称,上级医师查房录-疾病名称...},症状={入院记录-主诉-症状名称,入院记录-主诉-伴随症状名称,入院记录-现病史-症状名称...},药品={医嘱-药品名称,入院记录-现病史-药品名称…},等等。其中,首页诊断、入院记录、上级医师查房录、医嘱等为病历文书。
第二步,基于海量的电子病历数据的半结构化结果,统计出医疗字典中的医疗词汇在其相关字段中的分布情况,例如:对于医疗字典的疾病词库中的不稳定型心绞痛,在其相关字段:首页诊断-诊断名称、入院记录-既往史-疾病名称、上级医师查房录-疾病名称和日常病程记录-疾病名称的分布情况分别可以是:不稳定型心绞痛(包括其同义词)对应各字段的-{首页诊断-诊断名称=1000,入院记录-既往史-疾病名称=800,上级医师查房录-疾病名称=500,日常病程记录-疾病名称=100},通过:(该疾病在每个字段出现的频率(即个数)/总频率(即总数))计算,得出该疾病在每个字段的第一权重,例如:对于字段“首页诊断-诊断名称”,其对应的第一权重可以等于(1000/(1000+800+500+100))=0.42;对于字段“入院记录-既往史-疾病名称”,其对应的第一权重可以等于(800/(1000+800+500+100))=0.33;对于字段“上级医师查房录-疾病名称”,其对应的第一权重可以等于(500/(1000+800+500+100))=0.21;对于字段“日常病程记录-疾病名称”,其对应的第一权重可以等于(100/(1000+800+500+100))=0.04。
第三步,对于医疗词汇对应的描述词汇组,为了在确保结果准确的基础上节约计算量,可以将第二步统计得到的每个医疗词汇的第一权重分别映射到其对应的描述词汇组在所述医疗病历模型的病历文书上,作为该病历文书包括的字段中分布的第二权重,例如:对于医疗词汇“不稳定型心绞痛”对应的描述词汇组“患有病史两年”在病历文书包括的各字段中分布的第二权重分别为:对于字段“首页诊断”,其对应的第二权重可以等于0.42;对于字段“入院记录”,其对应的第二权重可以等于0.33;对于字段“上级医师查房录”,其对应的第二权重可以等于0.21;对于“日常病程记录”,其对应的第二权重可以等于0.04。
第四步,在医疗领域,医疗词汇之间(例如:疾病和症状、疾病和药品、以及症状和药品之间),均可能存在一定的关联关系,那么,可以构建医疗词汇之间关联关系:首先,将医疗病历模型中的字段中与医疗字典中的医疗词汇具有关联关系的关联组合分析出来,例如:{入院记录-既往史-疾病名称,入院记录-既往史-症状名称},{入院记录-主诉-症状名称,入院记录-主诉-伴随症状名称},等等。接着,基于海量的电子病历数据的半结构化结果,统计分析各字段对应的医疗词汇之间的关联频率,例如:对于关联组合:{入院记录-既往史-疾病名称,入院记录-既往史-症状名称},其中,可能的医疗词汇“不稳定型心绞痛”和“胸痛”对应的关联频率可以等于1000;医疗词汇“不稳定型心绞痛”和“发热”对应的关联频率可以等于10;医疗词汇“冠心病”和“胸痛”对应的关联频率可以等于800。最后,通过“医疗词汇之间的第三权重=(该对医疗词汇关联出现的频率/所有相关的医疗词汇关联出现的总频率)”,计算得到各医疗词汇之间的第三权重,例如:假设医疗词汇“冠心病”和“胸痛”只存在与上述三个关联关系的医疗词汇对,那么,“冠心病”和“胸痛”对应的第三权重可以等于(1000/(1000+10+800))=0.55。
基于上述示例性的对医疗病历模型的分析和统计方式,得到医疗病历模型的字段统计结果之后,即可根据该统计结果,对每个电子病历进行处理,得到每个电子病历在当前医疗搜索语句下的目标权重。
可以理解的是,电子病历的目标权重,根据用户输入的医疗搜索语句中包括的医疗词汇和描述词汇组在该每个电子病历出现的第一权重、第二权重和第三权重确定。目标权重的大小表示了该电子病历符合用户搜索意图的可能性,电子病历对应的目标权重越大,说明该电子病历为用户想要搜索到的电子病历的可能性越大;反之,电子病历对应的目标权重越小,说明该电子病历越不可能为用户想要搜索到的电子病历。
作为一种示例,该目标权重,具体可以是下述三个权重之和:表示所述医疗词汇在所述医疗病历模型包括的字段中分布的第一目标权重,表示所述描述词汇组在所述医疗病历模型的病历文书包括的字段中分布的第二目标权重,以及,表示所述医疗词汇之间关联程度的第三目标权重。
其中,计算所述第一目标权重的方式可以是:首先,在所述医疗病历模型的字段统计结果中,查找每个所述医疗词汇在所述医疗病历模型包括的各字段中的频率;接着,对于每个所述医疗词汇,计算该医疗词汇在每个所述字段中出现的频率占该医疗词汇在所有所述字段中出现的总频率的比例,记作该医疗词汇在每个所述字段中分布的第一权重;最后,将所述医疗搜索语句中的所有所述医疗词汇的所述第一权重相加,得到电子病历的所述第一目标权重。
计算所述第二目标权重的方式可以是:首先,将每个所述医疗词汇在每个所述字段中分布的所述第一权重,以及所述医疗词汇对应的描述词汇组均映射到所述病历文书中;接着,对于每个所述描述词汇组,确定映射到所述病历文书中的、该描述词汇组对应的所述医疗词汇在每个所述字段中分布的所述第一权重,为该描述词汇组在所述病历文书的每个所述字段中分布的第二权重;最后,将所述医疗搜索语句中的所有所述描述词汇组的所述第二权重相加,得到所述第二目标权重。
计算所述第三目标权重的方式可以是:首先,在所述医疗病历模型的字段统计结果中,查找出所述搜索语句中所有的所述医疗词汇中,存在关联关系的第一医疗词汇和第二医疗词汇;接着,计算所述第一医疗词汇和第二医疗词汇关联关系出现的频率占所有包括所述第一医疗词汇和/或所述第二医疗词汇的关联关系出现的总频率的比例,记作所述第一医疗词汇和所述第二医疗词汇之间的第三权重;最后,将所述医疗搜索语句中的所有所述医疗词汇的所述第三权重相加,得到所述第三目标权重。
通过将是三个目标权重相加得到医疗病历模型中包括的每个电子病历在当前医疗搜索语句下的目标权重,即,可以视作为每个电子病历打了一个标签,该标签表示该电子病历符合用户搜索意图的可能性大小,为后续执行搜索从而得到精准的搜索结果做好了准备。
需要说明的是,对应第一权重、第二权重和第三权重,为了计算结果更加直观和方便,可以在计算结果的基础上统一乘N倍(N大于2,N为整数)。
步骤203,基于所述目标权重将所述医疗搜索语句转换为机器搜索语句。
可以理解的是,通过将医疗病历模型中的电子病历和医疗搜索语句进行关联,为将该用户输入的自然语言形式的医疗搜索语句转换为计算机可以识别的机器搜索语句,提供了转换依据和数据基础。
作为一个示例,上述步骤203具体可以通过下述步骤:首先,将所述医疗病历模型中的每个所述目标权重分别映射到所述医疗病历模型对应的所述电子病历中,得到处理后的医疗病历模型;接着,基于所述处理后的医疗病历模型,将所述医疗搜索语句转换成query语句,实现对所述医疗搜索语句的搜索。
其中,一种情况下,可以将第一目标权重、第二目标权重、第三目标权重以及目标权重均映射到电子病历中,作为电子病历的标签,方便进行更进一步的搜索意图的细分,而且方便用户对搜索结果进行选择性的灵活查看。另一种情况下,还可以直接将目标权重映射到电子病历中,作为电子病历的标签,这样,可以直观有效的显示较为准确的搜索意图,从而节约处理资源。
在转换得到机器搜索语句后,经过计算机对该机器搜索语句的分析和处理,可以从医疗病历模型中得到搜索结果,那么,如图4所示,本发明实施例还可以包括:
步骤404,获得搜索结果,所述搜索结果中包括符合下述情况的电子病历:所述目标权重大于预设权重阈值的所有电子病历,或者,所述目标权重最大的前预设个数个电子病历;
步骤405,基于所述目标权重,显示所有的所述搜索结果。
例如:假设预设搜索结果需要满足:该电子病历对应的目标权重大于预设权重阈值。如果预设权重阈值为5,电子病历1对应的目标权重为5.5,电子病历2对应的目标权重为6.5,其他电子病历对应的目标权重均小于5,那么,得到搜索结果为:电子病历1和电子病历2;按照搜索结果对应的目标权重从大到小的顺序显示搜索结果,显示的顺序为:电子病历2,电子病历1。
又例如:假设预设搜索结果需要满足:目标权重最大的前预设个数个电子病历。如果预设个数为2,按照目标权重从大到小排序为:电子病历1、电子病历2、电子病历3、……,那么,得到搜索结果为:电子病历1和电子病历2;按照搜索结果对应的目标权重从大到小的顺序显示搜索结果,显示的顺序为:电子病历2,电子病历1。
再例如:假设预设搜索结果需要满足:该电子病历对应的目标权重大于预设权重阈值,且,目标权重最大的前预设个数个电子病历。假设预设权重阈值为5,预设个数为2,一种情况下,如果电子病历1对应的目标权重为5.5,电子病历2对应的目标权重为6.5,电子病历3对应的目标权重为5.1,其他电子病历对应的目标权重均小于5,那么,得到搜索结果为:电子病历1和电子病历2。另一种情况下,如果按照目标权重从大到小排序为:电子病历1、电子病历2、电子病历3、……,电子病历1对应的目标权重为5.5,电子病历2对应的目标权重为4.5,那么,得到搜索结果为:电子病历1。
又例如:假设预设搜索结果需要满足:目标权重最大的前预设个数个电子病历。如果预设个数为2,按照目标权重从大到小排序为:电子病历1、电子病历2、电子病历3、……,那么,得到搜索结果为:电子病历1和电子病历2;按照搜索结果对应的目标权重从大到小的顺序显示搜索结果,显示的顺序为:电子病历2,电子病历1。
需要说明的是,搜索结果的显示顺序可以按照预设的规则进行,例如,按照对应的目标权重从大到小的顺序显示,或者,按照第一目标权重、第二目标权重和第三目标权重中的至少一个的从大到小的顺序显示,在本发明实施例中不作具体限定。
可见,本发明实施例提供的一种医疗搜索语句的处理方法,通过构建较为全面的医疗字典,得到搜索语句中的医疗词汇和描述词汇组,以及利用对预先建立的医疗病历模型中的字段进行分析、统计所得的统计结果,根据医疗词汇和描述词汇组计算每个电子病历的目标权重,最后,基于目标权重将医疗搜索语句转换为机器搜索语句,这样,即使对于不太具备医疗专业知识的普通用户输入的医疗搜索语句,也能够进行精确的处理,精准的获得用户的真实搜索意图,从而按照真正的搜索意图转换为机器可以识别的机器搜索语句,即可反馈给用户其真正需要的、有参考价值的电子病历,提高了电子病历存在的意义和价值。
相应的,本发明实施例还提供了一种医疗搜索语句的处理装置,如图5所示,该装置具体可以包括:
提取单元501,用于基于已有的医疗字典,从用户输入的医疗搜索语句中提取医疗词汇和所述医疗词汇对应的描述词汇组;
计算单元502,用于利用医疗病历模型的字段统计结果,根据所述医疗词汇和所述描述词汇组计算每个电子病历的目标权重;
转换单元503,用于基于所述目标权重将所述医疗搜索语句转换为机器搜索语句。
可选地,所述提取单元501,包括:
断句子单元,用于利用标点符号对所述医疗搜索语句进行断句,得到至少一个第一短句;
挖掘子单元,用于从各所述第一短句中分别挖掘所述医疗字典中已记载的医疗词汇;
剔除子单元,用于剔除各所述第一短句中的挖掘到的所述医疗词汇,得到各所述第一短句对应的第二短句;
分词子单元,用于对各所述第二短句进行分词,得到各医疗词汇对应的描述词汇组。
可选地,所述目标权重,具体为下述权重之和:表示所述医疗词汇在所述医疗病历模型包括的字段中分布的第一目标权重,表示所述描述词汇组在所述医疗病历模型的病历文书包括的字段中分布的第二目标权重,以及,表示所述医疗词汇之间关联程度的第三目标权重。
可选地,所述计算单元502,包括:
第一查找子单元,用于在所述医疗病历模型的字段统计结果中,查找每个所述医疗词汇在所述医疗病历模型包括的各字段中的频率;
第一计算子单元,用于对于每个所述医疗词汇,计算该医疗词汇在每个所述字段中出现的频率占该医疗词汇在所有所述字段中出现的总频率的比例,记作该医疗词汇在每个所述字段中分布的第一权重;
第二计算子单元,用于将所述医疗搜索语句中的所有所述医疗词汇的所述第一权重相加,得到电子病历的所述第一目标权重。
可选地,所述计算单元502,包括:
映射子单元,用于将每个所述医疗词汇在每个所述字段中分布的所述第一权重,以及所述医疗词汇对应的描述词汇组均映射到所述病历文书中;
确定子单元,用于对于每个所述描述词汇组,确定映射到所述病历文书中的、该描述词汇组对应的所述医疗词汇在每个所述字段中分布的所述第一权重,为该描述词汇组在所述病历文书的每个所述字段中分布的第二权重;
第三计算子单元,用于将所述医疗搜索语句中的所有所述描述词汇组的所述第二权重相加,得到所述第二目标权重。
可选地,所述计算单元502,包括:
第二查找子单元,用于在所述医疗病历模型的字段统计结果中,查找出所述搜索语句中所有的所述医疗词汇中,存在关联关系的第一医疗词汇和第二医疗词汇;
第四计算子单元,用于计算所述第一医疗词汇和第二医疗词汇关联关系出现的频率占所有包括所述第一医疗词汇和/或所述第二医疗词汇的关联关系出现的总频率的比例,记作所述第一医疗词汇和所述第二医疗词汇之间的第三权重;
第五计算子单元,用于将所述医疗搜索语句中的所有所述医疗词汇的所述第三权重相加,得到所述第三目标权重。
可选地,所述转换单元503,包括:
获得子单元,用于将所述医疗病历模型中的每个所述目标权重分别映射到所述医疗病历模型对应的所述电子病历中,得到处理后的医疗病历模型;
转换子单元,用于基于所述处理后的医疗病历模型,将所述医疗搜索语句转换成query语句,实现对所述医疗搜索语句的搜索。
可选地,该装置还包括:
获得单元,用于获得搜索结果,所述搜索结果中包括符合下述情况的电子病历:所述目标权重大于预设权重阈值的所有电子病历,或者,所述目标权重最大的前预设个数个电子病历;
显示单元,用于基于所述目标权重,显示所有的所述搜索结果。
上述描述为医疗搜索语句的处理装置的相关描述,其中,具体实现方式以及达到的效果,可以参见上述医疗搜索语句的处理方法实施例的描述,这里不再赘述。
此外,本发明实施例还提供了一种医疗搜索语句的处理设备,如图6所示,该设备包括处理器601以及存储器602:
所述存储器602用于存储程序代码,并将所述程序代码传输给所述处理器601;
所述处理器601用于根据所述程序代码中的指令执行本发明实施例提供的上述医疗搜索语句的处理方法。
本发明实施例中提到的“第一短句”、“第一目标权重”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,并非用于限定本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。