药品知识图谱的构建方法和装置
技术领域
本公开涉及计算机技术领域,具体涉及知识图谱技术领域,尤其涉及药品知识图谱的构建方法和装置、电子设备、计算机可读介质。
背景技术
知识图谱是人工智能中知识工程的一个分支,在通用领域已有比较成熟的应用;药品说明书的用法用量部分,在通用语法规则的基础上,具有其特有的缩写形式和语法结构,这一特点无法被传统的句法分析方法所解析,目前尚未有成熟公开的药品知识图谱。
发明内容
本公开的实施例提出了药品知识图谱的构建方法和装置、电子设备、计算机可读介质。
第一方面,本公开的实施例提供了一种药品知识图谱的构建方法,该方法包括:识别药品文本中的实体;采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本;将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体;基于所述实体,形成各个实体之间的实体线性关系;根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
在一些实施例中,上述方法还包括:建立字符串与被字符串所替换的医药关键实体之间的映射关系表。
在一些实施例中,上述方法还包括:识别分词结果中的医药非关键实体;以及基于所述实体,形成各个实体之间的实体线性关系,包括:将医药关键实体、医药非关键实体按照药品文本中的各个实体的顺序进行排序,得到与药品文本对应的实体线性关系。
在一些实施例中,上述医药关键实体包括:疾病名、药品名;上述医药非关键实体包括:人群、剂量、频次、疗程、给药途径、给药时机。
在一些实施例中,上述实体包括:前置条件实体、用法用量实体,前置条件实体包括:医药关键实体;上述根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱,包括:基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果;基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果;基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到以前置条件合并结果中的至少一个元素与用法用量合并结果中的至少一个元素为集合元素的根节点集合;合并根节点集合中的所有不同集合元素;将根节点集合的合并结果中合并概率最高的合并结果作为解析结果,并将解析结果添加入知识图谱。
在一些实施例中,上述基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果,包括:识别实体线性关系中的前置条件实体,将识别到的前置条件实体中的各个前置条件实体以及各个前置条件实体之间的组合,作为集合元素形成前置条件实体集合;将前置条件实体集合中的所有不同集合元素进行合并,得到前置条件合并结果。
在一些实施例中,上述基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果,包括:识别实体线性关系中的用法用量实体,将识别到的用法用量实体中的各个用法用量实体以及各个用法用量实体之间的组合,作为集合元素形成用法用量实体集合;将用法用量实体集合中的所有不同集合元素进行合并,得到用法用量合并结果。
在一些实施例中,还包括:识别药品文本中实体的属性;将实体的属性添加至药品知识图谱中。
在一些实施例中,上述方法还包括:对药品文本进行以下至少一项格式化处理:对药品文本中表征相同意义的不同标点符号进行归一化处理;将药品文本中的中文数字转换为阿拉伯数字。
第二方面,本公开的实施例提供了一种药品知识图谱的构建装置,该装置包括:识别单元,被配置成识别药品文本中的实体,替换单元,被配置成采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本;还原单元,被配置成将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体;成形单元,被配置成基于所述实体,形成各个实体之间的实体线性关系;解析单元,被配置成根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
在一些实施例中,上述装置还包括:映射单元,被配置成建立字符串与被字符串所替换的医药关键实体之间的映射关系表。
在一些实施例中,上述装置还包括:分辨单元,被配置成识别分词结果中的医药非关键实体;上述成形单元还被配置成将医药关键实体、医药非关键实体按照药品文本中的各个实体的顺序进行排序,得到与药品文本对应的实体线性关系。
在一些实施例中,上述医药关键实体包括:疾病名、药品名;上述医药非关键实体包括:人群、剂量、频次、疗程、给药途径、给药时机。
在一些实施例中,前置条件实体、用法用量实体,前置条件实体包括:医药关键实体;上述解析单元包括:前置条件得到模块,被配置成基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果;用法用量得到模块,被配置成基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果;组合模块,被配置成基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到以前置条件合并结果中的至少一个元素与用法用量合并结果中的至少一个元素为集合元素的根节点集合;合并模块,被配置成合并根节点集合中的所有不同集合元素;解析模块,被配置成将根节点集合的合并结果中合并概率最高的合并结果作为解析结果;添加模块,被配置成将解析结果添加入知识图谱。
在一些实施例中,上述前置条件得到模块包括:前置识别子模块,被配置成识别实体线性关系中的前置条件实体;前置组合子模块,被配置成将识别到的前置条件实体中的各个前置条件实体以及各个前置条件实体之间的组合,作为集合元素形成前置条件实体集合;前置合并子模块,被配置成将前置条件实体集合中的所有不同集合元素进行合并,得到前置条件合并结果。
在一些实施例中,上述用法用量得到模块包括:用法用量识别子模块,被配置成识别实体线性关系中的用法用量实体;用法用量组合子模块,被配置成将识别到的用法用量实体中的各个用法用量实体以及各个用法用量实体之间的组合,作为集合元素形成用法用量实体集合;用法用量合并子模块,被配置成将用法用量实体集合中的所有不同集合元素进行合并,得到用法用量合并结果。
在一些实施例中,上述装置还包括:区分单元,被配置成识别药品文本中实体的属性;添加单元,被配置成将实体的属性添加至药品知识图谱中。
在一些实施例中,上述装置还包括:格式化单元和/或转化单元,格式化单元,被配置成对药品文本中表征相同意义的不同标点符号进行归一化处理;转化单元,被配置成将药品文本中的中文数字转换为阿拉伯数字。
第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的实施例提供的药品知识图谱的构建方法和装置,首先识别药品文本中的实体;其次采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本;然后,将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体;然后,基于实体,形成各个实体之间的实体线性关系;最后根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。由此,在对药品文本进行分词之前,首先将医药关键实体采用预设规则的字符进行替换,保证了医药文本分词的准确性;而在实体线性关系的基础上进行句法解析得到的药品知识图谱,便于将药品用法用量的自然语言转换成计算机能够识别的数据结构,有利于医学领域的知识图谱挖掘,保证了药品知识图谱的准确性和可解释性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的药品知识图谱的构建方法的一个实施例的流程图;
图3是根据本公开的药品知识图谱的构建方法的另一个实施例的流程图;
图4是根据本公开的生成药品知识图谱的方法的一个实施例的流程图;
图5是根据本公开的得到用法用量合并结果的方法的一个实施例的流程图;
图6是根据本公开的药品知识图谱的构建方法的第三个实施例的流程图;
图7是根据本公开的药品知识图谱的构建装置的一个实施例的结构示意图;
图8是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的药品知识图谱的构建方法的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,通常可以包括无线通信链路等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如即时通信工具、邮箱客户端等。
终端设备101、102、103可以是硬件,也可以是软件;当终端设备101、102、103为硬件时,可以是具有通信和控制功能的用户设备,上述用户设置可与服务器105进行通信。当终端设备101、102、103为软件时,可以安装在上述用户设备中;终端设备101、102、103可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上知识图谱系统提供支持的知识图谱服务器。知识图谱服务器可以对网络中各目标图像的相关信息进行分析处理,并将处理结果(如生成的知识图谱)反馈给终端设备。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的药品知识图谱的构建方法一般由服务器105执行。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
在实体医院和互联网医院,每天医生都会开具大量的药品处方,其中,这些处方中药品的用法用量是否合理,需要药师的审核。然而大量的药品处方的审核给药师带来了极大的工作量和负担。而将药品处方生成药品知识图谱,在应用知识图谱时,能够根据患者的个人情况,匹配到患者对应的用法用量,给出待选择项供药师进行筛选,从而可以帮助药师减轻工作量,节省审核时间。
如图2,示出了根据本公开的药品知识图谱的构建方法的一个实施例的流程200,该药品知识图谱的构建方法包括以下步骤:
步骤201,识别药品文本中的实体。
本实施例中,药品知识图谱的构建方法运行于其上的执行主体(比如服务器、终端设备)可以通过实时获取或者通过内存读取的方式获取药品文本。
药品文本包括用于治疗不同人群的不同疾病的药品以及各种药品的用法用量,该药品文本可以是药盒上的药品说明书,还可以是药品的处方,例如,一药品说明书为:“口服,成人一日一次,一次两片;小儿一日一次,一次一片”。
由于药品文本包括用于治疗不同人群的不同疾病的药品以及各种药品的用法用量,药品文本中的实体可以包括:人群,疾病名,药品名,剂量,频次,疗程,给药途径,给药时机,连接词等。
针对药品或疾病的专有性,为了便于对实体进行识别,在本实施例的一些可选实现方式中,可以将实体分类为医药关键实体和医药非关键实体,其中,医药关键实体是医药专属名词,例如,医药关键实体包括:药品名称、疾病名称;医药非关键实体则是非医药专属名词,其是药品文本中通用的名词,例如,剂量、疗程、给药途径等。
在本实施例的一些可选实现方式中,医药关键实体包括:药品名称、疾病名称;医药非关键实体包括:人群、剂量、频次、疗程、给药途径、给药时机。本可选实现方式提供的医药关键实体和医药非关键实体可以涵盖药品说明书中实体的类型,保证了实体类型划分的全面性。
本实施例中识别药品文本中的实体:可以是识别医药关键实体,或者识别医药关键实体和医药非关键实体。针对医药关键实体的识别可以通过字典枚举的方式实现。其中,枚举用于是逐个考察每个实体属于医药关键实体的情况,对医药关键实体中疾病名进行的字典枚举识别是通过一个已维护的疾病的字典表。对于药品文本,遍历这个疾病的字典表,如果字典表里的某个词A在药品文本中,那么药品文本中的词A就被标注为疾病名。
为了便于对实体进行句法解析,可选地,还可以将实体分类为前置条件实体和用法用量实体,其中,前置条件实体用于表示药品、疾病、药品使用或患有某种疾病的主体,例如,人群、疾病名、药品名和前述三者之间的连接词等,前置条件实体包括医药关键实体。用法用量实体是与药品使用有关的实体,例如,频次,疗程,给药途径,给药时机,和前述四者之间的连接词等。
针对不同的药品文本包含的实体不同,其中,一些药品文本可以包括:前置条件实体和用法用量实体;一些药品文本可以包括:用法用量实体。
本实施例中识别药品文本中的实体:可以是识别前置条件实体,或者识别前置条件实体和用法用量实体。
步骤202,采用符合预设规则的字符串,替换实体中医药关键实体,得到替换文本。
本可选实现方式中,由于药品是专属名词,具有一定的复杂性,可以会对后续的药品知识图谱的生成造成影响,因此需要对识别到的医药关键实体进行替换。
医药关键实体的替换过程中,识别到医药关键实体之后,产生与医药关键实体相应的符合预设规则的字符,并实时记录符合预设规则的字符串与医药关键实体之间的对应关系。
本实施例中,产生的符合预设规则的字符串可以为自定义的具有一定规则的字符串,针对不同种类的医药关键实体,可以定义不同的字符串进行区别。例如,一药品文本为:“治疗百日咳:一日一次,一次一片”,识别到“百日咳”为医药关键实体,定义字符串“indication_0”对“百日咳”进行替换,得到替换文本为:“indication_0:一日一次,一次一片”。
可选地,符合预设规则的字符串还可以是由字符模板自动分配的、符合预设规则的字符串,在字符模板中还可以记录有符合预设规则的字符串与医药关键实体之间的对应关系,在预设规则的字符串替换实体中医药关键实体之后,可以通过模块得到预设规则的字符串与医药关键实体之间的对应关系,从而还原医药关键实体。
步骤203,将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体。
本实施例中,首选对替换文本进行分词,识别替换文本的分词结果中的符合预设规则的字符串,并将符合预设规则的字符串还原回医药关键实体。
具体地,可以采用中文分词工具的中文分词功能对替换文本进行分词得到分词结果,中文分词即将一个汉字序列进行切分,得到一个个单独的词。进一步地,可以利用的中文分词工具包括:jieba,SnowNLP(Simplified Chinese Text Processing,简体中文文本处理)等等。
步骤204,基于实体,形成各个实体之间的实体线性关系。
本实施例中,可以将药品文本中识别到的实体按照各个实体在药品文本中的位置进行排序,形成各个实体之间的实体线性关系。例如,一药品文本为:“口服,成人一日一次,一次两片;小儿一日一次,一次一片”,经过实体识别之后,形成各个实体之间的实体线性关系为:{给药途径:口服}{人群:成人}{频次:一日一次}{剂量:一次二片}{人群:小儿}{频次:一日一次}{剂量:一次一片}。
可选地,还可以对药品文本中识别到的实体进行格式化处理(比如,去除文本空格、全角半角转化、中文数字转换为阿拉伯数字、符号的归一化),将格式处理结果按照各个实体在药品文本中的位置进行排序,形成各个实体之间的实体线性关系。例如,一药品文本为:“口服,成人一日一次,一次两片;小儿一日一次,一次一片”,经过中文数字转换为阿拉伯数字的格式化处理之后,形成各个实体之间的实体线性关系为:{给药途径:口服}{人群:成人}{频次:1日1次}{剂量:1次2片}{人群:小儿}{频次:1日1次}{剂量:1次1片}。
步骤205,根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
本实施例中,对实体线性关系进行句法解析是指,根据各个实体的类型以及各个实体之间的语法规则,结合预设的句法分析算法,抽取实体线性关系中最能表达药品文本的实体关系。该句法解析过程为将实体线性关系解析为树状实体关系,也是将药品文本的自然语言转换成计算机能够识别的数据结构的过程。
其中,预设的句法分析算法可以包括:基于规则的句法分析和/或基于统计的句法分析,对于给定的输入文本,基于规则的句法分析是通过实现编写的知识库规则将输入文本映射到解析结果;基于统计的句法分析是穷举所有可能的解析结果,找到其中概率最大的一个。
本实施例中,由于药品文本中实体是针对药品,药品具有特有的缩写形式和语法(例如,用法用量方法等),预设的句法分析算法进一步地,可以采用基于规则的句法分析和基于统计的句法分析,从而充分利用了规则编写的严谨性和统计分析的灵活性。
例如,一药品文本为:“口服,成人一日一次,一次两片;小儿一日一次,一次一片”。
经过中文数字转换为阿拉伯数字的格式化处理之后,形成各个实体之间的实体线性关系为:{给药途径:口服}{人群:成人}{频次:1日1次}{剂量:1次2片}{人群:小儿}{频次:1日1次}{剂量:1次1片}。
经过句法解析后得到的树状关系为:
{给药途径:口服}
{人群:成人}{频次:1日1次}{剂量:1次2片}
{人群:小儿}{频次:1日1次}{剂量:1次1片}。
通过对实体线性关系进行句法解析,生成的药品知识图谱保留了实体线性关系中各个实体之间的关系,可以保证药品知识图谱挖掘结果的准确性以及可解释性。
本公开的实施例提供的药品知识图谱的构建方法,首先识别药品文本中的实体;其次采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本;然后,将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体;然后,基于实体,形成各个实体之间的实体线性关系;最后根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。由此,在对药品文本进行分词之前,首先将医药关键实体采用预设规则的字符进行替换,保证了医药文本分词的准确性;而在实体线性关系的基础上进行句法解析得到的药品知识图谱,便于将药品用法用量的自然语言转换成计算机能够识别的数据结构,有利于医学领域的知识图谱挖掘,保证了药品知识图谱的准确性和可解释性。
本申请的另一个实施例中,药品文本的实体包括:医药关键词和医药非关键实体。进一步参考图3,其示出了本公开的药品知识图谱的构建方法的另一个实施例的流程300。该药品知识图谱的构建方法包括以下步骤:
步骤301,识别药品文本中的医药关键实体。
本实施例中,医药关键实体可以通过字典枚举的方式进行识别。其中,枚举用于是逐个考察每个实体属于医药关键实体的情况,对医药关键实体中疾病名进行的字典枚举识别是通过一个已维护的疾病的字典表。对于药品文本,遍历这个疾病的字典表,如果字典表里的某个词A在药品文本中,那么药品文本中的词A就被标注为疾病名。
步骤302,采用符合预设规则的字符串,替换医药关键实体,得到替换文本。
本实施例中,由于医药专属名词,具有一定的复杂性,会对后续的实体处理造成影响,因此需要对识别到的医药关键实体进行替换。
符合预设规则字符串为自定义的字符串,针对不同种类的医药关键实体,可以定义不同的字符串进行区别。例如,一药品文本为:“治疗百日咳:一日一次,一次一片”,识别到“百日咳”为医药关键实体,定义字符串“indication_0”对“百日咳”进行替换,得到替换文本为:“indication_0:一日一次,一次一片”。
步骤303,建立字符串与被字符串所替换的医药关键实体之间的映射关系表。
医药关键实体的替换过程中,识别到医药关键实体之后,可以产生与医药关键实体相应的符合预设规则的字符,并通过映射关系表实时记录符合预设规则的字符串与医药关键实体之间的对应关系。
本实施例中,建立符合预设规则的字符串与被字符串所替换的医药关键实体之间的映射关系,可以便于后续医药关键实体的还原。
例如,一药品文本为:“治疗百日咳:一日一次,一次一片”,识别到医药关键实体为“百日咳”,定义字符串“indication_0”对“百日咳”进行替换,得到替换文本为:“indication_0:一日一次,一次一片”。建立的映射关系为:indication_0<->百日咳。
步骤304,将基于替换文本所确定的分词结果中的字符串,利用映射关系表还原为被字符串所替换的医药关键实体。
本实施例中,由于映射关系表记录了符合预设规则的字符串与医药关键实体之间的映射关系,在确定了符合预设规则的字符串之后,通过查找映射关系表可以得到与符合预设规则的字符串对应的医药关键实体。
步骤305,识别分词结果中的医药非关键实体。
本实施例中,可以利用文本模板匹配工具,如正则表达式,编写模板匹配规则,识别除医药关键实体(药品名称和疾病名称)之外的其它实体—医药非关键实体。进一步地,还可以采用实体识别模型识别医药非关键实体。实体识别模型包括:CRF(ConditionalRandom Fields,条件随机场)模型,BERT(Bidirectional Encoder Representations fromTransformers,双向编码器)模型。
由于在药品说明书用法用量部分,这些实体的表达方式是有限的,所以通过模板匹配可以做到精确识别。
步骤306,将医药关键实体、医药非关键实体按照药品文本中的各个实体的顺序进行排序,得到与药品文本对应的实体线性关系。
本实施例中,药品文本会被表达为由多种实体以线性关系组成的抽象句子,即实体线性关系,实体线性关系中各个实体之间的位置关系维持了药品文本中各个实体位置关系,通过实体线性关系可以保证药品文本的信息量没有丢失。
步骤307,根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
本步骤307操作和特征与上述步骤205中的操作和特征相对应,步骤205中对于操作和特征的描述,同样适用于步骤307。
本实施例提供的药品知识图谱的构建方法,在对药品文本进行分词之前,采用映射关系表建立字符串与被字符串所替换的医药关键实体之间的联系,保证了分词的准确性。进一步,将识别到的医药关键实体、医药非关键实体按照药品文本中各个实体的顺序排序,得到的实体线性关系,保留了原药品文本之间各个实体之间的位置关系,为后续重组为树状实体关系提供了基础。
针对包括不同种类实体的实体线性关系,可以生成具有树状实体关系的药品知识图谱。在本实施例的一些可选实现方式中,实体包括:前置条件实体和用法用量实体,前置条件实体包括:医药关键实体。进一步参考图4,其示出了生成药品知识图谱的方法一个实施例的流程400。该生成药品知识图谱的方法,包括以下步骤:
步骤401,基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果。
本可选实现方式中,将实体分类为前置条件实体和用法用量实体,其中,前置条件实体用于表示药品、疾病、药品使用或患有某种疾病的主体,例如,人群、疾病名、药品名和前述三者之间的连接词等。
本可选实现方式中,在识别到实体线性关系中的所有前置条件实体之后,可以将识别到的不同的前置条件实体进行合并(比如两两合并,或者一三合并等),得到前置合并子项,多个前置合并子项组合在一起形成前置条件合并结果,前置条件合并结果为具有多个前置合并子项的集合,每个前置合并子项为前置条件合并结果中的一个元素。
当然,根据识别到的前置条件实体的个数,前置合并子项也可以是单个前置条件实体。
在本实施例的一些可选实现方式中,上述基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果,包括:识别实体线性关系中的前置条件实体,将识别到的前置条件实体中的各个前置条件实体以及各个前置条件实体之间的组合,作为集合元素形成前置条件实体集合;将前置条件实体集合中的所有不同集合元素进行合并,得到前置条件合并结果。
本可选实现方式中,合并前置条件实体集合中的所有不同集合元素可以结合规则分析方法与统计分析方法实现;其中,规则分析方式是遵守预设的规则,例如,合并前置条件实体集合的预设的规则为:前置条件实体集合中只能包括:疾病集合元素,人群集合元素,药品集合元素这三种集合元素中的任一种或多种,其中,疾病集合元素包括单个疾病名或通过连接词连接的多个疾病名。人群集合元素包括:单个人群对象或通过连接词连接的多个人群对象。药品集合元素包括:单个药品名或通过连接词连接的多个药品名。
统计分析方法可以是穷举方法,穷举就是把所有的可能性都试一遍,在软件中就是用外循环套内循环,当满足某一跳出条件,则结束内循环与外循环。通过统计分析方法可以将前置条件实体集合中的所有可合并的不同集合元素进行合并。
本可选实现方式提供的前置条件合并结果的方法,在识别到的前置条件实体之后,将识别到的前置条件实体中的各个前置条件实体以及各个前置条件实体之间的组合,作为集合元素形成前置条件实体集合,将前置条件实体集合中的所有不同集合元素进行合并,得到前置条件合并结果,从而为实现前置条件实体形成树状实体关系提供了可靠句子解析方式,保证了生成的药品图谱的可靠性。
步骤402,基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果。
本实施例中,用法用量实体是与药品使用有关的实体,例如,频次,疗程,给药途径,给药时机,和前述四者之间的连接词等。
本可选实现方式中,在识别到实体线性关系中的所有用法用量实体之后,可以将识别到的不同的用法用量实体进行合并(比如两两合并,或者一三合并等),得到用法用量合并子项,多个用法用法合并子项组合在一起形成用法用量合并结果,用法用量合并结果为具有多个用法用量合并子项的集合,每个用法用量合并子项为用法用量合并结果中的一个元素。
当然,根据识别到的不同的用法用量实体的个数,用法用量合并子项也可以是单个用法用量实体。
步骤403,基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到以前置条件合并结果中的至少一个元素与用法用量合并结果中的至少一个元素为集合元素的根节点集合。
本可选实现方式中,根节点集合的集合元素由至少一个前置条件合并结果中的前置合并子项和至少一个用法用量合并子项组成。
可选地,每个根节点集合的集合元素可以表达为0~1个前置合并子项与1个或多个用法用量合并子项的组合。
例如,一实体线性关系包括:“成人(PP1)一日一次(MM1),一次两片(MM2);小儿(PP2)一日一次(MM3),一次一片(MM4)”,其前置条件合并结果为:{[PP1][PP2]}。
其用法用量合并结果为:{[MM1 MM2][MM3 MM4];[MM1,MM2][MM3 MM4];[MM1][MM2MM3][MM4];[MM1][MM2 MM3][MM4];[MM1 MM2][MM3 MM4];[MM1 MM2][MM3 MM4]}。
基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到的根节点集合为:{[PP1][MM1 MM2][PP2][MM3 MM4];[PP1][MM1MM2][PP2][MM3 MM4];[PP1][MM1][PP2][MM2 MM3][MM4];[PP1][MM1][PP2][MM2 MM3][MM4];[PP1][MM1 MM2][PP2][MM3 MM4];[PP1][MM1 MM2][PP2][MM3 MM4]},其中,[PP1][MM1 MM2][PP2][MM3 MM4]为一个集合元素。
步骤404,合并根节点集合中的所有不同集合元素。
本可选实现方式中,将根节点集合中不同的集合元素进行合并(比如两两合并,或者一三合并等),得到合并结果。需要说明的是,合并根节点集合中的所有不同集合元素是指合并根节点集合中的所有可合并的不同集合元素,例如,不满足预设规则的不同集合元素则不在合并之列。
步骤405,将根节点集合的合并结果中合并概率最高的合并结果作为解析结果,并将解析结果添加入知识图谱。
本可选实现方式中,合并根节点集合中不同集合元素中,得到N个组合结果。对N个组合结果归类,计算每一类出现的频次,将频次归一化后就得到每一类组合结果对应的占比。对于某一根节点集合的多类组合结果的所有占比,计算每一类组合结果的概率,概率最大的组合结果就是最后的解析结果。
具体地,本可选实现方式中,首先将识别到的不同的前置条件实体进行合并,得到前置条件合并结果,此过程可能出现MPP种(MPP>1或MPP=1)合并结果,其次将识别到的不同的用法用量实体进行合并,得到用法用量合并结果,此过程可能出现NMM(NMM>1)种合并结果。经过这两个步骤后,原来的线性实体关系中只会出现前置条件合并结果和用法用量合并结果两种结果中的两种元素。将这两种元素组合为根节点集合的集合元素,此过程可能出现PS(PS>1)种集合元素。最后,将所有可合并的集合元素进行合并,一共可出现MPP×NMM×PS种合并结果,取合并结果中选取概率最高的一组合并结果作为解析结果。
本可选实现方式提供的生成药品知识图谱的方法,在实体包括前置条件实体和用法用量实体时,识别实体线性关系中的前置条件实体,对前置条件实体进行合并,得到前置条件合并结果;识别实体线性关系中的用法用量实体,对用法用量实体进行合并,得到用法用量合并结果;基于实体线性关系中各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果和用法用量合并结果,得到根节点集合,合并根节点集合中的所有不同集合元素,将根节点集合的合并结果中合并概率最高的合并结果作为解析结果,并将解析结果添加入知识图谱,由此,通过综合前置条件合并结果和用法用量合并结果,保证了药品文本中的实体的全面性;将根节点集合的合并结果中合并概率最高的合并结果作为解析结果,保证药品知识图谱生成的准确性。能够完善医学领域的知识图谱,有利于进行知识挖掘。
在本实施例的一些可选实现方式中,进一步参考图5,其示出了得到用法用量合并结果的方法一个实施例的流程500。该生成药品知识图谱的方法,包括以下步骤:
步骤501,识别实体线性关系中的用法用量实体。
本实施例中,用法用量实体是与药品使用有关的实体,例如,剂量,频次,疗程,给药途径,给药时机,和前述五者之间的连接词等。用法用量子短语可以包括一个或多个用法用量实体,例如:实体线性关系中用法用量实体包括:“1日1次”“1次1片”“1日1次或1次2片”。
步骤502,将识别到的用法用量实体中的各个用法用量实体以及各个用法用量实体之间的组合,作为集合元素形成用法用量实体集合。
本可选实现方式中,用法用量实体集合中集合元素包括:用法用量实体或者用法用量实体之间的组合。
例如,实体线性关系中用法用量实体包括:“1日1次”、“1次1片”、“1日1次”、“1次2片”。
用法用量实体之间的组合可以包括:<1日1次>或<1日1次,1次1片>或<1日1次,1次2片>。
步骤503,将用法用量实体集合中的所有不同集合元素进行合并,得到用法用量合并结果。
本可选实现方式中,合并用法用量实体集合中的所有不同集合元素可以结合规则分析方法与统计分析方法实现;其中,规则分析方式是遵守预设的规则,例如,合并用法用量实体集合的一个预设的规则为:用法用量实体集合中只能包含剂量集合元素,频次集合元素,疗程集合元素,给药途径集合元素,给药时机集合元素。其中,剂量集合元素包括:单个剂量或通过连接词连接的多个剂量。频次集合元素包括:单个频次或通过连接词连接的多个频次。疗程集合元素包括:单个疗程或通过连接词连接的多个疗程。给药途径集合元素包括:单个给药途径或通过连接词连接的多个给药途径。给药时机集合元素包括:单个给药时机或通过连接词连接的多个给药时机。
可选地,合并用法用量实体集合的另一个预设的规则为:相同类型的集合元素不能合并。
例如:一用法用量实体集合MM包括:“一日一次(MM1),一次两片(MM2);一日一次(MM3),一次一片(MM4)”,其中,MM1~MM4均为用法用量实体集合MM的集合元素,MM1与MM3为频次集合元素两者不能合并;MM2与MM4为剂量集合元素,两者不能合并。
统计分析方法可以是穷举方法,穷举就是把所有的可能性都试一遍,在软件中就是用外循环套内循环,当满足某一跳出条件,则结束内循环与外循环。
统计分析方法一具体示例如下:针对用法用量实体集合MM中所有可合并的集合元素,以每一个集合元素为起始项,进行以下合并操作:将所有能够与起始项相邻的集合元素进行合并,然后将还未合并的集合元素继续合并,直到用法用量实体集合MM中所有可合并的集合元素都合并完成,返回重新确定起始项。
上述用法用量实体集合MM的用法用量合并结果为:{[MM1 MM2][MM3 MM4];[MM1,MM2][MM3 MM4];[MM1][MM2 MM3][MM4];[MM1][MM2 MM3][MM4];[MM1 MM2][MM3 MM4];[MM1MM2][MM3 MM4]}。
本可选实现方式提供的得到用法用量合并结果的方法,在识别到的用法用量实体之后,将识别到的用法用量实体中的各个用法用量实体以及各个用法用量实体之间的组合,作为集合元素形成用法用量实体集合,将用法用量实体集合中的所有不同集合元素进行合并,得到用法用量合并结果,从而为实现用法用量实体形成树状实体关系提供了可靠句子解析方式,保证了生成的药品图谱的可靠性。
进一步参考图6,其示出了本公开的药品知识图谱的构建方法的另一个实施例的流程600。该药品知识图谱的构建方法,包括以下步骤:
步骤601,对药品文本进行格式化处理。
其中,格式化处理可以包括以下至少一项:1)对药品文本中表征相同意义的不同标点符号进行归一化处理;2)将药品文本中的中文数字转换为阿拉伯数字。
本实施例中,归一化处理用于将表征相同意义的标点符号做统一化处理,在药品文本来源较复杂时,表达相同意思的标点符号在药品文本中可能表现方式不统一,通过归一化处理保证了具有相同意义的不同标点符号的统一性。例如,将“~”、“-”、“—”做归一化处理后,均变为“-”。
本实施例中,标点符号包括但不限于:句号,逗号,顿号,引号,括号等,各种表达范围的标点符号均在本申请的保护范围之内。
本实施例中,中文有一些习惯性的表达,会增加后续生成知识图谱的难度。因此需要将所有的中文数字转为阿拉伯数字。例如,一药品文本是:"两日一次,一次五分之四片或一片半。”,进行中文数字转换为阿拉伯数字处理后的文本为:"2日1次,1次4/5片或1.5片。"。
步骤602,识别药品文本中的实体。
步骤603,采用符合预设规则的字符串,替换实体中医药关键实体,得到替换文本。
步骤604,将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体。
本实施例的一些可选实现方式中,在得到替换文本之后,可以建立字符串与被字符串所替换的医药关键实体之间的映射关系表。并在还原医药关键实体时,基于映射关系表还原为被字符串所替换的医药关键实体。
步骤605,基于实体,形成各个实体之间的实体线性关系。
本实施例的一些可选实现方式中,还可以包括:识别分词结果中的医药非关键实体;上述基于实体,形成各个实体之间的实体线性关系包括:将医药关键实体、医药非关键实体按照药品文本中的各个实体的顺序进行排序,得到与药品文本对应的实体线性关系。
进一步,本实施例的一些可选实现方式中,医药关键实体包括:疾病名、药品名;医药非关键实体包括:人群、剂量、频次、疗程、给药途径、给药时机。
步骤606,根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
本实施例的一些可选实现方式中,实体包括:前置条件实体、用法用量实体,前置条件实体包括:医药关键实体。上述步骤606包括:基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果;基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果;基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到以前置条件合并结果中的至少一个元素与用法用量合并结果中的至少一个元素为集合元素的根节点集合;合并根节点集合中的所有不同集合元素;将根节点集合的合并结果中合并概率最高的合并结果作为解析结果,并将解析结果添加入知识图谱。
应当理解,上述步骤602-604中操作和特征,分别与上述步骤201-205中的操作和特征相对应,因此,上述步骤201-205中对于操作和特征的描述,同样适应于步骤602-604,在此不再赘述。
步骤607,识别药品文本中实体的属性。
本实施例中,药品文本中每个实体都有其对应的属性。例如,药品文本的原文是:"2-5岁的儿童",识别到的属性结果为:{“crowdType”:“儿童”,“crowdAgeFrom”:2,“crowdAgeTo”:5。“crowdAgeUnit”:“岁”}。
步骤608,将实体的属性添加至药品知识图谱中。
具体地,参见表1所示,为一药品知识图谱中实体、实体的说明以及实体的属性。
表1
本实施例中,将每个实体属性添加到药品知识图谱中,可以保证药品知识图谱中实体信息的全面性。
本实施例提供的药品知识图谱的构建方法,在对药品文本中所有实体进行识别之前,对药品文本进行格式化处理,保证了实体识别的效率。识别药品文本中实体的属性,将识别到的实体属性添加到药品知识图谱中,从而丰富了药品知识图谱的内容,保证了药品知识图谱信息的全面性。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了药品知识图谱的构建装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本公开的实施例提供了一种药品知识图谱的构建装置700,该装置700包括:识别单元701、替换单元702、还原单元703、成形单元704和解析单元705。其中,识别单元701可以被配置成识别药品文本中的实体。替换单元702可以被配置成采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本。还原单元703可以被配置成将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体。成形单元704可以被配置成基于所述实体,形成各个实体之间的实体线性关系。解析单元705可以被配置成根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
在本实施例中,药品知识图谱的构建装置700中,识别单元701、替换单元702、还原单元703、成形单元704和解析单元705的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204和步骤205。
在一些实施例中,上述装置700还包括:映射单元(图中未示出)。映射单元可以被配置成建立字符串与被字符串所替换的医药关键实体之间的映射关系表。
在一些实施例中,上述装置700还包括:分辨单元(图中未示出)。分辨单元可以被配置成识别分词结果中的医药非关键实体;上述成形单元704还被配置成将医药关键实体、医药非关键实体按照药品文本中的各个实体的顺序进行排序,得到与药品文本对应的实体线性关系。
在一些实施例中,上述医药关键实体包括:疾病名、药品名;上述医药非关键实体包括:人群、剂量、频次、疗程、给药途径、给药时机。
在一些实施例中,上述实体包括:前置条件实体、用法用量实体,前置条件实体包括:医药关键实体;上述解析单元703包括:前置条件提取模块(图中未示出)、用法用量得到模块(图中未示出)、组合模块(图中未示出)、合并模块(图中未示出)、解析模块(图中未示出)、添加模块(图中未示出)。前置条件提取模块可以被配置成基于识别实体线性关系所得到的前置条件实体,得到前置条件合并结果。用法用量得到模块可以被配置成基于识别实体线性关系所得到的用法用量实体,得到用法用量合并结果。组合模块可以被配置成基于实体线性关系中的各个前置条件实体与各个用法用量实体之间的位置关系,组合前置条件合并结果与用法用量合并结果,得到以前置条件合并结果中的至少一个元素与用法用量合并结果中的至少一个元素为集合元素的根节点集合。合并模块可以被配置成合并根节点集合中的所有不同集合元素。解析模块可以被配置成将根节点集合的合并结果中合并概率最高的合并结果作为解析结果。添加模块可以被配置成将解析结果添加入知识图谱。
在一些实施例中,上述前置条件得到模块包括:前置识别子模块(图中未示出)、前置组合子模块(图中未示出)、前置合并子模块(图中未示出)。前置识别子模块可以被配置成识别实体线性关系中的前置条件实体。前置组合子模块可以被配置成将识别到的前置条件实体中的各个前置条件实体以及各个前置条件实体之间的组合,作为集合元素形成前置条件实体集合。前置合并子模块可以被配置成将前置条件实体集合中的所有不同集合元素进行合并,得到前置条件合并结果。
在一些实施例中,上述用法用量得到模块包括:用法用量识别子模块(图中未示出)、用法用量组合子模块(图中未示出)、用法用量合并子模块(图中未示出)。用法用量识别子模块可以被配置成识别实体线性关系中的用法用量实体。用法用量组合子模块可以被配置成将识别到的用法用量实体中的各个用法用量实体以及各个用法用量实体之间的组合,作为集合元素形成用法用量实体集合。用法用量合并子模块可以被配置成将用法用量实体集合中的所有不同集合元素进行合并,得到用法用量合并结果。
在一些实施例中,上述装置还包括:区分单元(图中未示出)、添加单元(图中未示出)。区分单元可以被配置成识别药品文本中实体的属性。添加单元可以被配置成将实体的属性添加至药品知识图谱中。
在一些实施例中,上述装置还包括:格式化单元(图中未示出)和/或转化单元(图中未示出)。格式化单元可以被配置成对药品文本中表征相同意义的不同标点符号进行归一化处理。转化单元可以被配置成将药品文本中的中文数字转换为阿拉伯数字。
下面参考图8,其示出了适于用来实现本公开的实施例的电子设备800的结构示意图。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、等的输入装置806;包括例如液晶显示器(LCD,Liquid Crystal Display)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图8中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802被安装。在该计算机程序被处理装置801执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:识别药品文本中的实体;采用符合预设规则的字符串,替换实体中的医药关键实体,得到替换文本;将基于替换文本所确定的分词结果中的字符串,还原为被字符串所替换的医药关键实体;基于实体,形成各个实体之间的实体线性关系;根据对实体线性关系进行句法解析得到的解析结果,生成药品知识图谱。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向人群的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括识别单元、替换单元、还原单元、成形单元和解析单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,识别单元还可以被描述为“被配置成识别所述药品文本中的实体”的单元。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。