掌桥专利:专业的专利平台
掌桥专利
首页

基于Bert字模型的数据表分类方法、装置及介质

文献发布时间:2023-06-19 10:19:37


基于Bert字模型的数据表分类方法、装置及介质

技术领域

本发明涉及文本信息挖掘技术领域,具体地说是基于Bert字模型的数据表分类方法、装置及介质。

背景技术

医疗信息化的不断发展产生了大量的医疗数据,而这些海量的医疗数据在医院医疗信息系统里存于不同的表中,而且各医院使用的信息系统并不全部相同,这就导致业务系统后台存储的元数据差别比较大。在充分利用这些医疗数据之前,首先需要对数据进行治理,那么将医疗系统中存储的元数据表进行归类则是必不可少的一步。

目前,将系统中元数据表进行归类基本上是依赖于人的主观经验。首先,数据治理人员会根据元数据表的表名,对元数据表进行粗略的判断,如基本信息表可能会包含“info”这样的关键字,诊断表可能会包含“diag”这样的关键字;接着,映射人员会根据字段内容和字段名对字段内容进行判别,如果某字段下内容为“男”、“女”,那么该字段极大可能属于性别字段,如果某字段名称为“units”,那么该字段属于“单位”字段。

随着医院数量以及信息系统的增多,元数据表的数量也会不断的增加,仅凭人工对元数据表进行归类汇聚,将会消耗大量的人力,效率会比较低。

如何高效的对医疗系统中元数据表进行准确归类,是需要解决的技术问题。

发明内容

本发明的技术任务是针对以上不足,提供基于Bert字模型的数据表分类方法、装置及介质,来解决如何高效的对医疗系统中元数据表进行准确归类的问题。

第一方面,本发明提供一种基于Bert字模型的数据表分类方法,包括:

对于元数据表中非中文的字段以及值域小于预设值的字段,基于预设的判别规则对字段进行内容类型判断,得到字段类型,所述预设的判别规则为基于历史元数据表中字段的内容配置的,用于基于字段的内容对字段进行类别判断;

对于元数据表中值域等于或大于预设值的字段字段,通过Bert字模型对字段内容进行类别判断,得到字段类型以及字段属于各个类型的概率;

基于元数据表中字段内容的所属类别,判断元数据表的所属类别。

作为优选,所述判别规则包括但不限于正则表达式匹配和关键字匹配。

作为优选,历史元数据表中字段类型包括:

时间,所述时间在数据表中对应的Type为Date;

数值,所述数值在数据表中对应的Type为Number;

ICD编码,所述ICD在数据表中对应的Type为String;

身份证号,所述身份证号在数据表中对应的Type为String;

婚姻状态,所述婚姻状态在数据表中对应的Type为String,对应的值域列表包括已婚、未婚、离异、丧偶、再婚以及复婚;

性别,所述性别在数据表中对应的Type为String,对应的值域列表包括男、女、男性和女性;

对于上述时间、数值、婚姻状况以及性别,通过关键字匹配对字段进行内容类型判断;

对于上述ICD编码和身份证号,通过正则表达式匹配对字段进行内容类型判断。

作为优选,通过Bert字模型对字段内容进行类别判断,包括如下步骤:

读取每个字段的文本内容,将字段的文本内容作为输入input;

基于Bert模型,将输入input编码转换为Bert模型需要的编码格式,并通标记符[CLS]和[SEP]来表示文本内容的开始和分隔;

根据输入input得到对应的embedding,所述embedding为token级别、segment级别以及position级别三种级别的embedding的和;

以上述对应的embedding为输入,通过训练后的Bert模型进行学习以识别字段的内容类型,得到字段类型以及字段属于各个类型的概率。

作为优选,所述Bert模型为文本分类模型model_fn,并嵌入有自定义的DataProcessor,所述DataProcessor用于数据转换成Bert模型可以处理的数据格式,并用于将数据划分为训练集、验证集、测试集,同时为训练集、验证集中的数据生成标签,便于Bert模型进行训练。

