发明内容
本发明实施例提供一种医学术语库的存储方法和装置,用以解决现有技术中对医疗术语库查询速率低的问题。
本发明实施例提供一种医学术语库的存储方法,包括:针对医疗术语库中的每个概念,将所述概念和所述概念的各描述分别作为图形数据库中的节点进行存储;在所述概念对应的节点与所述概念的各描述对应的节点之间通过所述图形数据库中的描述关系边连接并进行存储;所述描述关系边用于指示概念与描述之间的关系;在存在关联关系的概念对应的节点之间通过所述图形数据库中的关联关系边连接并进行存储;所述关联关系边用于指示概念与概念之间的关系。
由于医疗术语库的形式是知识图谱,知识图谱是一个网络结构,而图形数据也是一个网络结构,因此,医疗术语库和图形数据库之间的结构比较相近,将医疗术语库存储在图形数据时,转换所需要的映射关系比较自然,实现起来也相对容易,而且也有助于降低后期医疗术语库维护的成本。
进一步,图形数据库可以提供丰富的检索接口、对医疗术语库的进行遍历的能力、以及根据节点的索引值对医疗术语库中概念和概念的各描述进行快速检索的能力,因此,将医疗术语库存储于图形数据库中,可以利用图形数据提供的功能操作医疗术语库。比如,图形数据库可以提供丰富的检索接口,可提高医疗术语库的检索速度;通过节点的索引值可以快速的查询到要找的节点,进而可实现快速对查询到的节点做删除或者修改。而且,图形数据库提供了对医疗术语库进行遍历的能力,因此可以提高遍历医疗术语库的速度和效率。
一种将医疗术语库中概念之间的关系通过图形数据库中的边关联起来的方式。可选地,所述关联关系边包括属性关系边和包含关系边;所述在存在关联关系的概念对应的节点之间通过所述图形数据库中的关联关系边连接并进行存储,包括:在存在属性关系的概念对应的节点之间通过所述图形数据库中的所述属性关系边连接并进行存储;在存在包含关系的概念对应的节点之间通过所述图形数据库中的所述包含关系边连接并进行存储。
为了能更精确的确定概念之间的相关程度,以便于根据概念之间的属性关系来做诊断,可以对存在属性关系的概念进行分组。可选地,所述在存在属性关系的概念对应的节点之间通过所述图形数据库中的属性关系边连接并进行存储之前,还包括:确定与所述概念存在属性关系的概念中具有至少一个共同属性的概念;将所述共同属性作为所述图形数据库中的节点进行存储;将所述概念对应的节点与所述共同属性对应的节点通过所述图形数据库中的组关系边连接并存储;将所述共同属性对应的节点与具有所述共同属性的概念对应的节点通过所述属性关系边连接并存储。
为了便于快速确定出图形数据库中节点之间的关系,所述描述关系边指向的方向是概念的各描述对应的节点;所述属性关系边指向的方向是概念对应的属性关系的节点;所述包含关系边指向的方向是被包含的概念对应的节点。
本发明实施例提供一种医学术语库的存储装置,包括:处理单元,用于针对医疗术语库中的每个概念,将所述概念和所述概念的各描述分别作为图形数据库中的节点进行存储;连接单元,用于在所述概念对应的节点与所述概念的各描述对应的节点之间通过所述图形数据库中的描述关系边连接并进行存储;所述描述关系边用于指示概念与描述之间的关系;在存在关联关系的概念对应的节点之间通过所述图形数据库中的关联关系边连接并进行存储;所述关联关系边用于指示概念与概念之间的关系。
可选地,所述关联关系边包括属性关系边和包含关系边;所述连接单元,用于:在存在属性关系的概念对应的节点之间通过所述图形数据库中的所述属性关系边连接并进行存储;在存在包含关系的概念对应的节点之间通过所述图形数据库中的所述包含关系边连接并进行存储。
可选地,所述装置还包括确定单元,用于:确定与所述概念存在属性关系的概念中具有至少一个共同属性的概念;所述处理单元,用于:将所述共同属性作为所述图形数据库中的节点进行存储;所述连接单元,用于:将所述概念对应的节点与所述共同属性对应的节点通过所述图形数据库中的组关系边连接并存储;将所述共同属性对应的节点与具有所述共同属性的概念对应的节点通过所述属性关系边连接并存储。
可选地,所述描述关系边指向的方向是概念的各描述对应的节点;所述属性关系边指向的方向是概念对应的属性关系的节点;所述包含关系边指向的方向是被包含的概念对应的节点。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述所述的方法。
本发明实施例提供一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述的方法。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中,医疗术语库SNOMED CT的形式为知识图谱。SNOMED CT的结构包括概念、概念的各描述、概念与概念之间的关系、以及概念与各描述之间关系。概念是指医学中标准的临床术语,每个概念都有唯一的概念码、唯一的全称,例如SNOMED CT中咽喉痛(Pain in throat)是概念,咽喉痛的唯一概念码是162397003,咽喉痛的唯一全称是咽喉痛。概念的各描述即是概念的同义词,这是由于指称同一事物的时候,不同的临床医生和医疗卫生机构往往会采用不同的医学短语。一个概念可能会有多个描述,也可能没有描述,例如咽喉痛(概念)有多个描述,分别为:喉咙痛(Sore throat)、嗓子痛(Throat pain)、咽痛(Pain in pharynx)、咽喉不适(Throat discomfort)、咽痛(Pharyngeal pain)、咽喉酸痛(Throat soreness);发热(概念)没有描述。在SNOMED CT中,通过关系将概念与各描述联系在一起。
在SNOMED CT中,也可通过关系将概念与概念联系在一起。概念与概念之间的关系包括同一层级结构之间的关系、以及不同层级结构之间关系;其中,同一层级结构之间的关系包括包含关系(IS-A),不同层级结构之间的关系包括属性关系。比如概念包括:关节炎、关节系统疾病、骨科疾病和关节,关节炎属于关节系统疾病,关节系统疾病属于骨科疾病,则关节炎、关节系统疾病和骨科疾病就形成了一种IS-A关系(关节炎→关节系统疾病→骨科疾病就);关节炎在属性关联(部位属性)中推导出症状发生的部位是关节,则关节炎和关节形成了属性关系。
图形数据库的结构中有两种基本的类型,即图形数据库的节点和边。节点表示实体,边则表示实体之间的关系,两个节点之间可以有不同的关系。不同实体通过各种不同的关系关联起来,形成复杂的对象图。节点和边都可以有自己的属性,节点的属性以及边的属性可以键值对的方式进行存储。节点与节点之间的关系可以有方向,如图1所示,节点1分别通过边关系(PROCESS_IN)分别与节点2和节点3连接,节点1为起始节点(startNode),节点2和节点3为终止节点(endNode),即边是有方向的,方向分别指向节点2和节点3。
图形数据库包括但不限于Neo4j、FlockDB或AllegroGrap。其中,Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员使用该图形数据库工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中;可以享受到具备完全的事务特性、企业级的数据库的所有好处。图形数据库可以提供丰富的存储对象检索接口、对存储对象进行遍历的能力、以及对图形数据库中的节点进行检索的能力;其中,对节点进行检索的能力可以根据索引值快速找到相应的节点。
基于上述内容,图2示例性示出了本发明实施例提供的一种医学术语库的存储方法流程示意图。本发明实施例中,医学术语库可以是上述SNOMED CT,也可以是其他知识图谱结构的医学术语库。如图2所示,该方法包括:
步骤201,针对医疗术语库中的每个概念,将概念和概念的各描述分别作为图形数据库中的节点进行存储。
可选地,上述图形数据库中的节点表示实体,在医疗术语库SNOMED CT中的实体包括概念和概念的各描述。一种可能的实施方式中,将概念和概念的各描述可用不同的颜色或者不同的形状标识。
步骤202,在概念对应的节点与概念的各描述对应的节点之间通过图形数据库中的描述关系边连接并进行存储;描述关系边用于指示概念与描述之间的关系。
步骤203,在存在关联关系的概念对应的节点之间通过图形数据库中的关联关系边连接并进行存储;关联关系边用于指示概念与概念之间的关系。
上述步骤202和上述步骤203之间没有先后顺序,可以先执行步骤202,后执行步骤203,也可以先执行步骤203,后执行步骤202,也可以步骤202和步骤203交叉执行。
在步骤202和步骤203中,图形数据库中节点之间的关系包括描述关系和关联关系,描述关系通过描述关系边将相应的节点连接并存储于图形数据库中,关联关系通过关联关系边将相应的节点连接并存储于图形数据库中。本发明实施例通过上述步骤201至步骤203的医学术语库的存储方法实现了将医疗术语库存储于图形数据库中。
由于医疗术语库的形式是知识图谱,知识图谱是一个网络结构,而图形数据也是一个网络结构,因此,医疗术语库和图形数据库之间的结构比较相近,将医疗术语库存储在图形数据时,转换所需要的映射关系比较自然,实现起来也相对容易,而且也有助于降低后期医疗术语库维护的成本。
进一步,图形数据库可以提供丰富的检索接口、对医疗术语库的进行遍历的能力、以及根据节点的索引值对医疗术语库中概念和概念的各描述进行快速检索的能力,因此,将医疗术语库存储于图形数据库中,可以利用图形数据提供的功能操作医疗术语库。比如,图形数据库可以提供丰富的检索接口,可提高医疗术语库的检索速度;通过节点的索引值可以快速到的查询到要找的节点,进而可实现快速对查询到的节点做删除或者修改。而且,图形数据库提供了对医疗术语库进行遍历的能力,因此可以提高遍历医疗术语库的速度和效率。
通过实验数据发现,在将医疗术语库存储在MongoDB中,查询医疗术语库中的一个概念需要的时间为8.31秒,但是将医疗术语库存储在图形数据库Neo4j中,查询一个概念需要的时间为29.72毫秒,查询一个概念的效率可以提高上百倍的速率。
在上述步骤203中,所述关联关系边包括属性关系边和包含关系边;在存在属性关系的概念对应的节点之间通过所述图形数据库中的所述属性关系边连接并进行存储;在存在包含关系的概念对应的节点之间通过所述图形数据库中的所述包含关系边连接并进行存储。一种可能的实施方式中,将属性关系边和包含关系边可以用不同颜色的连接线标识。
本发明实施例中概念之间具体的属性关系或者包含关系、以及概念与概念的描述之间的描述关系的存储形式可通过以下两种实现方式来实施。实现方式一:概念与概念的描述之间的描述关系可以标注在描述关系边上,比如,描述关系边上标注的描述关系可用有描述(HAS_DESCRPTION)表示。概念之间的属性关系可以标注在属性关系边上,比如,在属性关系边上标注的属性关系可用部分(PART_OF)、偏侧(LATERALITY)、病原体(CAUSATIVE_AGENT)等表示。概念之间的包含关系也可以标注在概念关系边上,比如在包含关系边上标注的包含关系可用IS_A表示。实现方式二:概念之间的具体属性关系和概念之间的包含关系以键值对的方式存储。例如关节炎、关节系统疾病和骨科疾病形成的包含关系存储为键值对的形式为(关节炎,关节系统疾病,包含关系)和(关节炎,骨科疾病,包含关系),关节炎和关节形成的属性关系存储为键值对的形式为(关节炎,部位,关节)。
为了能更精确的确定概念之间的相关程度,以便于根据概念之间的关联关系来做诊断,本发明实施例中,在存在属性关系的概念对应的节点之间通过所述图形数据库中的属性关系边连接并进行存储之前,还包括:确定与所述概念存在属性关系的概念中具有至少一个共同属性的概念;将所述共同属性作为所述图形数据库中的节点进行存储;将所述概念对应的节点与所述共同属性对应的节点通过所述图形数据库中的组关系边连接并存储;将所述共同属性对应的节点与具有所述共同属性的概念对应的节点通过所述属性关系边连接并存储。
本发明实施例中,每个概念可以对应一个共同属性的概念,也可以对应多个共同属性的概念,也可以没有共同属性的概念。例如,流感、流感病毒和病毒均是概念,流感分别与流感病毒和病毒之间均存在属性关系,流感病毒和病毒具有共同属性,用第一组标识表示。一种可选地的实施方式,将第一组标识也作为图形数据库中的节点进行存储。可选地,将共同属性作为图形数据库中的节点时,该节点可以用不同于概念和概念的各描述的节点来标识。
本发明实施例中,图形数据库中的节点与节点之间的关系可以有方向,为了便于快速确定出图形数据库中节点之间的关系,将图形数据库描述关系边、属性关系边以及包含关系边均指示出对应的方向。一种可能的实施方式中,所述描述关系边指向的方向是概念的各描述对应的节点;所述属性关系边指向的方向是概念对应的属性关系的节点;所述包含关系边指向的方向是被包含的概念对应的节点。
本发明实施例中,以如下具体的例子来说明将医疗术语库存储于图形数据库后,图形数据库中节点之间的关系边的方向。例如关节炎、关节系统疾病和骨科疾病形成的包含关系中,关节炎对应的节点和关节系统疾病对应的节点通过包含关系边连接,其中,起始节点为关节炎、终止节点为关节炎系统疾病,该包含关系边由关节炎对应的节点指向关节系统疾病对应的节点。关节系统疾病对应的节点和骨科疾病对应的节点之间也由包含关系边连接,其中,起始节点为关节系统疾病对应的节点、终止节点为骨科疾病对应的节点,该包含关系边由关节系统疾病对应的节点指向骨科疾病对应的节点。即包含关系边的指向方向是父节点(该例子中的骨科疾病对应的节点),即被包含的概念对应的节点。关节炎和关节形成属性关系,关节炎对应的节点和关节对应的节点之间通过属性关系边连接,该属性关系边由关节炎对应的节点指向关节对应的节点,即属性关系边指向概念对应的属性关系的节点。在图形数据库中存在共同属性作为节点时,所述属性关系边指向的方向是概念对应的属性关系的节点,比如,流感、流感病毒和病毒均是概念,流感分别与流感病毒和病毒之间均存在属性关系,流感病毒和病毒具有共同属性用第一组标识。一种可选地的实施方式,将第一组标识也作为图形数据库中的节点进行存储;属性关系边由第一组标识分别指向流感病毒和病毒,即属性关系边指向概念对应的属性关系的节点。咽喉痛的描述包括喉咙痛、咽痛和咽喉不适,咽喉痛分别通过描述关系边与喉咙痛、咽痛和咽喉不适连接,该描述关系边由咽喉痛分别指向喉咙痛、咽痛和咽喉不适,即描述关系边指向概念的各描述对应的节点。
为了更清晰的展示医疗术语库存储于图形数据库中的形式,为了便于说明,本发明实施例以图形数据库Neo4j为例。图3示例性示出了本发明实施例提供的一种医学术语库存储于图形数据库Neo4j的结构示意图。如图3所示,该结构中的以节点表示的实体分别为:流感、流行性感冒、感冒、正粘病毒感染、呼吸道感染、甲型流感病毒性流感、乙型流流感病毒性流感、流感病毒、传染过程、病毒、呼吸系统、第一组标识和第二组标识为例说明;其中,第一组标识和第二组标识仅用于区分概念属于不同的组,即概念之间具有的共同属性不同,不表示任何顺序。在这些实体节点中,流感、正粘病毒感染、呼吸道感染、甲型流感病毒性流感和乙型流流感病毒性流感为概念;流行性感冒和感冒为概念(流感)的描述;流感病毒和病毒为具有共同属性,用第一组标识作为概念,传染过程和呼吸系统为具有共同属性,用第二组标识作为概念。
在图3中,流感对应的节点通过图形数据库中描述关系边与流行性感冒对应的节点连接,描述关系边的指向方向是流行性感冒对应的节点;流感对应的节点通过图形数据库中描述关系边与感冒对应的节点连接,描述关系边的指向方向是感冒对应的节点;描述关系边上标注的描述关系可用有描述(HAS_DESCRPTION)表示。流感对应的节点与正粘病毒感染对应的节点通过图形数据库中包含关系边连接,包含关系边的指向方向是正粘病毒感染对应的节点;流感对应的节点与呼吸道感染对应的节点通过图形数据库中包含关系边连接,包含关系边的指向方向是呼吸道感染对应的节点;流感对应的节点与甲型流感病毒性流感对应的节点通过图形数据库中包含关系边连接,包含关系边的指向方向是流感对应的节点;流感对应的节点与乙型流流感病毒性流感对应的节点通过图形数据库中包含关系边连接,包含关系边的指向方向是流感对应的节点;包含关系边上标注的包含关系可用IS-A表示。流感对应的节点与第一组标识对应的节点通过组关系边连接,组关系边的指向方向是第一组标识对应的节点;流感对应的节点与第二组标识对应的节点通过组关系边连接,组关系边的指向方向是第二组标识对应的节点;组关系边上标注的关系可用有共同属性组(HAS_ROLE_GROUP)表示表示。第一组标识对应的节点通过属性关系边与流感病毒对应的节点连接,属性关系边的指向方向是流感病毒对应的节点;第一组标识对应的节点通过属性关系边分别与病毒对应的节点连接,属性关系边的指向方向是病毒对应的节点;第二组标识对应的节点通过属性关系边与传染过程对应的节点连接,属性关系边的指向方向是传染过程对应的节点;第二组标识对应的节点通过属性关系边与呼吸系统对应的节点连接,属性关系边的指向方向是呼吸系统对应的节点;属性关系边上标注的属性关系可用病原体(CAUSATIVE_AGENT)、病理过程(PATHOLOGICAL_PROCESS)、部分(PART_OF)等表示。
基于相同的技术构思,本发明实施例还提供一种医学术语库的存储装置,该装置可执行上述方法实施例。图4为本发明实施例提供了一种医学术语库的存储装置的结构示意图,如图4所示,该装置400包括处理单元401、连接单元402;可选地,还包括确定单元403。其中:
处理单元,用于针对医疗术语库中的每个概念,将所述概念和所述概念的各描述分别作为图形数据库中的节点进行存储;
连接单元,用于在所述概念对应的节点与所述概念的各描述对应的节点之间通过所述图形数据库中的描述关系边连接并进行存储;所述描述关系边用于指示概念与描述之间的关系;在存在关联关系的概念对应的节点之间通过所述图形数据库中的关联关系边连接并进行存储;所述关联关系边用于指示概念与概念之间的关系。
可选地,所述关联关系边包括属性关系边和包含关系边;所述连接单元,用于:在存在属性关系的概念对应的节点之间通过所述图形数据库中的所述属性关系边连接并进行存储;在存在包含关系的概念对应的节点之间通过所述图形数据库中的所述包含关系边连接并进行存储。
可选地,所述装置还包括确定单元,用于:确定与所述概念存在属性关系的概念中具有至少一个共同属性的概念;所述处理单元,用于:将所述共同属性作为所述图形数据库中的节点进行存储;所述连接单元,用于:将所述概念对应的节点与所述共同属性对应的节点通过所述图形数据库中的组关系边连接并存储;将所述共同属性对应的节点与具有所述共同属性的概念对应的节点通过所述属性关系边连接并存储。
可选地,所述描述关系边指向的方向是概念的各描述对应的节点;所述属性关系边指向的方向是概念对应的属性关系的节点;所述包含关系边指向的方向是被包含的概念对应的节点。
从上述内容可以看出:本发明实施例中,由于医疗术语库的形式是知识图谱,知识图谱是一个网络结构,而图形数据也是一个网络结构,因此,医疗术语库和图形数据库之间的结构比较相近,将医疗术语库存储在图形数据时,转换所需要的映射关系比较自然,实现起来也相对容易,而且也有助于降低后期医疗术语库维护的成本。
进一步,图形数据库可以提供丰富的检索接口、对医疗术语库的进行遍历的能力、以及根据节点的索引值对医疗术语库中概念和概念的各描述进行快速检索的能力,因此,将医疗术语库存储于图形数据库中,可以利用图形数据提供的功能操作医疗术语库。比如,图形数据库可以提供丰富的检索接口,可提高医疗术语库的检索速度;通过节点的索引值可以快速到的查询到要找的节点,进而可实现快速对查询到的节点做删除或者修改。而且,图形数据库提供了对医疗术语库进行遍历的能力,因此可以提高遍历医疗术语库的速度和效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现、当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述指令可以存储在计算机存储介质中,或者从一个计算机存储介质向另一个计算机存储介质传输,例如,所述指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带、磁光盘(MO)等)、光介质(例如,CD、DVD、BD、HVD等)、或者半导体介质(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(Solid State Disk,SSD))等。本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。