自然语言处理方法、装置及计算机设备与流程

    专利查询2022-07-07  204



    1.本技术涉及人工智能技术领域,尤其涉及到一种自然语言处理方法、装置及计算机设备。


    背景技术:

    2.在保险医疗场景中,有着丰富多样的自然语言处理任务,包括文本分类、情感分析、文本聚类、实体识别、文本相似度计算、信息抽取等。每一类任务中又有很多细分场景,比如在实体识别中,既有疾病名称和人物名称提取,也有药品、时间提取,也有医疗诊断证明中的关键实体提取等等。在情感分析中,除了常见的用户情感二分类以外,还需要对同一个事件进行多维度情感分析,比如坐席说话语气、坐席与用户交互轮次等等,这样方便业务人员可以对这个标的进行深入的竞争分析,业绩预测等等。可见,保险医疗领域的nlp任务具有任务庞杂、异构等特点。
    3.目前,对于自然语言处理任务,在常见的解决方案中,算法工程师一般会针对每一类问题,量身定做相应的模型,同时进行各种“魔改”。这会导致大量的时间和精力消耗在了模型选择和测试中。同时,对于保险医疗这类垂直领域的问题,往往还面临着低资源的困境,这主要体现在两个方面:少样本,即数据搜集的成本很高。由于很多问题和具体业务场景有关系,因此能够搜集到的数据总量是有限的;少标注,即数据标注成本很高。对于保险领域的问题,数据标注往往需要专业医疗团队的深度参与,这极大增加了数据标注成本。


    技术实现要素:

    4.有鉴于此,本技术公开了一种自然语言处理方法、装置及计算机设备,可用于解决目前在进行自然语言任务处理时,针对不同的处理任务,需要量身定做相应的模型,同时进行各种“魔改”,导致任务处理效率低、成本高,且通用领域模型表征能力有限,在垂直下游任务中拟合能力较差的技术问题。
    5.根据本技术的一个方面,提供了一种自然语言处理方法,该方法包括:
    6.根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,所述预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;
    7.获取待进行自然语言处理的文本数据,并对所述文本数据进行预处理,其中,所述预处理包括数据清洗处理、停用词滤除处理中的至少一种;
    8.将预处理后的所述文本数据输入所述自然语言处理模型中,获取自然语言处理结果。
    9.可选地,所述根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,包括:
    10.获取所述第一训练任务对应的第一样本语料,以及所述第二训练任务对应的第二样本语料;
    11.根据第一训练任务以及所述第一样本语料对所述bert模型进行字词级别的第一
    预训练;
    12.根据第二训练任务以及所述第二样本语料对所述bert模型进行任务级别的第二预训练;
    13.在判断所述bert模型完成所述第一预训练和所述第二预训练后,将所述bert模型确定为自然语言处理模型。
    14.可选地,所述第一训练任务包括全词mask任务、语句顺序预测任务,所述根据第一训练任务以及所述第一样本语料对所述bert模型进行字词级别的第一预训练,包括:
    15.对所述第一样本语料进行分词处理,得到包含各个字符的文本序列,在所述文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对所述bert模型进行全词mask预训练;以及,
    16.按照预设字符标识对所述第一样本语料进行语句划分,得到包含各个语句的语句序列,利用所述语句序列中连续的两个语句构建所述语句顺序预测任务的正例样本语句对,将所述连续的两个语句进行顺序交换后构建所述语句顺序预测任务的负例样本语句对,利用所述正例样本语句对和所述负例样本语句对对所述bert模型进行语句顺序预测预训练。
    17.可选地,在所述文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对所述bert模型进行全词mask预训练之前,还包括:
    18.基于tf-idf算法从标准行业文件中提取所述预设训练任务对应的行业关键词;
    19.根据各个所述行业关键词以及所述行业关键词在语料库中所属语种的语种内关联关系,获取各个所述行业关键词的关联词语,所述关联词语包括同义词、近义词、音似词和形似词中的至少一种;
    20.基于所述行业关键词和所述关联词语构建预设词典。
    21.可选地,所述利用所述正例样本语句对和所述负例样本语句对对所述bert模型进行语句顺序预测预训练,包括:
    22.将所述正例样本语句对和所述负例样本语句对分别输入所述bert模型,获取所述正例样本语句对中两个语句对应的第一语句向量和第二语句向量,以及所述负例样本语句对中两个语句对应的第三语句向量和第四语句向量;
    23.计算所述第一语句向量和所述第二语句向量的第一向量特征距离,以及所述第三语句向量和所述第四语句向量的第二向量特征距离,根据所述第一向量特征距离和所述第二向量特征距离更新所述bert模型的模型参数,以使所述第一向量特征距离小于第一预设阈值,且所述第二向量特征距离大于第二预设阈值,其中,所述第二预设阈值大于所述第一预设阈值。
    24.可选地,所述第二训练任务包括对话场景对象的分类任务和实体识别任务;
    25.所述根据第二训练任务以及所述第二样本语料对所述bert模型进行任务级别的第二预训练,包括:
    26.为所述第二样本语料配置任务标签,所述任务标签包括对象标签和实体标签;
    27.以所述第二样本语料作为所述bert模型的输入特征,以及以所述对象标签或所述实体标签为训练标签训练所述bert模型,获取任务训练结果;
    28.根据所述任务标签和所述任务训练结果计算所述bert模型的损失函数;
    29.若所述损失函数达到模型收敛要求,则判定所述bert模型完成所述分类任务的第二预训练;
    30.若判断所述损失函数未达到模型收敛要求,则更新所述bert模型的模型参数,并对更新后的bert模型进行迭代训练,直至所述损失函数符合模型收敛要求。
    31.可选地在所述将预处理后的所述文本数据输入所述自然语言处理模型中,获取自然语言处理结果之前,还包括:
    32.确定所述文本数据对应的目标下游任务,利用与所述目标下游任务匹配的适应数据对所述自然语言处理模型进行微调处理;
    33.所述将预处理后的所述文本数据输入所述自然语言处理模型中,获取自然语言处理结果,包括:
    34.将预处理后的所述文本数据输入微调处理后的自然语言处理模型中,获取所述目标下游任务对应的自然语言处理结果。
    35.根据本技术的另一个方面,提供了一种自然语言处理装置,该装置包括:
    36.训练模块,用于根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,所述预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;
    37.处理模块,用于获取待进行自然语言处理的文本数据,并对所述文本数据进行预处理,其中,所述预处理包括数据清洗处理、停用词滤除处理中的至少一种;
    38.输入模块,用于将预处理后的所述文本数据输入所述自然语言处理模型中,获取自然语言处理结果。
    39.可选地,所述训练模块,包括:获取单元、第一训练单元、第二训练单元、第一确定单元;
    40.所述获取单元,用于获取所述第一训练任务对应的第一样本语料,以及所述第二训练任务对应的第二样本语料;
    41.所述第一训练单元,用于根据第一训练任务以及所述第一样本语料对所述bert模型进行字词级别的第一预训练;
    42.所述第二训练单元,用于根据第二训练任务以及所述第二样本语料对所述bert模型进行任务级别的第二预训练;
    43.所述第一确定单元,用于在判断所述bert模型完成所述第一预训练和所述第二预训练后,将所述bert模型确定为自然语言处理模型。
    44.可选地,所述第一训练任务包括全词mask任务、语句顺序预测任务;
    45.所述第一训练单元,用于对所述第一样本语料进行分词处理,得到包含各个字符的文本序列,在所述文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对所述bert模型进行全词mask预训练;以及,按照预设字符标识对所述第一样本语料进行语句划分,得到包含各个语句的语句序列,利用所述语句序列中连续的两个语句构建所述语句顺序预测任务的正例样本语句对,将所述连续的两个语句进行顺序交换后构建所述语句顺序预测任务的负例样本语句对,利用所述正例样本语句对和所述负例样本语句对对所述bert模型进行语句顺序预测预训练。
    46.可选地,所述训练模块还包括:构建单元;
    47.所述构建单元,用于基于tf-idf算法从标准行业文件中提取所述预设训练任务对应的行业关键词;根据各个所述行业关键词以及所述行业关键词在语料库中所属语种的语种内关联关系,获取各个所述行业关键词的关联词语,所述关联词语包括同义词、近义词、音似词和形似词中的至少一种;基于所述行业关键词和所述关联词语构建预设词典。
    48.可选地,所述第一训练单元,用于将所述正例样本语句对和所述负例样本语句对分别输入所述bert模型,获取所述正例样本语句对中两个语句对应的第一语句向量和第二语句向量,以及所述负例样本语句对中两个语句对应的第三语句向量和第四语句向量;计算所述第一语句向量和所述第二语句向量的第一向量特征距离,以及所述第三语句向量和所述第四语句向量的第二向量特征距离,根据所述第一向量特征距离和所述第二向量特征距离更新所述bert模型的模型参数,以使所述第一向量特征距离小于第一预设阈值,且所述第二向量特征距离大于第二预设阈值,其中,所述第二预设阈值大于所述第一预设阈值。
    49.可选地,所述第二训练任务包括对话场景对象的分类任务和实体识别任务;
    50.所述第二训练单元,用于为所述第二样本语料配置任务标签,所述任务标签包括对象标签和实体标签;以所述第二样本语料作为所述bert模型的输入特征,以及以所述对象标签或所述实体标签为训练标签训练所述bert模型,获取任务训练结果;根据所述任务标签和所述任务训练结果计算所述bert模型的损失函数;若所述损失函数达到模型收敛要求,则判定所述bert模型完成所述分类任务的第二预训练;若判断所述损失函数未达到模型收敛要求,则更新所述bert模型的模型参数,并对更新后的bert模型进行迭代训练,直至所述损失函数符合模型收敛要求。
    51.可选地,所述装置还包括:微调模块;
    52.所述微调模块,用于确定所述文本数据对应的目标下游任务,利用与所述目标下游任务匹配的适应数据对所述自然语言处理模型进行微调处理;
    53.所述输入模块,用于将预处理后的所述文本数据输入微调处理后的自然语言处理模型中,获取所述目标下游任务对应的自然语言处理结果。
    54.根据本技术的又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述临床药物试验患者的匹配方法。
    55.根据本技术的再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述临床药物试验患者的匹配方法。
    56.本技术提供了一种自然语言处理方法、装置及计算机设备,可首先根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;之后在获取到待进行自然语言处理的文本数据后,可对文本数据进行数据清洗、数据标准化等一系列的预处理操作;最终将预处理后的文本数据输入自然语言处理模型中,获取自然语言处理结果。通过本技术中的技术方案,可基于迁移技术获取通用领域下表现良好的bert模型,在bert模型基础上进行具体任务领域内的增量预训练,进一步提升模型对于下游任务的适用性。此外,不需要复杂的模型“魔改”工作,经过增量预训练后的模型对于下游任务具有很好性能表现。
    57.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
    附图说明
    58.构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
    59.参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
    60.图1示出了本发明实施例提供的一种自然语言处理方法流程图;
    61.图2示出了本发明实施例提供的另一种自然语言处理方法流程图;
    62.图3示出了本发明实施例提供的一种自然语言处理的原理示意图;
    63.图4示出了本发明实施例提供的一种自然语言处理装置的结构示意图;
    64.图5示出了本发明实施例提供的另一种自然语言处理装置的结构示意图;
    65.图6示出了本发明实施例提供的一种计算机设备的实体结构示意图。
    具体实施方式
    66.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
    67.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
    68.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
    69.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
    70.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
    71.本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
    72.计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
    73.本发明实施例提供了一种自然语言处理方法,如图1所示,该方法包括:
    74.101、根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务。
    75.对于深度学习时代的自然语言处理技术,一般认为存在两大里程碑式的工作。第一个里程碑是在2013年逐渐兴起,以word2vec为代表的词向量技术;第二个里程碑则是在
    2018年以bert为代表的深度预训练语言模型(pre-trained language models)。一方面,以bert为代表的深度预训练模型在包括文本分类、命名实体识别、问答等几乎所有的子领域达到了新的发展;另一方面,作为通用的预训练模型,bert的出现也显著地减轻了nlp算法工程师在具体应用中的繁重工作,由以往的魔改网络转变为fine tune bert,即可快速获得性能优秀的基线模型。在各类应用场景中,均有着丰富多样的自然语言处理任务,包括文本分类、情感分析、文本聚类、实体识别、文本相似度计算、信息抽取等。相应的,本技术中的技术方案可适用于任一行业内垂直领域的自然语言处理任务中,在本实施例以及下述实施例步骤中,以保险医疗场景关于自然语言的任务处理为例对本技术中的技术方案进行说明,但并不构成对本技术中技术方案所适用应用场景的具体限定。
    76.在保险医疗场景中,对于每一类任务又有很多细分场景,比如在保险领域的实体识别中,既有疾病名称和人物名称提取,也有药品、时间提取,也有医疗诊断证明中的关键实体提取等等。在情感分析中,除了常见的用户情感二分类以外,还需要对同一个事件进行多维度情感分析,比如坐席说话语气、坐席与用户交互轮次等等,这样方便业务人员可以对这个标的进行深入的竞争分析,业绩预测等等。可见,保险医疗领域的nlp任务具有任务庞杂、异构等特点。在常见的解决方案中,算法工程师一般会针对每一类问题,量身定做相应的模型,同时进行各种“魔改”。这会导致大量的时间和精力消耗在了模型选择和测试中。同时,对于保险医疗这类垂直领域的问题,往往还面临着低资源的困境,这主要体现在两个方面:少样本,即数据搜集的成本很高。由于很多问题和具体业务场景有关系,因此能够搜集到的数据总量是有限的;少标注,即数据标注成本很高。对于保险领域的问题,数据标注往往需要专业医疗团队的深度参与,这极大增加了数据标注成本。针对上述保险领域两大类常见的问题,在本技术中,依托于多年积累的领域内数据,如图3所示,可以中文开源的bert模型为基础,根据预设训练任务对通用领域下的bert模型进行增量预训练,预设训练任务具体可包括字级别的预训练任务以及任务级别的预训练任务,通过执行增量预训练,可使预训练后的模型更加适用于领域内下游任务。
    77.对于本技术的执行主体可为用于支持自然语言处理的系统,可配置在客户端或服务端,在系统中配置有根据预设训练任务对通用领域下的bert模型进行增量预训练,得到的自然语言处理模型,在获取到待进行自然语言处理的文本数据,并对文本数据进行预处理后,可将预处理后的文本数据输入自然语言处理模型中,获取到自然语言处理结果。
    78.102、获取待进行自然语言处理的文本数据,并对文本数据进行预处理,其中,预处理包括数据清洗处理、停用词滤除处理中的至少一种。
    79.对于本实施例,在具体的应用场景中,待进行自然语言处理的文本数据在包含有效数据的同时,还可能包括大量的噪声数据和不相关数据,故为了保证自然语言处理结果的准确性,待输入到自然语言处理模型中的文本数据需要经过预处理,以使经过预处理后得到的主体数据不存在缺省值、异常值以及停用词,且能够直接被计算机识别。在具体的应用场景中,预处理具体可包括数据清洗处理、停用词滤除处理。其中,数据清洗处理包括缺省值填充、异常值删除,缺省值填充指的是对数据缺失项进行填充,填充数据的方法包括填充平均值,具体为:确定该数据缺失项的特征,计算该特征下数据的平均值,将该平均值作为填充值。异常值指的是与实际情况相违背的数据,或者在系统故障下采集到的数据,对于异常值数据进行删除处理。停用词滤除处理可包括切词处理以及停用词滤除两部分内容,
    其中,切词处理可利用现有分词技术将各个文本数据切分为各个独立的词段,但在切分后的词段中,往往会存在一些冗余或者质量不高的词汇,故为了提高处理效率,且节省运行的空间占用,故可通过停用词滤除处理,筛选出一些对于自然语言处理作用不大的词语,并将之滤除。
    80.其中,在进行停用词滤除处理时,可将基于现有的切词工具(如crf分词器)对文本数据进行词语切分,得到各个独立的第一词语以及对应格式为[词1,词2,词3,

    词n]的词序列,其中,每个第一词语标记有对应的目标词性;进而可基于第一词语的目标词性确定与预设停用词性匹配的第二词语,以便从词序列中剔除第二词语。其中,预设停用词性可为语气助词、副词、介词、连接词等,这些预设停用词性通常自身并无什么明确的意义,只有将其放入一个完整的句子中才有一定作用,如常见的“哎”,“哎哟”,“别的”,“结果”,“让”,“不过”等。由于这些词很少单独表达文档相关程度的信息,且这些功能词对于自然语言处理基本没有什么帮助,故为了提高自然语言处理的效率和节省存储空间,可事先过滤掉这些没有意义的词。具体可基于现有的停用词词表来实现对停用词的识别与滤除,比如“百度停用词表”、“哈工大停用词表”等。
    [0081]
    103、将预处理后的文本数据输入自然语言处理模型中,获取自然语言处理结果。
    [0082]
    在经过上述增量预训练后,得到的自然语言处理模型insbert对于具体垂直领域具有更好的适用性,故在对待进行自然语言处理的文本数据进行预处理后,可将insbert模型应用于具体的下游任务中,具体的使用方式和中文bert模型一样,首先将预训练模型微调到各类任务上,如果做句子对分类任务,那么就两句话一起输入,例如:[cls]我想购买保险[sep]得了糖尿病可以购买保险嘛,最后取第一个token[cls]的输出表示,喂给一个softmax层得到分类结果输出。对于单句分类任务就更简单,也是输入一句话,然后取第一个token[cls]的输出来进行分类。对于q&a问题则同时输入[cls]question[sep]answer,然后取输出的answer中start和end之间即为答案。对于单句标记任务(single sentence tagging tasks,ner),取所有token的最后层transformer输出,喂给softmax层做分类。总之不同类型的任务需要对模型做不同的修改,但是修改都是非常简单的,最多加一层神经网络即可。对于本实施例,可首先确定出文本数据对应的目标下游任务,进而利用与目标下游任务匹配的适应数据对自然语言处理模型进行微调处理,在微调完成后,将预处理后的文本数据输入自然语言处理模型中,获取自然语言处理结果。
    [0083]
    本技术实施例提供的一种自然语言处理方法,与目前自然语言处理的方式相比,可首先根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;之后在获取到待进行自然语言处理的文本数据后,可对文本数据进行数据清洗、数据标准化等一系列的预处理操作;最终将预处理后的文本数据输入增量预训练完成的自然语言处理模型中,获取自然语言处理结果。通过本技术中的技术方案,可基于迁移技术获取通用领域下表现良好的bert模型,在bert模型基础上进行具体任务领域内的增量预训练,进一步提升模型对于下游任务的适用性。此外,不需要复杂的模型“魔改”工作,经过增量预训练后的模型对于下游任务具有很好性能表现。
    [0084]
    进一步地,为了更好的说明上述自然语言的处理过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种自然语言处理方法,如图2所示,方法包括:
    [0085]
    201、获取第一训练任务对应的第一样本语料,以及第二训练任务对应的第二样本语料。
    [0086]
    其中,第一样本语料和第二样本语料可对应相同或不同,具体可根据实际应用场景进行样本语料的确定。
    [0087]
    202、根据第一训练任务以及第一样本语料对bert模型进行字词级别的第一预训练,其中,第一训练任务包括全词mask任务、语句顺序预测任务。
    [0088]
    在具体的应用场景中,字词级别的预训练首先包含两类子任务,分别是全词mask任务(insurance whole word mask,iwwm)、语句顺序预测任务(next sentence prediction,nsp)。在训练中,为了节省资源,可采用与google类似的两阶段预训练方式,第一阶段预训练最大句子长度为128,第二阶段预训练最大句子长度为512。两类任务具体形式如下:
    [0089]
    对于全词mask任务,whole word masking(wwm),一般翻译为全词mask或整词mask,出处是google在2019年5月发布的一项升级版的bert中,主要更改了原预训练阶段的训练样本生成策略。简单来说,原有基于wordpiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。在全词mask中,如果一个完整的词的部分wordpiece子词被mask,则同属该词的其他部分也会被mask,即全词mask。在谷歌原生的中文bert中,输入是以字为粒度进行切分,没有考虑到领域内共现单词或词组之间的关系,从而无法学习到领域内隐含的先验知识,降低了模型的学习效果。对于本实施,可将全词mask的方法应用在保险医疗领域语料预训练中,即对组成的同一个词的汉字全部进行mask。首先可从保险、医疗词典、保险类学术文章中,通过自动挖掘结合人工核验的方式,构建出保险医疗领域内的词典,约有20万词。然后抽取预语料和保险医疗词典中共现的单词或词组进行全词mask预训练,从而使模型学习到领域内的先验知识,如保险概念、医疗概念之间的相关性等,进一步增强模型的学习效果。
    [0090]
    对于语句顺序预测任务(sentence order prediction,sop),为了使模型对同一主题内上下句子间具有更强的辨识能力,引入上下句子关系预测任务。具体方式可参考albert原始文献,论文结果表明,这个简单的任务对问答和自然语言推理任务十分有益,在预训练过程中也发现将nsp任务改为sop任务之后对模型效果略有提升,因此在本技术中可保留nsp的预训练任务,学习率采用google官方推荐的2e-5,warmup-steps为10000steps。
    [0091]
    相应的,对于本实施例,作为一种可选方式,实施例步骤202具体可以包括:对第一样本语料进行分词处理,得到包含各个字符的文本序列,在文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对bert模型进行全词mask预训练;以及,按照预设字符标识对第一样本语料进行语句划分,得到包含各个语句的语句序列,利用语句序列中连续的两个语句构建语句顺序预测任务的正例样本语句对,将连续的两个语句进行顺序交换后构建语句顺序预测任务的负例样本语句对,利用正例样本语句对和负例样本语句对对bert模型进行语句顺序预测预训练。
    [0092]
    在具体的应用场景中,在文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对bert模型进行全词mask预训练之前,还需要创建对应的预设词典。相应的,实施例步骤具体可以包括:基于tf-idf算法从标准行业文件中提取预设训练任务对应的行业关键词;根据各个行业关键词以及行业关键词在语料库中所属语种的语种内关联关系,
    获取各个行业关键词的关联词语,关联词语包括同义词、近义词、音似词和形似词中的至少一种;基于行业关键词和关联词语构建预设词典。
    [0093]
    其中,tf-idf算法是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf的主要思想就是,如果某个单词在一篇文章中出现的频率tf高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。在本技术中,可利用tf-idf算法计算标准行业文件中所包含的各个词语在该标准行业文件中的出现频率,即词频tf
    ij
    ,以及计算各个词语在所有标准行业文件中的出现频率,即逆向文件频率idfi。当判定某个词语在一个标准行业文件中出现的频率tf
    ij
    较高,并且在其他标准行业文件中很少出现时,则可认为此词语具有很好的类别区分能力,适合作为预设训练任务对应的行业关键词。对于本实施例,在具体的应用场景中,tf-idf算法可包括第一计算公式和第二计算公式,为了提取出预设训练任务对应的行业关键词,实施例步骤202具体可以包括:根据第一计算公式计算在标准行业文件中所包含词语的词频;根据第二计算公式计算在标准行业文件中所包含词语的逆向文件频率;基于词频以及逆向文件频率,确定各个词语对应预设训练任务所属行业领域的相关度;将相关度大于预设阈值的词语确定为行业关键词。标准行业文件可为保险、医疗词典、保险类学术文章等。
    [0094]
    具体的,第一计算公式的特征描述为:其中,tf
    ij
    为词语i的词频,ni,j为词语i在标准行业文件dj中出现的次数,为标准行业文件dj中所有词语的数量之和;第二计算公式的特征描述为:其中,idfi为词语ti的逆向文件频率,|d|为标准行业文件的总数量,|{j:ti∈dj}| 1表示包含词语ti的标准行业文件的数量。相应的,基于词频以及逆向文件频率,确定各个词语对应预设训练任务所属行业领域的相关度,具体可以包括:计算同一词语对应的词频和逆向文件频率的乘积,将乘积确定为词语对应预设训练任务所属行业领域的相关度。
    [0095]
    相应的,在根据各个行业关键词以及行业关键词在语料库中所属语种的语种内关联关系,获取各个行业关键词的关联词语时,语种内关联关系可包括同义关联关系、近义关联关系、发音相似度阈值和结构相似度阈值,具体的,实施例步骤具体可以包括:根据每个行业关键词以及行业关键词在语料库中所属语种的同义关联关系,获取该行业关键词的同义词;根据每个行业关键词以及行业关键词在语料库中所属语种的近义关联关系,获取该行业关键词的近义词;根据每个行业关键词以及行业关键词在语料库中所属语种的发音相似度阈值,获取该行业关键词的音似词;根据每个行业关键词以及行业关键词在语料库中所属语种的结构相似度阈值,获取该行业关键词的形似词。
    [0096]
    在具体的应用场景中,在利用正例样本语句对和负例样本语句对对bert模型进行语句顺序预测预训练时,实施例步骤具体可以包括:将正例样本语句对和负例样本语句对分别输入bert模型,获取正例样本语句对中两个语句对应的第一语句向量和第二语句向
    量,以及负例样本语句对中两个语句对应的第三语句向量和第四语句向量;计算第一语句向量和第二语句向量的第一向量特征距离,以及第三语句向量和第四语句向量的第二向量特征距离,根据第一向量特征距离和第二向量特征距离更新bert模型的模型参数,以使第一向量特征距离小于第一预设阈值,且第二向量特征距离大于第二预设阈值,其中,第二预设阈值大于第一预设阈值。其中,可利用预设特征距离计算公式计算向量特征距离,预设特征距离计算公式可为任何适用于度量的距离函数公式,如可包括欧几里得距离公式(euclidean distance)、曼哈顿距离公式(manhattan distance)、杰卡德距离公式(jaccard distance)、马氏距离公式(mahalanobis distance)等,具体可根据实际应用场景进行选择,在此不进行具体的限定。
    [0097]
    203、根据第二训练任务以及第二样本语料对bert模型进行任务级别的第二预训练。
    [0098]
    在保险医疗场景中,有着丰富多样的自然语言处理任务,包括文本分类任务、情感分析任务、文本聚类任务、实体识别任务、文本相似度计算任务、信息抽取任务、对话场景对象的分类任务、实体识别任务等。在具体的应用场景中,为了让模型更好地学习到语义层的保险医疗领域内知识,更全面地学习到领域词句的特征分布,可同时引入了多类有监督学习任务,即进行任务级别的第二预训练。在本实施例中,以第二训练任务包括线上真实对话场景下的用户和坐席分类任务和医疗诊断结果中的实体识别任务为例,对本实施例中的技术方案进行说明,但并不构成对本技术中技术方案的具体限定。对于对话场景对象的分类任务,鉴于线上真实场景下用户和坐席的对话内容,天然具有很好的行业属性,因此可利用这类对话语音自动生成大量带有行业标签的语料,并据此构建行业分类的文档级有监督任务。对于医疗诊断结果实体识别任务,与线上真实对话场景下的用户和坐席分类任务类似,可利用已有的患者病例结果报告,医疗诊断结果证明等信息,基于保险医疗领域构建了命名实体识别类的任务语料,共包含有100万条的有监督语料。整体而言,为使自然语言处理模型insbert可以更充分学习到保险领域内的语义知识,在原生bert模型预训练基础上做了如下改进:训练时间更长,训练过程更充分。为了取得更好的模型学习效果,可延长模型第二阶段预训练时间至与第一阶段的tokens总量一致。并且融合保险领域内知识,引入词组和语义级别任务,并提取领域内的专有名词或词组,采用全词mask的掩盖方式以及两类有监督任务进行预训练;将nsp任务改为sop任务,从而使模型对于细粒度界别的分类任务具有更强的辨识能力。
    [0099]
    对于本实施例,作为一种可选方式,实施例步骤具体可以包括:为第二样本语料配置任务标签,任务标签包括对象标签和实体标签;以第二样本语料作为bert模型的输入特征,以及以对象标签或实体标签为训练标签训练bert模型,获取任务训练结果;根据任务标签和任务训练结果计算bert模型的损失函数;若损失函数达到模型收敛要求,则判定bert模型完成分类任务的第二预训练;若判断损失函数未达到模型收敛要求,则更新bert模型的模型参数,并对更新后的bert模型进行迭代训练,直至损失函数符合模型收敛要求。
    [0100]
    204、在判断bert模型完成第一预训练和第二预训练后,将bert模型确定为自然语言处理模型。
    [0101]
    对于本实施例,在bert模型经过实施例步骤202至203中关于字词级别的第一训练任务和任务级别的第二训练任务后,可得到适用于保险领域下游任务的自然语言处理模型
    insbert,此时自然语言处理模型insbert可应用于具体的下游任务中。
    [0102]
    205、获取待进行自然语言处理的文本数据,并对文本数据进行预处理,其中,预处理包括数据清洗处理、停用词滤除处理中的至少一种。
    [0103]
    对于本实施例,在进行对文本数据的预处理时,具体实现过程可参考实施例步骤102中的相关描述,在此不再赘述。
    [0104]
    206、确定文本数据对应的目标下游任务,利用与目标下游任务匹配的适应数据对自然语言处理模型进行微调处理。
    [0105]
    在具体的应用场景中,作为一种可选方式,可直接将预处理后的文本数据输入自然语言处理模型中,利用自然语言处理模型确定文本数据对应目标下游任务下的自然语言处理结果。相应的,为了更好地提升处理效果,作为另一种可选方式,在利用自然语言处理模型确定文本数据对应目标下游任务下的自然语言处理结果之前,还可基于具体的目标下游任务对自然语言处理模型进行微调,进一步能够利用这个预训练好的模型提升针对目标下游任务的处理效果,能够提升效果的原因是:预训练模型的参数是学习好的,已经包含了一部分之前学得的文本信息,利用少量的适应数据即可实现对模型的微调,无需从头学习。
    [0106]
    其中,在利用与目标下游任务匹配的适应数据对自然语言处理模型进行微调处理时,可预先提取预设数量个样本文本,并生成样本文本序列;进而从样本文本序列中随机抽取15%的文本序列,这些文本序列的80%用[mask]这个符号替换,10%用随机一个在词汇表中的中文字替换,10%保持不变,进而通过上下文预测这些被遮掩掉的字。相应的,实施例步骤具体可以包括:对适应数据进行分词处理,确定样本文本序列;在样本文本序列中,随机筛选15%的第一文本序列;分别将第一文本序列中80%的词语进行遮盖处理、将10%的词语利用词汇表中的文字进行替换处理,并且保持10%的词语不变,得到第二文本序列;利用包含第一文本序列和第二文本序列的样本文本调整自然语言处理模型的模型参数,并计算目标函数;若判断目标函数大于预设阈值,则确定自然语言处理模型微调完成。其中,目标函数是对数似然函数,本技术的训练目的就是让这个目标函数值最大,当目标函数值达到最大时,判定微调成功。
    [0107]
    相应的,目标函数的表达式如下:
    [0108]
    l(θ;x)=∑x∈xlog(xmask|x\mask;θ)
    [0109]
    x={x1,x2,...,xn}
    [0110]
    其中,l(θ;x)表示自然语言处理模型的目标函数,x表示所有的样本文本序列,xn表示第n个样本文本序列,θ表示预训练模型bert的模型参数,xmask表示在x中被遮掩处理的15%的样本文本序列,x\mask表示在x中除剩余未被遮掩的85%的样本文本序列。
    [0111]
    207、将预处理后的文本数据输入微调处理后的自然语言处理模型中,获取目标下游任务对应的自然语言处理结果。
    [0112]
    借由上述自然语言处理方法,可首先根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;之后在获取到待进行自然语言处理的文本数据后,可对文本数据进行数据清洗、数据标准化等一系列的预处理操作;最终将预处理后的文本数据输入增量预训练完成的自然语言处理模型中,获取自然语言处理结果。通过本技术中的技术方案,可基于迁移技术获取通用领域下表现良好的bert模型,在bert模型基础上进行具体
    任务领域内的增量预训练,进一步提升模型对于下游任务的适用性。此外,不需要复杂的模型“魔改”工作,经过增量预训练后的模型对于下游任务具有很好性能表现。
    [0113]
    进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种自然语言处理装置,如图4所示,该装置包括:训练模块31、处理模块32、输入模块33。
    [0114]
    训练模块31,可用于根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;
    [0115]
    处理模块32,可用于获取待进行自然语言处理的文本数据,并对文本数据进行预处理,其中,预处理包括数据清洗处理、停用词滤除处理中的至少一种;
    [0116]
    输入模块33,可用于将预处理后的文本数据输入自然语言处理模型中,获取自然语言处理结果。
    [0117]
    在具体的应用场景中,如图所示5所示,训练模块31,包括:获取单元311、第一训练单元312、第二训练单元313、第一确定单元314;
    [0118]
    获取单元311,可用于获取第一训练任务对应的第一样本语料,以及第二训练任务对应的第二样本语料;
    [0119]
    第一训练单元312,可用于根据第一训练任务以及第一样本语料对bert模型进行字词级别的第一预训练;
    [0120]
    第二训练单元313,可用于根据第二训练任务以及第二样本语料对bert模型进行任务级别的第二预训练;
    [0121]
    第一确定单元314,可用于在判断bert模型完成第一预训练和第二预训练后,将bert模型确定为自然语言处理模型。
    [0122]
    在具体的应用场景中,第一训练任务包括全词mask任务、语句顺序预测任务;第一训练单元312,具体可用于对第一样本语料进行分词处理,得到包含各个字符的文本序列,在文本序列中抽取与预设词典共现的字符或由至少两个字符构成的词语对bert模型进行全词mask预训练;以及,按照预设字符标识对第一样本语料进行语句划分,得到包含各个语句的语句序列,利用语句序列中连续的两个语句构建语句顺序预测任务的正例样本语句对,将连续的两个语句进行顺序交换后构建语句顺序预测任务的负例样本语句对,利用正例样本语句对和负例样本语句对对bert模型进行语句顺序预测预训练。
    [0123]
    在具体的应用场景中,如图5所示,训练模块31还包括:构建单元315;
    [0124]
    构建单元315,可用于基于tf-idf算法从标准行业文件中提取预设训练任务对应的行业关键词;根据各个行业关键词以及行业关键词在语料库中所属语种的语种内关联关系,获取各个行业关键词的关联词语,关联词语包括同义词、近义词、音似词和形似词中的至少一种;基于行业关键词和关联词语构建预设词典。
    [0125]
    在具体的应用场景中,在利用正例样本语句对和负例样本语句对对bert模型进行语句顺序预测预训练时,第一训练单元312,可用于将正例样本语句对和负例样本语句对分别输入bert模型,获取正例样本语句对中两个语句对应的第一语句向量和第二语句向量,以及负例样本语句对中两个语句对应的第三语句向量和第四语句向量;计算第一语句向量和第二语句向量的第一向量特征距离,以及第三语句向量和第四语句向量的第二向量特征距离,根据第一向量特征距离和第二向量特征距离更新bert模型的模型参数,以使第一向
    量特征距离小于第一预设阈值,且第二向量特征距离大于第二预设阈值,其中,第二预设阈值大于第一预设阈值。
    [0126]
    在具体的应用场景中,第二训练任务包括对话场景对象的分类任务和实体识别任务;第二训练单元313,具体用于为第二样本语料配置任务标签,任务标签包括对象标签和实体标签;以第二样本语料作为bert模型的输入特征,以及以对象标签或实体标签为训练标签训练bert模型,获取任务训练结果;根据任务标签和任务训练结果计算bert模型的损失函数;若损失函数达到模型收敛要求,则判定bert模型完成分类任务的第二预训练;若判断损失函数未达到模型收敛要求,则更新bert模型的模型参数,并对更新后的bert模型进行迭代训练,直至损失函数符合模型收敛要求。
    [0127]
    在具体的应用场景中,如图5所示,装置还包括:微调模块34;
    [0128]
    微调模块34,可用于确定文本数据对应的目标下游任务,利用与目标下游任务匹配的适应数据对自然语言处理模型进行微调处理;
    [0129]
    输入模块33,可用于将预处理后的文本数据输入微调处理后的自然语言处理模型中,获取目标下游任务对应的自然语言处理结果。
    [0130]
    基于上述如图1和图2所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1至图2所示的方法。
    [0131]
    基于上述如图1所示方法和如图4所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图6所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上处理器41执行程序时实现如图1至图2所示的方法。
    [0132]
    通过本发明的技术方案,可首先根据预设训练任务对通用领域下的bert模型进行增量预训练,得到自然语言处理模型,其中,预设训练任务包括字词级别的第一训练任务和任务级别的第二训练任务;之后在获取到待进行自然语言处理的文本数据后,可对文本数据进行数据清洗、数据标准化等一系列的预处理操作;最终将预处理后的文本数据输入增量预训练完成的自然语言处理模型中,获取自然语言处理结果。通过本技术中的技术方案,可基于迁移技术获取通用领域下表现良好的bert模型,在bert模型基础上进行具体任务领域内的增量预训练,进一步提升模型对于下游任务的适用性。此外,不需要复杂的模型“魔改”工作,经过增量预训练后的模型对于下游任务具有很好性能表现。
    [0133]
    本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
    [0134]
    可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
    [0135]
    本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明
    限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
    转载请注明原文地址:https://tc.8miu.com/read-834.html

    最新回复(0)