作为优选,通过如下方法训练Bert模型得到训练后Bert模型:

将训练数据集统一放在一个目录下,所述目录包括三个文件,分别为 train.txt文件、eval.txt文件和predict.txt文件,上述每个文件中每行为一个样本;

构建DataProcessor子类,并继承三个get_examples方法和一个 get_labels方法,所述三个get_examples方法分别为get_train_examples 方法、get_dev_examples方法和get_test_examples方法,每个 get_examples方法用于从数据集目录中获得对应的InputExample列表;

在main函数中,向main函数开头的processors字典增加一项,key 为数据集名称,value为上述定义的DataProcessor的类名;

基于训练数据集训练所述Bert模型,调整参数,得到训练后Bert模型。

第二方面,本发明提供一种装置,其特征在于,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一所述的方法。

第三方面,本发明提供一种介质,为计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。

本发明的基于Bert字模型的数据表分类方法、装置及计算机可读介质具有以下优点:

1、结合Bert字模型以及预设的判别规则判断元数据表中字段内容的所属类别,通过字段内容的所属列表判读元数据表的所属类别,其中,通过判别规则对非中文的字段以及值域偏小的字段进行判断,通过Bert字模型对值域较大的字段进行判断,实现了全面准确的类别判断,且相较于人工方式提高了效率;

2、Bert字模型可得出字段类型以及字段属于各个类型的概率,便于更直观的显示类别。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

下面结合附图对本发明进一步说明。

图1为实施例1基于Bert字模型的数据表分类方法的流程框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

本发明实施例提供基于Bert字模型的数据表分类方法、装置及计算机可读介质,用于解决如何高效的对医疗系统中元数据表进行准确归类的技术问题。

实施例1:

本发明的一种基于Bert字模型的数据表分类方法,针对医疗信息系统中存在大量的元数据表,通过各个元数据表字段下的内容,判断出字段内容所属的类别,从而进一步判断出该元数据表的所属类别。

通过各个元数据表字段下的内容,判断出字段内容所属的类别,包括:

对于元数据表中非中文的字段以及值域小于预设值的字段,基于预设的判别规则对字段进行内容类型判断,得到字段类型,所述预设的判别规则为基于历史元数据表中字段的内容配置的,用于基于字段的内容对字段进行类别判断;

对于元数据表中值域等于或大于预设值的字段,通过Bert字模型对字段内容进行类别判断,得到字段类型以及字段属于各个类型的概率。

具体执行流程如图1所示:

(1)计算元数据表记录条数;

(2)记录条数大于设定的阈值;

(3)随机抽取N条;

(4)获取元数据表中数据字段类型;

(5)对于字符串,判断是否为中文,如果为中文执行步骤(6),如果为时间或数值,执行步骤(7);

(6)判断中文值域是否小于预设的阈值,如果小于预设的阈值,执行步骤 (7),如果大于预设的阈值,执行步骤(8);

(7)基于预设的判别规则对字段进行内容类型判断,得到字段类型,以便于基于字段类型判断元数据表的所属类型;

(8)通过Bert字模型对字段内容进行类别判断,得到字段类型以及字段属于各个类型的概率,以便于基于字段类型判断元数据表的所属类型。

本实施例中,预设的判别规则为基于历史元数据表中字段的内容配置的,用于基于字段的内容对字段进行类别判断。在本实施例中主要通过正则表达式匹配以及关键字匹配等方式对非中文字段以及值域偏小的字段进行内容类表判断,具体规则如表1所示。

表1

对于上述时间、数值、婚姻状况以及性别,通过关键字匹配对字段进行内容类型判断;对于上述ICD编码和身份证号,通过正则表达式匹配对字段进行内容类型判断。

NLP模型判断是基于短文本分类算法,对值域偏大的字段内容进行类别判断,但由于元数据表中字段下内容已经结构化,结构化文本均为短语或词语,并不具备完备的上下文语义信息,因此,这里我们选用了Bert字模型作为文本分类模型,文本大致分类如表2所示。

