一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度学习BERT模型的煤监类案对比方法及装置与流程

2022-03-09 05:20:02 来源:中国专利 TAG:
基于深度学习bert模型的煤监类案对比方法及装置
技术领域
:1.本发明涉及煤监类案对比
技术领域
:,具体地说,是涉及基于深度学习bert模型的煤监类案对比方法及装置。
背景技术
::2.煤监类案对比是国家煤矿安全生产监管数据分析平台建设项目的功能之一,具体是根据用户输入的“隐患描述”文本数据,对数据库中的各条“隐患描述”记录进行匹配,返回跟输入相似的隐患记录信息。3.目前,煤监类案对比中仅仅是依靠关键词的匹配进行计算,即通过提取待搜索煤监隐患描述和数据库中的隐患描述中的关键词的方法,然后将关键词进行匹配,若匹配率高,则得分高,否则得分低。4.依靠关键词匹配实现煤监类案隐患描述对比的方法往往会忽略词义和语义,以及词与词之间的关系所隐藏的大量语义的信息,会导致这一部分信息丢失,导致对比搜索结果不准确。技术实现要素:5.本发明的目的在于提供基于深度学习bert模型的煤监类案对比方法及装置,以解决现有比对方法会忽略词义和语义,以及词与词之间的关系所隐藏的大量语义的信息,会导致这一部分信息丢失,导致对比搜索结果不准确的问题。6.为了解决上述问题,本发明提供如下技术方案:基于深度学习bert模型的煤监类案对比方法包括以下步骤:s1、建立bert模型的词典,然后根据词典创建bert分词器;s2、搭建、训练bert模型,然后配置bert模型的模式和加载预训练模型文件,加载文件中各层参数到搭建的bert模型中,得到最终模型bert;s3、将煤监隐患信息数据库和待搜索隐患信息文本接入步骤s1的bert分词器中,bert分词器对煤监隐患信息数据库和待搜索隐患信息文本进行分词;s4、将步骤s3的分词结合步骤s2的模型bert得到文本语义向量;s5、计算煤监隐患信息数据库和待搜索隐患信息文本两者文本语义向量的相似度,然后根据相似度高低排序列表;s6、根据步骤s5的相似度排序列表,选取得分最高的隐患记录返回搜索结果。7.现有技术采用的关键词匹配搜索煤监类案隐患描述信息的步骤有:第一步,输入待搜索隐患信息文本inputtext,选择煤监隐患信息数据库中的所有记录records。8.第二步,文本分词;对文本inputtext、records进行分词、去停用词等,得到候选关键词。9.第三步,关键词提取;通过关键词提取算法(tf-idf)文本inputtext、records的关键词。10.第四步,文本向量化;将关键词合并形成关键词字典,将inputtext、records进行向量化。11.第五步,文本相似度计算;利用余弦相似度计算inputtext和records各记录的文本向量的余弦相似度,得到相似度得分列表list。12.第六步,返回搜索结果;将list按照从高到低进行排序,选取得分最高的隐患记录并返回。13.上述依靠关键词匹配实现类案隐患描述对比的方法往往会忽略词义和语义,以及词与词之间的关系所隐藏的大量语义的信息,会导致这一部分信息丢失,导致对比搜索结果不准确;本发明通过创建bert分词器,搭建、训练bert模型;通过bert分词器读取煤监隐患信息数据库和待搜索隐患信息文本,并对其进行分词,然后通过模型bert得到文本语义向量的相似度;最终得出得分最高的隐患记录返回搜索结果;本发明使用深度学习搭建bert网络,采用流行的特征提取器transformer及双向编码器实现文本内容语义信息的提取,将待搜索隐患描述文本和数据库里的隐患描述记录进行文本语义向量化,且最后通过空间余弦相似度计算两者的文本相似度,故本发明能够更为准确的进行煤监类案对比计算。14.进一步的,步骤s1的具体过程为:建立bert模型的词典vocab.txt,然后基于词典vocab.txt创建bert分词器tokenizer。15.进一步的,步骤s2中搭建、训练bert模型的具体过程为:利用深度学习框架搭建bert网络,然后结合预训练模型得到最终的模型bert。16.进一步的,步骤s3的具体过程为:bert分词器tokenizer读取待搜索隐患信息文本inputtext和煤监隐患信息数据库中的所有记录records;然后对文本inputtext和records进行分词。17.进一步的,步骤s4的具体过程如下:s401、修改分词后的单字列表为以“[cls]”开头,以“[sep]”结束的列表,然后通过pad将列表扩展到固定长度l;s402、将步骤s401的单字列表转换为id列表并形成张量tokens_ids_tensor;s403、根据步骤s402的张量tokens_ids_tensor构建值全为”0”的段张量segment_ids_tenser,及句子部分为“1”pad部分为“0”的张量input_mask_tensor;s404、将步骤s402的张量tokens_ids_tensor、步骤s403的段张量segment_ids_tenser和张量input_mask_tensor输入到模型bert中,得到文本语义向量texttensor。[0018]进一步的,步骤s5的具体过程为:利用余弦相似度计算inputtext和records各记录的文本向量的空间余弦相似度,得到相似度得分列表list。[0019]进一步的,余弦相似度计算公式如下其中,,表示n维向量x的模,x、y分别表示两个文本语义向量。[0020]一种基于深度学习bert模型的煤监类案对比装置包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现基于深度学习bert模型的煤监类案对比方法。[0021]与现有技术相比,本发明具有以下有益效果:(1)本发明使用深度学习搭建bert网络,采用流行的特征提取器transformer及双向编码器实现文本内容语义信息的提取,将待搜索隐患描述文本和数据库里的隐患描述记录进行文本语义向量化,且最后通过空间余弦相似度计算两者的文本相似度,故本发明能够更为准确的进行煤监类案对比计算。[0022](2)本发明的bert模型效率高,可以使用广泛的开源数据进行训练,来提升对相似语句判断的准确性;bert模型框架具有广泛性,适用于针对相似语句分析的不同应用场景,模型适应性好。[0023](3)本发明的bert模性能高,方案对于模型预测的设计,可以预先将数据库里的固有句子生成向量,每次预测时只需要将查询句子做一次向量生成,之后通过向量和向量相似度的快速计算,就能得出句子间的相似度,性能可以满足实际应用。附图说明[0024]为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:图1为本发明的流程示意图。具体实施方式[0025]为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。[0026]对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。[0027]数据库(database,db):是指长期存储在计算机内的、有组织的、可共享的数据的集合;数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。[0028]数据库表(databasetable,简称表):是一类数据的集合,关系型数据库里面的表,指的是二维关系的表,即由行和列组成的表;可以简单想像为excel的一个sheet中的表格。[0029]记录:就是表中的行,表中每一行就是一条记录。[0030]字段:就是表中的列,表中每一列就是一字段;在定义表时候,需要定义字段的列数、列名、列的属性;列的属性包括数值、字符和日期等。[0031]nlp:即naturallanguageprocessing,自然语言处理,是研究人与计算机交互的语言问题的一门学科;其包括文本信息提取、文本挖掘、机器翻译、信息检索和问答系统等。[0032]语言模型:用来计算一个句子的概率的模型,也就是判断一句话是否符合人类习惯;对于一句话来说,如果把每一个位置的条件概率都相乘,那么概率越大越能说明它更像一句人说的话。[0033]预训练:在nlp下游任务(如机器翻译、阅读理解等)中,由于专门标注的样本较少使得训练出来的模型效果一般,需要提前训练下游任务中底层的、共性的部分模型,然后再用下游各自的样本数据来训练各自的模型,这样就可以极大地加快收敛速度。[0034]bert模型:即bidirectionalencoderrepresentationsfromtransformer,是一种nlp预训练模型;bert采用的是transformer,并且在处理一个单词的时候,还能够考虑到该词前面和后面的单词,得到它在上下文中的含义。[0035]深度学习:deeplearning,dl,是机器学习(ml,machinelearning)领域中一个新的研究方向,是实现人工智能的必经路径;深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。研究深度学习的动机在于建立模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本等。[0036]文本相似度:从信息论的角度看相似度与文本之间的共性和差异有关,共性越大、差异越小、则相似度越高;共性越小、差异越大、则相似度越低,相似度最大的情况是文本完全相同。[0037]余弦相似度:余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越趋近于0°,它们的方向更加一致,相应的相似度也越高。需要指出的是,在文本相似度判定中,因为文本特征向量定义的特殊性,其余弦值范围为[0,1],即向量夹角越趋向于90°,则两向量越不相似。[0038]实施例1如图1所示,基于深度学习bert模型的煤监类案对比方法主要用于文本检索,其使用华为mindspore深度学习框架搭建bert网络,通过采用流行的特征提取器transformer及双向编码器实现文本内容语义信息的提取,将待搜索隐患描述文本和数据库里的隐患描述记录进行文本语义向量化,最后通过空间余弦相似度计算两者的文本相似度;本方法的具体步骤如下:第1步,词典构建:建立bert模型的词典vocab.txt。[0039]第2步,bert模型搭建:利用华为mindspore深度学习框架搭建bert网络,即12个encoder网络层,768个隐藏层,12个attention。[0040]第3步,bert预训练模型文件:bert模型将预训练模型和下游任务模型结合在一起,在做下游任务时,仍然使用bert模型,而且天然支持文本分类,此处使用google公开的bert-base,chinese模型文件,它是一个支持中文的预训练模型。[0041]第4步,创建bert分词器:基于词典vocab.txt创建bert分词器tokenizer;对于中文来说,bert采取的是“分字”,即每一个汉字都切开。[0042]第5步,bert模型配置及加载模型文件:配置模型为预测模式,加载预训练模型文件,加载文件中各层参数到搭建的bert模型中,得到最终模型bert即将预训练的模型参数加入到模型bert中。[0043]第6步,读取隐患信息文本:包括待搜索隐患信息文本inputtext及煤监隐患信息数据库中的所有记录records。[0044]第7步,文本分词:利用bert分词器tokenizer对文本inputtext、records进行分词。[0045]第8步,文本语义向量化:修改分词后的单字列表为以“[cls]”开头,以“[sep]”结束的列表,并通过pad将列表扩展到固定长度l之后,将单字列表转换为id列表并形成张量tokens_ids_tensor,构建值全为”0”的段张量segment_ids_tenser,及句子部分为“1”pad部分为“0”的张量input_mask_tensor,将三个张量值输入到模型bert中,得到文本语义向量texttensor。[0046]第9步,计算文本相似度:利用余弦相似度计算inputtext和records各记录的文本向量的空间余弦相似度,得到相似度得分列表list。使用如下公式:其中,,表示n维向量x的模,x、y分别表示两个文本语义向量。[0047]第10步,文本相似度列表排序:将list按照从高到低进行排序。[0048]第11步,返回搜索结果:选取得分最高的隐患记录并返回。[0049]实施例2一种基于深度学习bert模型的煤监类案对比装置包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现基于深度学习bert模型的煤监类案对比方法。[0050]实施例3本实施例为实现本方案的部分功能代码:defencode(text):tokens=tokenizer.tokenize(text)#以[cls]开头,以[sep]结束。[0051]tokens.insert(0,'[cls]')tokens.append('[sep]')#print('tokens=',tokens)#补充到l长度padded_tokens=tokens[:l] ['[pad]'for_inrange(lꢀ‑ꢀlen(tokens))]#单字列表转为id列表tokens_ids=tokenizer.convert_tokens_to_ids(padded_tokens)#转为tensortokens_ids_tensor=tensor(tokens_ids)#print('tokens_ids_tensor=',tokens_ids_tensor)#print(tokens_ids_tensor.shape)ꢀ#segment_id全是0值segment_ids=[0]*len(padded_tokens)segment_ids_tensor=tensor(segment_ids)#print('segment_ids_tensor=',segment_ids_tensor)#1是句子部分,0是pad部分input_mask_ones=[1]*len(tokens)input_mask_ones_tensor=tensor(input_mask_ones)input_mask_zeros=[0]*(len(padded_tokens)ꢀ‑ꢀlen(tokens))input_mask_zeros_tensor=tensor(input_mask_zeros)input_mask_tensor=concat((input_mask_ones_tensor,input_mask_zeros_tensor))#print('input_mask_tensor=',input_mask_tensor)sequence_output,pooled_output,embedding_tables=bert(input_ids=tokens_ids_tensor,token_type_ids=segment_ids_tensor,input_mask=input_mask_tensor)returnpooled_output本发明采用国产化框架:使用mindspore深度学习框架,能在atlas人工智能计算平台上运行,可提供高性能服务,并具备集群伸缩性;由于支持国产化,系统安全性更有保障。[0052]本发明的模型效率高:模型可以使用广泛的开源数据进行训练,来提升对相似语句判断的准确性;模型框架具有广泛性,适用于针对相似语句分析的不同应用场景,模型适应性好。[0053]本发明的模型性能高:方案对于模型预测的设计,可以预先将数据库里的固有句子生成向量,每次预测时只需要将查询句子做一次向量生成,之后通过向量和向量相似度的快速计算,就能得出句子间的相似度,性能可以满足实际应用。[0054]在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0055]另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。[0056]所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0057]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。[0058]以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献