采集内容插入词库( 信息检索/10分词词库匹配引擎申请涉及针对医疗信息系统领域)
优采云 发布时间: 2022-02-16 01:24采集内容插入词库(
信息检索/10分词词库匹配引擎申请涉及针对医疗信息系统领域)
本申请涉及信息检索领域,尤其涉及医学信息分词词库全文检索领域。
背景技术:
随着医疗信息化的推进,医院已经形成了his(医院信息系统)、emr(电子病历)等医疗信息系统。
医疗信息系统中存在大量非结构化数据。由于编码标准不统一一、医生习语的差异,以及跨厂商信息系统的设计方法不一致。对于疾病的分类,国际上已经制作了icd(国际疾病分类)代码,方便共享和处理。
由于各个医疗机构的数据格式和数据内容不同,即使使用相同的编码,通常也会有独特的个性化处理。因此,一般情况下,跨医疗机构的icd码的维护和映射通常是人工进行的。或者开发相应的编码映射系统,由专人手动标注。而且这个过程很容易出现映射错误。
另一方面,虽然计算机可以进行icd编码的相关检索,但由于缺乏专业的业务分词词库,存在识别率低、命中率低、准确率低、进一步处理困难等问题。公认的词汇。. 医疗信息不仅包括标准化的二维表数据,还包括医嘱、病史、症状描述等非结构化信息。因此,有必要进行全文检索,映射icd9/10疾病分类、诊断和*敏*感*词*操作。
技术实施要素:
本发明专利的目的是提供一种基于icd9/10词库的全文检索匹配引擎,从而至少在一定程度上克服了现有技术的局限和缺陷所带来的一个或多个问题。 .
为实现上述目的,本发明采用的技术方案如下:
基于icd9/10分词词库的全文搜索匹配引擎包括:数据采集模块、数据分析模块、索引配置与定时任务模块、匹配引擎外部服务模块。
数据采集模块:对外提供数据接口或数据转储服务,用于将历史icd相关数据存储到引擎中。它为后续的数据分割和同义词标注提供了基础。
数据分析模块:接收数据采集模块中存储的数据,采用自动处理和人工分析相结合的方式,采用分词和关键词提取技术,将提取的分词和关键词显示在在可视化界面上;数据管理人员使用人工确认对上述提取的分词和关键词进行审核,审核后的数据被认为是分词词库的可靠来源和同义词的可靠来源。
索引配置与定时任务模块提供用户管理界面,用于配置索引名称、索引别名、索引文档等字段。可以根据测试环境进行索引配置操作;该模块还用于通过定时任务配置管理界面Task设置定时,按照一定的时间规则触发定时任务,批量同步配置维护的索引,同步到匹配引擎所在的官方环境.
匹配引擎外部服务模块:外部提供服务接口或服务接口,用于接收用户输入的请求文本,根据配置的分析器进行文本分析处理,调用elasticsearch搜索引擎过滤被索引的文档,返回匹配 icd9/10 编码和名称。
进一步的,数据采集模块采集历史电子病历信息,并存储在oracle或mongodb数据库中。
进一步地,数据分析模块对历史电子案例进行分词和词性标注处理,提取历史电子案例的关键词为icd9/10关键词。
进一步的,提取icd9/10关键词后,还需要对提取的icd9/10关键词进行人工审核和同义词维护,并将审核后的关键词收录到自定义的icd9/ 10个分词词库,并配置自定义icd9/10词库词库。
此外,还需要维护和配置自定义停用词词库,并根据自定义icd9/10分词词库、词库词库、停用词词库配置自定义分析器。
进一步的,索引配置和定时任务模块需要对标准icd9/10文档和历史电子病案信息文档进行索引,并初始化形成初始索引。
进一步,匹配引擎的外部服务模块调用elasticsearch搜索引擎之前,需要对icd9/10建立的索引进行特殊配置;包括:配置全文搜索字段,配置该字段使用的自定义分析器,需要额外引入自定义icd9/10分词词库、自定义停用词词库和自定义icd9/10词库词库。
进一步地,匹配引擎的外部服务模块使用嵌套组合查询,根据自定义查询方式和评分脚本,对多个字段进行加权评分,并将加权平均评分作为某个文档的评分结果,对文档进行排序和评分。,它返回最终匹配的 icd9/10 编码和名称。
本发明的有益效果:
原来常见的通用分词方法依赖于分词器的配置和内置词库。分词效果不好,命中率低。本发明的基于icd9/10分词词库的全文搜索匹配引擎,以历史电子病历数据为基础,结合自然语言处理等大数据技术,提取icd9/10的关键词和同义词。 -相关的疾病分类和外科*敏*感*词*。icd9/10 的个性化分词词库和自定义词库。它与完全手动标记的过程不同。以人工标注为辅助手段,针对机器无法处理或计算机无法100%确定的情况,基于专业知识进行人工判断,提高数据积累的效率和准确性。对于机器自动处理的关键词和分词,人工可以拒绝或再次修改,由医疗专业人员审核确认。
常见的全文索引引擎缺少业务个性化的配置,医疗领域icd9/10编码的相关部分更是少之又少。本发明深度定制了elasticsearch的分析器,扩展了分词词库,增加了词的同义词过滤器,优化了评分和排序过程,最终呈现出高命中率和相关性的检索结果。与传统使用默认分析器和默认评分过程相比,使用自定义分析器和评分脚本。与icd9/10疾病分类和外科*敏*感*词*相关的文献主要集中在icd9/10标准编码和历史映射关系上。对于文本分析,命中率错误率高,相关性不强。
图纸说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对实施例所需的附图进行简单介绍。显然,以下描述中的附图仅是本发明的一部分。在实施例中,对于本领域普通技术人员来说,在没有做出创造性劳动前提下,还可以根据这些附图获得其他的附图。
如图。附图说明图1为本发明提供的基于icd9/10分词词库的匹配引擎模块组成图。
如图。图2为本发明提供的基于icd9/10分词词库的匹配引擎整体流程图。
图3是查询分析和评分的流程图。
详细说明
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提出的基于icd9/10分词词库的全文搜索匹配引擎模块的组成及关系如下:
数据采集模块。负责对外提供数据接口或数据转储服务。将历史icd相关数据存储到引擎中。它为后续的数据分割和同义词标注提供了基础。
数据分析模块。这部分的输入是数据采集模块的存储内容。现有数据基于自动匹配结合人工方法,通过双特里特字典和nlp自然语言处理模型进行分词和关键词提取。从历史数据中提取的分词和关键词显示在可视化页面上。可视化页面允许不同的数据管理员通过设置角色,根据不同的数据管理员角色查看和查看分词结果和关键词提取结果。基于医学专业知识的判断,进行人工确认和审查,
该模块的操作步骤如下:
步骤1.数据采集模块采集icd相关数据,实现基于NLP实现的提取技术关键词。保存建议的关键词,提取时间,关键词 词频。
步骤2.在关键的可视化界面中显示提取的关键词信息。管理员角色用户查看 关键词 和分词结果。关键词 可以与现有的词库相关联,即断言为同义词。
步骤3.根据专业知识判断,拒绝或通过关键词复核。
步骤4.审核通过的关键词和分词进入对应词库。
索引配置和定时任务模块。该模块为辅助模块,负责通过定时任务将配置或词库与数据采集模块或数据分析模块的结果同步到开发环境或正式环境。同时提供一定的日志功能,记录引擎产生的各种行为日志。该模块记录任务日志和手动操作配置日志,记录索引配置行为和数据同步任务的状态和结果,提供对外查询的能力。索引配置模块提供用户管理接口,用于配置索引名称(如icd9)、索引别名、索引文档字段等)。系统提供一定的备份和恢复能力。词库区分多个环境。并且所述定时任务模块提供了可以进行定时任务配置的管理界面,支持按照一定的时间规则触发定时任务,该定时任务可以批量同步前面步骤中配置维护的索引,例如同步手动维护关键词和匹配引擎所在环境的分词索引。
该模块的操作步骤如下:
步骤1.确认环境的索引配置,可以修改名称或别名。
步骤2.为计划任务创建时间表达式。表达式采用业界通用的cron表达式,如配置表达式“0002***”,即每天凌晨2:00触发。
步骤 3. 与计划任务相关联。例如,上述时间表达式与“同步关键词 到正式环境”任务相关联。那么当表达式被触发时,当前环境的索引配置就会开始同步。完成后,正式环境的匹配引擎可以提供基于最新词库的服务。
匹配引擎外部服务模块。该模块是向外界提供服务的模块。用于接收用户输入的请求文本,根据配置的分析器进行文本分析处理,调用elasticsearch搜索引擎过滤被索引的文档,返回匹配的icd9/10代码和名称。
匹配引擎的外部服务模块一般通过提供http接口来暴露服务,输入是调用者的请求文本,搜索系统的api和内部实际调用的自己的api,搜索结果输出到呼叫者。
匹配引擎的工作流程如图2所示,
步骤1.是基于已经采集到的历史电子病历信息。存储到数据存储,例如 oracle 或 mongodb。
步骤2. 对数据进行如下预处理,得到预处理后的icd9/10电子病历关键词:
对历史电子病历进行分词处理;对历史电子病历进行词性标注处理;提取历史电子病历关键词。
步骤 3.手动维护提取的 icd9/10关键词 的同义词。
步骤4.维护和配置定制的icd9/10相关分词词库、词库词库、停用词词库。并将此组合配置为自定义分析器。
步骤5. 对标准icd9/10文档和历史电子病历信息文档进行索引,初始化形成初始索引。
步骤6.提供了一个匹配的服务接口或者对外的接口。用户输入一段相关文本。服务后台会根据配置的分析器进行文本分析处理。基于elasticsearch搜索引擎,对被索引的文档进行过滤和召回。同时,根据配置的搜索条件和自定义评分脚本,对文档进行排序评分,最终返回建议匹配的icd9/10代码和名称。
具体来说,步骤 1 包括:
1.1 用于已采集的历史电子病历信息。基于java语言和jdbc驱动,将历史电子病历的相关文本存储在oracle或mongodb等存储系统中。作为非结构化存储,使用字段来存储整段文本。本文仅以java语言为例,不限制具体的数据转储过程。
具体而言,步骤 2 包括:
2.1 对数据进行预处理,主要采用基于大数据的自然语言处理(nlp)方法。包括但不限于具体的处理工具包和类库:如jieba分词工具包、hanlp自然语言处理工具包。
分词算法包括但不限于:标准分词、nlp分词、n最短路径分词、crf分词等多种形式。
提取关键词的算法包括但不限于:基于tf-idf算法的关键词提取和基于textrank算法的关键词提取。
2.2 不同的工具包和算法生成不同的关键词。对于不同的结果,可以手动进行评分和选择。最终形成的分词词库和词库词库进行人工审核。
具体而言,步骤 3 包括:
3.1 同义词的维护是对切分后的历史数据进行人工标注,结合医学专业背景知识,经审批后确定一组同义词。
喜欢:
icd 编码 icd 名称同义词
c34.101 肺癌上叶恶性肿瘤
c77.102 肺门淋巴结恶性肿瘤继发肺癌
具体而言,步骤4包括:
4.1使用elasticsearch作为搜索引擎,为icd9/10建立的索引需要特殊配置。
例如,对于疾病领域。
将疾病字段配置为全文搜索字段。
配置此字段以使用自定义分析器。
配置自定义分析器以额外引入自定义 icd9/10 分词词库。
将此自定义分析器配置为使用自定义停用词问题库。
配置此自定义分析器以使用自定义 icd9/10 词库。
示例配置如下:
1.配置自定义分析器,例如命名为icd 分析器。名称没有特别限制,只要能体现icd业务的专属使用即可。
2.将分析器类型设置为:自定义。也就是说,分析器的组件都指定了类型。您不能在此处配置其他类型的分析器,因为这样做会使后续的自定义配置失效。
3.设置分析器的字符构造器:使用ik分词插件中的ik_max_word配置,将输入文本分割成尽可能多的单词或单词
3.1 指定分词插件ik_max_word使用的扩展库,为积累而生成的icd扩展库。文件名如:icd_extra_main.dic。命名没有特别限制,只要能体现icd业务即可。
4.为此分析器设置过滤器:将过滤器指定为 icd_synoym 过滤器。命名不受限制。
4.1该过滤器的详细配置:类型为同义词过滤器。
4.2 同义词过滤器使用指定目录中的文件作为词库。指定目录下的文件是指累积生成词库的指定格式。
具体而言,步骤6包括:
6.1 对外提供搜索服务,基于elasticsearch的tf-idf算法对文档进行命中打分(另外说明如何使用elasticsearch的tf-idf算法进行命中打分)。
具体详情如下:
elasticsearch搜索引擎是基于Lucence实现的。用于检索的算法是 tf-idf 算法。
tf-idf 算法是 termfrequency/inversedocumentfrequency 算法。由两部分组成。tf 是指词条在文档中的文本中出现的频率。例如,搜索“上叶肺癌”。分词结果可以分割为:肺、上叶、肺上叶、恶性、肿瘤、恶性肿瘤。这些单词中的每一个都计算现有文档中出现的次数。对于现有文档,每个单词出现的次数越多,文档与搜索内容的相关性就越高。idf 是指文本中的术语在所有文档中出现的频率。例如,lung这个词在所有文档中出现的量很大,即该词无处不在,出现的文档越多,则认为该词的相关性越低。
通过 tf 与 idf 的比例,可以保证文本的相关性。tf 值越高,idf 值越低,文本相关性越高。因此,为了达到更好的效果。自动数据匹配引擎,通过累积和注释的自定义词库和同义词。使icd9/10相关词能正确分词。增加在指定文档中出现的频率,即 boost tf. 同时可以减少不相关文档中出现的次数,即减少idf。从而提高相关输入文本的相关性得分。
6.2 自定义查询结构,使用嵌套组合查询对多个字段进行打分,最终形成加权平均分。
查询流程如图3所示,具体说明如下:
第一:查询前,根据历史积累的同义词、停用词、分词词库进行配置。这部分直接利用了分析模块已有的成果,请求调用者不需要感知。
第二:将累积的分词词库、停用词、同义词配置到自定义分析器中。这部分采用固定配置,可以根据匹配命中的效果不断优化。其中,分词词库、停用词、同义词可以不断优化,专业、符合医学经验的词可以加入词库。
再次:将历史中已经存在的电子病历数据通过自定义分析器重新注入到elasticsearch索引中。此时已经注入的数据的分词效果相当于配置的分析器需要的效果。这部分数据用作可搜索的文档。
之后:查询请求路由到外部服务模块,外部服务模块通过http调用elasticsearch查询服务。具体查询方式采用嵌套组合的方式。
示例:对 icd 字段使用全文搜索,例如疾病字段。疾病字段应收录至少一个输入的关键字。满足此要求的文档作为命中条件。标记化后收录输入文本的关键字越多,文档被认为与输入文本越相关。一次查询会返回多个结果,分页只取前10个结果,全数返回给请求者。并且默认情况下,相关性得分最高的被认为是命中的icd码。
基于上述方案,本发明提供了一种通用的业务特征匹配方案。即针对业务个性化逆行关键词提取和同义词标注,同时配置个性化的elasticsearch分析器,从而提高该业务全文索引的命中率和准确率。