表2

通过Bert字模型对字段内容进行类别判断,包括如下步骤:

(1)读取每个字段的文本内容,将字段的文本内容作为输入input;

(2)基于Bert模型,将输入input编码转换为Bert模型需要的编码格式,并通标记符[CLS]和[SEP]来表示文本内容的开始和分隔;

(3)根据输入input得到对应的embedding,所述embedding为token 级别、segment级别以及position级别三种级别的embedding的和;

(4)以上述对应的embedding为输入,通过训练后的Bert模型进行学习以识别字段的内容类型,得到字段类型以及字段属于各个类型的概率。

其中Bert模型为文本分类模型model_fn,并嵌入有自定义的DataProcessor,该DataProcessor用于将数据转换成模型可以处理的数据格式,其次将数据划分为训练集、验证集、测试集,同时为训练集、验证集中的数据生成标签,便于模型进行训练。

本实施例通过如下方法训练Bert模型得到训练后Bert模型:

(1)将训练数据集统一放在一个目录下,该目录包括三个文件,分别为train.txt文件、eval.txt文件和predict.txt文件,上述每个文件中每行为一个样本;

(2)构建DataProcessor子类,并继承三个get_examples方法和一个 get_labels方法,三个get_examples方法分别为get_train_examples方法、get_dev_examples方法和get_test_examples方法,每个 get_examples方法用于从数据集目录中获得对应的InputExample列表,以 get_train_examples方法为例,该方法需要传入唯一的一个参数data_dir,即数据集所在目录,然后根据该目录读取训练数据,将所有用于训练的句子转换为InputExample,并返回所有InputExample组成的列表。get_dev_examples和get_test_examples方法同理。get_labels方法仅需要返回一个所有label的集合组成的列表即可,具体代码如下:

(3)在main函数中,向main函数开头的processors字典增加一项, key为数据集名称,value为上一步中定义的DataProcessor的类名,如下所示:

(4)基于训练数据集训练该Bert模型,调整参数,得到训练后Bert 模型,训练及预测脚本分别如下所示:

训练脚本:

python run_custom_classifier.py\

--data_dir=data\

--task_name=drug\

--vocab_file=chinese_L-12_H-768_A-12/vocab.txt\

--bert_config_file=chinese_L-12_H-768_A-12/bert_config.json\

--output_dir=drug_model\

--do_train=true\

--do_eval=true\

--init_checkpoint=chinese_L-12_H-768_A-12/bert_model.ckpt\

--max_seq_length=128\

--train_batch_size=32\

--learning_rate=2e-5\

--num_train_epochs=3.0

预测脚本:

python run_custom_classifier.py\

--task_name=drug\

--do_predict=true\

--data_dir=data\

--vocab_file=chinese_L-12_H-768_A-12/vocab.txt\

--bert_config_file=chinese_L-12_H-768_A-12/bert_config.json\

--init_checkpoint=drug_model\

--max_seq_length=128\

--output_dir=output

元数据表判别主要是根据每个表中会包含区别于其它表的字段,例如,元数据表中包含字段“药品名称”,则该元数据表有很大的概率属于药品表,目前,系统中元数据表可以分为基本信息表、诊断表、药品表、检验表、检查表、手术表,区别每个表的特征字段总结如表3所示。

表3:

相较于传统的人工对元数据表进行归类汇聚,基于Bert模型的智能数据治理方法可以辅助数据治理人员快速了解元数据表中字段内容,从而提高数据治理效率。

实施例2:

本发明实施例还提供了一种装置,包括:至少一个存储器和至少一个处理器;至少一个存储器,用于存储机器可读程序;至少一个处理器,用于调用所述机器可读程序,执行实施例1公开的方法。

实施例3:

本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行实施例1公开的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如 CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC) 来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

相关技术
  • 基于Bert字模型的数据表分类方法、装置及介质
  • 基于BERT的文本分类方法、装置、计算机设备及存储介质
技术分类

06120112499735