文本分类方法及系统、电子设备、计算机可读存储介质
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种基于BERT预训练模型的文本分类方法及系统、电子设备、计算机可读存储介质。
背景技术
文本分类任务是指在给定的分类体系中,将文本指定分到某个或某几个类别中。目前常用BERT (Bidirectional Encoder Representations from Transformers) 预训练模型进行文本分类。BERT是最近谷歌公司发布的基于双向Transformer的大规模预训练语言模型,该预训练模型能分别捕捉词语和句子级别的表示,高效抽取文本信息并应用于各种NLP任务。BERT预训练模型一般需要强大计算能力和大量的语料花费大量时间才能训练完成,所以一般由大型公司如谷歌公司等训练完成,其他用户只需要通过下载训练好的预训练模型微调(finetuning)使用,经过微调后,BERT直接取第一个[CLS]token的finalhidden state加一层权重后通过softmax预测各个类别标签的可能性,取可能性最高的标签作为分类标签,完成文本分类任务,且具有较高的准确率。也正是由于BERT的分类准确率较高,且只需要进行微调即可,因此BERT预训练模型成为了文本分类的首选。
发明内容
本发明的目的在于提供一种基于BERT预训练模型的文本分类方法及系统,可以进一步提高分类结果的准确性。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一方面,本发明实施例中提供了一种基于BERT预训练模型的文本分类方法,包括以下步骤:
收集各种文本类型的关键词,并构成关键词集;
对准备的文本语料的类别进行标注,以及基于关键词集对文本语料中的关键词进行标注;
以标注后的文本语料中的关键词为对象,对标注后的文本语料进行序列标注;
将关键词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值;
将处理后的文本语料送入BERT预训练模型进行微调,关键词表示层同时训练,得到训练好的分类模型以及关键词表示层的向量矩阵;
将待分类文本输入训练好的分类模型进行推理,以及将待分类文本中的关键词通过所述向量矩阵索引输入,输出得到分类结果。
一般地,文本分类使用的BERT预训练模型的输入层为3层,通过增加一层或多层输入层,增加的输入层也会参与训练,且增加的输入是辅助分类识别的特征,因此可以提高分类结果的准确性。不同文本类型都有相应的关键词,通过将关键词作为新增的输入层参与训练,学习不同类别的关键词的特点,模型在进行识别时即会引入关键词的信息,继而可以有效提高识别结果的准确性。
对标注后的文本语料进行序列标注时,采用BIEO标注法对文本语料进行序列标注。
另一方面,本发明实施例同时提供了一种基于BERT预训练模型的文本分类系统,包括文本分类装置和预下载的BERT预训练模型,所述文本分类装置包括:
关键词收集模块:收集各种文本类型的关键词,并构成关键词集;
人工标注模块:对准备的文本语料的类别进行标注,以及基于关键词集对文本语料中的关键词进行标注;
序列标注模块:以标注后的文本语料中的关键词为对象,对标注后的文本语料进行序列标注;
模型训练模块:将关键词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将处理后的文本语料送入BERT预训练模型进行微调,关键词表示层同时训练,得到训练好的分类模型以及关键词表示层的向量矩阵;
文本分类模块:将待分类文本输入训练好的分类模型进行推理,以及将待分类文本中的关键词通过所述向量矩阵索引输入,输出得到分类结果。
序列标注模块在对标注后的文本语料进行序列标注时,采用BIEO标注法对文本语料进行序列标注。
再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中所述文本分类方法中的步骤。
再一方面,本发明实施例同时提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时使处理器执行本发明实施例中所述文本分类方法中的操作。
与现有技术相比,本发明具有以下有益效果:本发明提出了一种新的文本分类方法,通过增加BERT预训练模型的输入层的方式,增加了模型文本分类识别时的参考特征量,即增加了新的信息,因此可以提高文本分类的准确性。另外,本发明没有对BERT预训练模型的结构进行改变,因此无需请求提供BERT预训练模型的谷歌公司等对BERT模型进行改进,即本发明方法并不受基础模型提供公司的限制,也不存在任何不便利性的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为实施例中所述的基于BERT预训练模型的文本分类方法的流程图。
图2a为传统文本分类方法中BERT预训练模型的输入层表示图。
图2b为本发明文本分类方法中BERT预训练模型的输入层表示图。
图2c是传统文本分类方法中BERT预训练模型的输出层表示图。
图2d为本发明文本分类方法中BERT预训练模型的输出层表示图。
图2e为本发明文本分类方法中关键词表示层的初始化向量矩阵示意图。
图2f为本发明文本分类方法中训练好的键词表示层的BIEO向量矩阵示意图。
图3为实施例中基于BERT预训练模型的文本分类系统的示意框图。
图4为实施例中所述的电子设备的组成框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本实施例中提供了一种基于BERT预训练模型的文本分类方法,包括以下步骤:
S10,收集各种文本类型的关键词,并构成关键词集。关键词是指文本里面和内容意义最相关的一些词语。在文本标注前,需要准备好与各文本类型相关的关键词,以便于在标注时使用。
S20,对准备的文本语料的类别进行标注,以及基于关键词集对文本语料中的关键词进行标注。也就是说,针对于每个文本语料,既要标注文本语料的类别,又要对该文本语料中的关键词进行标注。
S30,以标注后的文本语料中的关键词为对象,对标注后的文本语料进行序列标注,也就是把关键词标注出来,作为label。
BIEO是应用比较广的序列标注方法,因此本步骤中采用该序列标注法进行数据转换。BIEO是做序列标注常用的标注表示方法,简单的来说序列标注就是:给定一个序列,对序列中的每一个元素做一个标记,或者说给每一个元素打一个标签。一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。B=begin,E=end,I=intermediate,分别表示一个词的开头、结尾和中间部分,O=other,表示不符合以上三种情况。例如,文本语料为“足球参与人数很多。”,“足球”是体育的一个关键词,采用BIEO进行序列标注后结果为“BEOOOOOOO”。
S40,将BERT预训练模型的输入向量增加一层,即增加关键词表示层,关键词表示层即为文本语料中各个字符的文本类型表示,并对每个向量初始化赋值,例如每个向量初始化为0。
可以参阅图2a和图2b,图2a为传统文本分类方法中BERT预训练模型的输入,包括Token Embedding、Segment Embedding及Position Embedding共3层;图2b为本发明文本分类方法中BERT预训练模型的输入,包括Token Embedding、Segment Embedding、PositionEmbedding及Keyword Embedding(即关键词表示层)共4层。图2b中V-1向量表示“足球”是分类1的关键词。关键词表示层的初始化向量结构表示如图2e所示,初始值为0。
S50,将处理后的文本语料送入BERT预训练模型进行微调(fine-tuning),将关键词表示层同时训练,通过反向传播的梯度进行变化,最终得到训练好的分类模型以及关键词表示层的向量矩阵,即(C+1)*n矩阵,其中C表示文本类别数量,n表示向量长度。一个训练好的(C+1)*n矩阵的BIEO向量表示如图2f所示。图2e和图2f中,C=5。
S60,将待分类文本输入训练好的模型进行推理(inference),及将待分类文本中的关键词通过所述关键词集匹配出来,使得将待分类文本中的关键词通过之前关键词表示层训练好的(C+1)*n矩阵索引输入,完成文本分类过程,输出分类结果。
请参阅图2c和图2d,图2c是传统文本分类方法中BERT预训练模型的输出,即待分类文本的类型识别结果;图2d为本发明文本分类方法中BERT预训练模型的输出,不仅包括类型识别结果,还包括对字符是否为关键词组成部分进行判断的结果,例如“足球”是体育的一个关键词,即被标注为“BE”。
同时采用传统方法和本发明方法对清华新闻语料进行分类,并将分类结果的准确率进行比较,本发明方法的准确率为97.43%,而传统方法的准确率为97.06%,明显地,本发明方法的准确率更高。
本发明方法不仅可以提高分类识别结果的准确率,而且方法步骤也简单,也无需受BERT预训练模型的提供方的限制,使用便利。
请参阅图3,本实施例中提供了一种基于BERT预训练模型的文本分类系统,包括文本分类装置和从谷歌服务器预下载的BERT预训练模型,文本分类装置用于增加所述BERT预训练模型的输入层并参与训练,并基于训练后得到的分类模型对待分类文本进行分类识别;增加的输入层为辅助分类识别的特征表示层。
具体地,文本分类装置包括:
关键词收集模块:收集各种文本类型的关键词,并构成关键词集。在记录关键词时,优选同一个类型文本的相关关键词记录在一起,也就是不同类型文本的关键词分开记录。例如,足球和篮球都是体育类的关键词,则优选记录在一个目录下。
人工标注模块:从语料库中提取准备好的文本语料,并对准备的文本语料的类别进行标注,以及基于关键词集对文本语料中的关键词进行标注。
序列标注模块:以标注后的文本语料中的关键词为对象,对标注后的文本语料进行序列标注。此处可以采用BIEO标注法进行序列标注,关键词用B或I或E替换,其他字符用O替换。
模型训练模块:将关键词表示层作为BERT预训练模型新增的输入向量层,每个向量初始化为0,将处理后的文本语料送入BERT预训练模型进行微调,关键词表示层同时训练,得到关键词表示层的向量矩阵以及训练好的分类模型。
文本分类模块:将待分类文本输入训练好的分类模型进行推理,及将待分类文本中的关键词通过所述向量表示索引输入,输出得到分类结果。
如图4所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中存储器52耦合至处理器51。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,实现数据提取、报告生成、通信或其他功能。
如图4所示,该电子设备还可以包括:输入单元53、显示单元54和电源55。值得注意的是,该电子设备也并不是必须要包括图4中显示的所有部件。此外,电子设备还可以包括图4中没有示出的部件,可以参考现有技术。
处理器51有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器51接收输入并控制电子设备的各个部件的操作。
其中,存储器52例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器51的配置信息、处理器51执行的指令等信息。处理器51可以执行存储器52存储的程序,以实现信息存储或处理等。在一个实施例中,存储器52中还包括缓冲存储器,即缓冲器,以存储中间信息。
输入单元53例如用于向处理器51提供文本数据。显示单元54用于显示处理过程中的各种结果,例如输入的文本数据、模型输出结果等,该显示单元例如可以为LCD显示器,但本发明并不限于此。电源55用于为电子设备提供电力。
本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。
本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成模块及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。