CN111680155A - 文本分类方法、装置、电子设备及计算机存储介质 - Google Patents
文本分类方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111680155A CN111680155A CN202010403109.5A CN202010403109A CN111680155A CN 111680155 A CN111680155 A CN 111680155A CN 202010403109 A CN202010403109 A CN 202010403109A CN 111680155 A CN111680155 A CN 111680155A
- Authority
- CN
- China
- Prior art keywords
- text
- classified
- category
- target
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及互联网技术领域,公开了一种文本分类方法、装置、电子设备及计算机可读存储介质,其中,文本分类方法包括:基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;接着,针对每个文本分类任务,确定每个文本分类任务中的各个待分类文本各自对应的各个词汇表;接着,基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。极大降低分类预测的时间,满足分类需求。
Description
技术领域
本申请实施例涉及互联网技术领域,具体而言,本申请涉及一种文本分类方法、装置、电子设备及计算机存储介质。
背景技术
随着互联网的不断发展,网络信息来源越来越多,人们可以通过网络阅读各种类型的文本。对于面向例如汽车、旅游、电影、时政新闻等领域的门户网站,会存在大量的文章,并且对于网站的论坛,网络用户会发布很多的帖子。为了便于对文章或者帖子进行分类,需要对这些文章或者帖子贴上标签。
以新闻文本为例,在向用户推送新闻时,为了满足用户的阅读兴趣,需要根据文本的标签选择用户感兴趣的新闻文本,从而向用户推送相关的新闻文本。这里,海量新闻的文本标签的确定效率与准确性直接影响了后续的推送文本是否符合用户需求。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种文本分类方法,包括:
基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;
针对每个文本分类任务,确定每个文本分类任务中的各个待分类文本各自对应的各个词汇表;
基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
在一种可能的实现方式中,
确定每个文本分类任务中的各个待分类文本分别对应的词汇表,包括:
针对每个待分类文本,确定每个待分类文本的文本标题和文本正文;对文本标题和文本正文分别进行文本预处理,得到每个待分类文本的词汇表;其中,词汇表包括多个文本词,文本预处理包括分词处理与停用词过滤处理。
在一种可能的实现方式中,基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,包括:
针对每个待分类文本,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本;
若每个待分类文本是任一行业类别的行业文本,则确定任一行业类别为每个待分类文本的目标行业类别。
在一种可能的实现方式中,基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,包括:
针对每个待分类文本,根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本,包括:
根据每个待分类文本的词汇表,计算每个待分类文本属于任一行业类别的第一概率;
当确定第一概率大于或等于第一预定阈值时,确定每个待分类文本为任一行业类别的行业文本。
在一种可能的实现方式中,
根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签,包括:
针对每个目标行业类别,根据每个待分类文本的词汇表,计算每个待分类文本对应于每个目标行业类别中的各个类别标签的第二概率,各个第二概率的总和为预定数值;
从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签,包括:
按照从大到小的排列顺序,对最大的N个第二概率进行排序;
将排序第一的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,并按照排列顺序,确定除排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为每个待分类文本的目标类别标签。
在一种可能的实现方式中,在根据各个待分类文本各自对应的词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签之后,还包括:
基于每个文本分类任务的标识信息,将每个文本分类任务中的各个待分类文本分别对应的至少一个目标行业类别和/或至少一个目标类别标签对应转变为预定形式的结果数据;
将预定形式的结果数据输出至预定消息队列。
在一种可能的实现方式中,在基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签之前,还包括:训练FastText分类模型;
训练FastText分类模型,包括:
获取多个训练样本;
根据多个训练样本对基于FastText的分类模型的超参数进行训练,直至基于FastText的分类模型的分类准确度达到最大值,超参数包括向量维数Dim、字符级别N-gram、迭代次数epoch。
一方面,提供了一种文本分类装置,包括:
获取模块,用于基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;
第一确定模块,用于针对每个文本分类任务,确定每个文本分类任务中的各个待分类文本各自对应的各个词汇表;
第二确定模块,用于基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
在一种可能的实现方式中,第一确定模块在确定每个文本分类任务中的各个待分类文本分别对应的词汇表时,用于:
针对每个待分类文本,确定每个待分类文本的文本标题和文本正文;
对文本标题和文本正文分别进行文本预处理,得到每个待分类文本的词汇表;其中,词汇表包括多个文本词,文本预处理包括分词处理与停用词过滤处理。
在一种可能的实现方式中,第二确定模块在根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别时,用于:
针对每个待分类文本,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本;
若每个待分类文本是任一行业类别的行业文本,则确定任一行业类别为每个待分类文本的目标行业类别。
在一种可能的实现方式中,第二确定模块在确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签时,用于针对每个待分类文本,根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,第二确定模块在根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本时,用于:
根据每个待分类文本的词汇表,计算每个待分类文本属于任一行业类别的第一概率;
当确定第一概率大于或等于第一预定阈值时,确定每个待分类文本为任一行业类别的行业文本。
在一种可能的实现方式中,第二确定模块在根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签时,用于:
针对每个目标行业类别,根据每个待分类文本的词汇表,计算每个待分类文本对应于每个目标行业类别中的各个类别标签的第二概率,各个第二概率的总和为预定数值;
从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,第二确定模块在根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签时,用于:
按照从大到小的排列顺序,对最大的N个第二概率进行排序;
将排序第一的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,并按照排列顺序,确定除排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为每个待分类文本的目标类别标签。
在一种可能的实现方式中,还包括处理模块;
处理模块,用于基于每个文本分类任务的标识信息,将每个文本分类任务中的各个待分类文本分别对应的至少一个目标行业类别和/或至少一个目标类别标签对应转变为预定形式的结果数据;以及用于将预定形式的结果数据输出至预定消息队列。
在一种可能的实现方式中,还包括模型训练模块,模型训练模块用于训练FastText分类模型,模型训练模块在训练FastText分类模型时,用于:
获取多个训练样本;
根据多个训练样本对基于FastText的分类模型的超参数进行训练,直至基于FastText的分类模型的分类准确度达到最大值,超参数包括向量维数Dim、字符级别N-gram、迭代次数epoch。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的文本分类方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的文本分类方法。
本申请实施例提供的文本分类方法,通过流式处理框架SparkStreaming,可以基于文本分类任务的方式对每个文本分类任务中的大量待分类文本进行并行流式处理,从而可以高效地对海量行业新闻进行多标签分类;通过基于深度学习离线训练好的满足分类准确率要求的FastText分类模型,不仅可以确保确定出的多个类别标签的准确性,而且可以简单高效地对待分类文本进行实时分类,极大降低分类预测的时间,有效解决现有分类算法复杂度过度且分类预测效率低下的问题,从而满足海量新闻文本的线上实时分类需求。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的文本分类方法的流程示意图;
图2为本申请实施例的确定待分类文本的行业类别和类别标签的过程示意图;
图3为本申请实施例的文本分类的整体过程示意图;
图4为本申请实施例的分类模型的训练过程的整体处理流程示意图;
图5为本申请实施例的分类模型的超参数训练过程示意图;
图6为本申请实施例的文本分类装置的基本结构示意图;
图7为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请实施例的技术方案以及本申请实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请一个实施例提供了一种文本分类方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。终端可以是台式设备或者移动终端。服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。
如图1所示,该方法包括:
步骤S110,基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;步骤S120,针对每个文本分类任务,确定所述每个文本分类任务中的各个待分类文本各自对应的各个词汇表;步骤S130,基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,和/或确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
具体地,大量待分类的文本可以存储在HDFS(Hadoop分布式文件***)中,即可以从HDFS中读取待分类的文本,并对待分类的文本进行分类处理。其中,为了提高对大量待分类文本的分类效率,可以将大量待分类文本分为不同的文本分类任务,每个文本分类任务包括至少一个待分类文本,从而可以通过读取文本分类任务的方式,来读取该文本分类任务中包括的至少一个待分类文本,并对该至少一个待分类文本进行分类处理,实现了待分类文本的并行流式处理。
在一个示例中,假如HDFS中的大量待分类的文本为100万个,即有100万个待分类的文本,此时可以将该100万个待分类的文本分为不同的文本分类任务,例如分为10个文本分类任务,分别记作文本分类任务1、文本分类任务2、…、文本分类任务10,且每个文本分类任务分别包括10万个待分类的文本。
具体地,在将大量待分类文本分为不同的文本分类任务后,可以基于流式处理框架SparkStreaming,获取至少一个文本分类任务,例如上述的文本分类任务1,又例如上述的文本分类任务1和文本分类任务2,并确定每个文本分类任务中的每个待分类文本的至少一个目标行业类别,和/或确定每个文本分类任务中的每个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,从而可以高效地对海量行业新闻进行多标签分类。
基于上述示例,可以基于流式处理框架SparkStreaming,获取文本分类任务1,并确定文本分类任务1中的各个待分类文本各自对应的至少一个目标行业类别,例如确定待分类文本1对应于行业类别1,又例如确定待分类文本2对应于行业类别1与行业类别3;也可以基于流式处理框架SparkStreaming,获取文本分类任务1,并确定文本分类任务1中的各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,例如确定待分类文本1对应于行业类别1中的类别标签Label1_1,又例如确定待分类文本2对应于行业类别1中的类别标签Label1_2与行业类别3中的类别标签Label3_2。在处理完文本分类任务1中的各个待分类文本后,基于流式处理框架SparkStreaming,获取文本分类任务2,并确定文本分类任务2中的各个待分类文本各自对应的至少一个目标行业类别和/或各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签。依此类推,基于流式处理框架SparkStreaming,获取文本分类任务10,并确定文本分类任务10中的各个待分类文本各自对应的至少一个目标行业类别和/或各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签。
具体地,在确定出每个待分类文本对应的目标行业类别后,该目标行业类别相当于该每个待分类文本的类别标签,从而可以根据该类别标签对该每个待分类文本进行分类。比如,某个待分类文本为T1,在确定出T1在其对应的目标行业类别(例如汽车行业)后,可以将T1分类到汽车行业,又比如,某个待分类文本为T2,在确定出T2在其对应的目标行业类别(例如科技行业)后,可以将T2分类到科技行业。
具体地,在确定出每个待分类文本在其对应的至少一个目标行业类别中的至少一个目标类别标签后,可以根据该至少一个目标类别标签,对该每个待分类文本进行分类处理。比如,某个待分类文本为T1,在确定出T1在其对应的目标行业类别(例如汽车行业)中的至少一个目标类别标签为Label_C1后,可以将T1分类到目标类别标签Label_C1对应的文本类别中。又比如,某个待分类文本为T2,在确定出T2在其对应的目标行业类别(例如时政新闻行业)中的至少一个目标类别标签为Label_N1与Label_N2后,可以将T2分类到目标类别标签Label_N1对应的文本类别中,同时将T2分类到目标类别标签Label_N2对应的文本类别中。
具体地,在通过确定每个文本分类任务中的每个待分类文本的至少一目标行业类别,来进行文本分类处理的过程中,可以通过确定每个文本分类任务中的各个待分类文本分别对应的词汇表,并基于预训练的FastText分类模型,根据各个待分类文本分别对应的词汇表,确定各个待分类文本各自对应的目标行业类别,从而可以根据每个待分类文本的至少一个目标行业类别,对每个待分类文本进行分类处理。其中,FastText分类模型是基于深度学习离线训练好的满足分类准确率要求的分类模型,从而可以在在兼顾较高分类准确率的前提下,简单高效地对待分类文本进行实时分类,极大提高分类效率。
具体地,通过确定每个文本分类任务中的各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签的过程中,来进行文本分类处理的过程中,可以通过确定每个文本分类任务中的各个待分类文本分别对应的词汇表,并基于预训练的FastText分类模型,根据各个待分类文本分别对应的词汇表,确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,从而可以根据每个待分类文本的至少一个目标类别标签,对每个待分类文本进行分类处理。
本申请实施例提供的文本分类方法,通过流式处理框架SparkStreaming,可以基于文本分类任务的方式对每个文本分类任务中的大量待分类文本进行并行流式处理,从而可以高效地对海量行业新闻进行多标签分类;通过基于深度学习离线训练好的满足分类准确率要求的FastText分类模型,不仅可以确保确定出的多个类别标签的准确性,而且可以简单高效地对待分类文本进行实时分类,极大降低分类预测的时间,有效解决现有分类算法复杂度过度且分类预测效率低下的问题,从而满足海量新闻文本的线上实时分类需求。
下面以待分类文本是新闻文本为例,对本申请实施例的相关内容进行具体介绍:
在一种可能的实现方式中,在确定每个文本分类任务中的各个待分类文本分别对应的词汇表的过程中,针对每个待分类文本,确定每个待分类文本的文本标题和文本正文,并对文本标题和所述文本正文分别进行文本预处理,得到每个待分类文本的词汇表,词汇表包括多个文本词,文本预处理包括分词处理与停用词过滤处理。
在实际应用中,虽然原始新闻文本(即待分类文本)中通常包括文本的标识信息(例如ID)、文本标题、文本正文、媒体信息、站点栏目等信息,但是往往文本标题和文本正文对原始新闻文本的分类具有重要参考价值,因此,每个文本分类任务(例如文本分类任务1)中的每个待分类文本(例如T1),均需要确定该每个待分类文本的文本标题和文本正文,为后续确定待分类文本的类别标签及分类提供前提保障。
在确定出待分类文本T1的文本标题和文本正文后,可以对文本标题和文本正文分别进行分词处理与停用词过滤处理,即既对文本标题进行分词处理与停用词过滤处理,也对文本正文进行分词处理与停用词过滤处理,从而得到待分类文本的包括多个文本词的词汇表。
在一种可能的实现方式中,在根据各个待分类文本分别对应的词汇表,确定各个待分类文本在各自对应的目标行业类别中分别对应的至少一个目标类别标签的过程中,可以针对每个待分类文本,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本;接着,若每个待分类文本是任一行业类别的行业文本,则确定任一行业类别为每个待分类文本的目标行业类别,并根据每个待分类文本的词汇表,从目标行业类别的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,在根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别的过程中,可以针对每个待分类文本,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本;接着,若每个待分类文本是任一行业类别的行业文本,则确定任一行业类别为所述每个待分类文本的目标行业类别。
在根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签的过程中,针对每个待分类文本,根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签。
具体地,根据各个待分类文本分别对应的词汇表,确定各个待分类文本各自对应的至少一个目标行业类别的过程,可以是通过预训练的基于FastText的分类模型实现的。其中,在通过预训练的基于FastText的分类模型,根据待分类文本(例如T1)的词汇表,确定待分类文本的至少一个目标类别标签的过程中,可以根据待分类文本T1的词汇表,判断待分类文本是否为任一行业类别的行业文本,当判定待分类文本T1为任一行业类别的行业文本时,确定任一行业类别为待分类文本T1的目标行业类别。
具体地,根据各个待分类文本分别对应的词汇表,确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签的过程,可以是通过预训练的分类模型实现的。其中,在通过预训练的基于FastText的分类模型,根据待分类文本(例如T1)的词汇表,确定待分类文本在其对应的目标行业类别中的至少一个目标类别标签的过程中,可以首先根据待分类文本T1的词汇表,确定待分类文本是否为任一行业类别的行业文本,当确定待分类文本T1为任一行业类别的行业文本时,即该任一行业类别为待分类文本T1的目标行业类别,可以根据待分类文本T1的词汇表,从目标行业类别的多个类别标签中,确定待分类文本T1对应的至少一个目标类别标签。
相当于,预训练的基于FastText的分类模型包括两个子分类模型,分别记作第一分类子模型与第二分类子模型,其中,第一个子分类模型将待分类文本按照是否属于行业文本进行二分类(分类结果为是或否),如果是行业文本则继续进行第二子分类模型的分类,即确定待分类文本对应的至少一个类别标签(即目标类别标签)从而对待分类文本进行更细粒度的划分,如果不是行业文本则结束待分类文本的分类。
具体地,在根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本的过程中,可以根据每个待分类文本的词汇表,计算每个待分类文本属于任一行业类别的第一概率,当确定第一概率大于或等于第一预定阈值时,确定每个待分类文本为任一行业类别的行业文本。下面以待分类文本(例如T1)是汽车行业新闻为例,对第一分类子模型的分类过程进行具体介绍:
通过第一分类子模型,确定待分类文本T1是否为汽车行业的新闻文本,即第一分类子模型的分类结果包括汽车类文本和非汽车类文本两种结果。其中,第一分类子模型在确定待分类文本T1是否为汽车行业的新闻文本的过程中,可以根据待分类文本T1的词汇表,计算待分类文本T1属于汽车行业这一行业类别的概率(记作P1),并将概率P1与预定阈值(即第一预定阈值)进行比较,以确定概率P1是否大于或等于第一预定阈值。如果概率P1大于或等于第一预定阈值,则可以确定待分类文本T1属于汽车行业,即待分类文本T1是汽车行业文本,此时可以将汽车行业确定为待分类文本T1的目标行业类别;如果概率P1小于第一预定阈值,则可以确定待分类文本T1不属于汽车行业,即待分类文本T1非汽车行业文本,此时结束针对待分类文本T1的后续处理,如图2中的一级分类(即步骤S210)所示。
在一个示例中,第一预定阈值可以为0.6、0.7等,当然也可以根据需要设置为其它值(比如0.55),本申请实施例不对其作限制。
在一种可能的实现方式中,在根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签的过程中,针对每个目标行业类别,可以根据每个待分类文本的词汇表,计算每个待分类文本对应于每个目标行业类别中的各个类别标签的第二概率,各个第二概率的总和为预定数值(比如1);接着,从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。其中,在根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签的过程中,可以按照从大到小的排列顺序,对最大的N个第二概率进行排序;接着,将排序第一的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,并按照所述排列顺序,确定除排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,从而得到待分类文本对应的至少一个目标类别标签。
下面以待分类文本(例如T1)为汽车行业新闻为例,对第二分类子模型的分类过程进行具体介绍:
由于汽车行业又可以进一步细分为多个类别,比如新能源类别、后市场类别、新车类别、二手车类别等,其中,新能源类别、后市场类别、新车类别、二手车类别等可以分别看作一个类别标签,即每个行业类别(比如汽车行业)包括多个类别标签,因此,在确定待分类文本T1为汽车行业文本后,可以进一步确定待分类文本T1对应于汽车行业中的某个或某几个类别标签。
在一种实施方式中,可以根据分类文本T1的词汇表,计算待分类文本T1对应于汽车行业中的各个类别标签的概率(即第二概率),各个第二概率的总和为预定数值;接着,从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。
在一个示例中,假如汽车行业包括6个类别标,即汽车行业又进一步细划为6个子类别,分别为类别标签C1、类别标签C2、…、类别标签C6,此时可以根据待分类文本T1的词汇表,计算待分类文本T1对应于汽车行业中的各个类别标签的概率(即第二概率),比如分类文本T1的词汇表对应于类别标签C1的概率为P_C1、分类文本T1的词汇表对应于类别标签C2的概率为P_C2、…、分类文本T1的词汇表对应于类别标签C6的概率为P_C6,其中,P_C1、P_C2、…、及P_C6的总和为预定数值(比如数值1、数值2等),当预定数值为1时,相当于对各个概率进行了归一化处理。
基于上述示例,在计算出待分类文本T1对应于汽车行业中的各个类别标签的第二概率(即P_C1、P_C2、…、及P_C6)后,可以从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。假如N的取值为3,则可以对各个第二概率P_C1、P_C2、…、及P_C6按照从大到小(或从小到大)的排列顺序进行排列,并选取出最大的3个第二概率,即选择排名靠前(或排名靠后)的3个第二概率,并根据该最大的3个第二概率,确定待分类文本T1对应的至少一个目标类别标签。
在一示例中,假如N的取值为3,且最大的N个第二概率分别为P_C1、P_C2与P_C3,则可以根据P_C1、P_C2与P_C3,确定待分类文本T1对应的至少一个目标类别标签。在又一个示例中,假如N的取值为3,且最大的N个第二概率分别为P_C4、P_C2与P_C5,则可以根据P_C4、P_C2与P_C5,确定待分类文本T1对应的至少一个目标类别标签。
在一种实施方式中,在根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签的过程中,可以按照从大到小的排列顺序,对最大的N个第二概率进行排序;接着,将排序第一的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,并按照所述排列顺序,确定除排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为每个待分类文本的目标类别标签。
基于上述描述,假如N的取值为3,且最大的N个第二概率分别为P_C4、P_C2与P_C5,则可以按照从大到小的排列顺序,对该3个第二概率进行排序,比如排序结果为P_C2、P_C4与P_C5,又比如排序结果为P_C5、P_C4与P_C2等。
其中,在对最大的3个第二概率按照从大到小的排列顺序排列后,假如排序结果为先P_C2、再P_C4、最后P_C5,则可以直接将排序第一的第二概率对应的类别标签确定为待分类文本T1的目标类别标签,即将P_C2对应的类别标签(即类别标签C2)确定为待分类文本T1的目标类别标签,即待分类文本T1的目标类别标签为类别标签C2。接着,按照上述的排列顺序(先P_C2、再P_C4、最后P_C5),确定P_C4与P_C5是否大于或等于预定阈值(即第二预定阈值),如图2中的二级分类部分(即步骤S220~步骤S260)所示。
假如第二预定阈值为0.15,则在判断P_C4与P_C5是否大于或等于预定阈值(即0.15)的过程中,可以先判断定P_C4是否大于或等于0.15,如果P_C4大于或等于0.15,则将P_C4对应的类别标签(即类别标签C4)确定为待分类文本T1的目标类别标签,即此时待分类文本T1的目标类别标签有两个,分别为类别标签C2与类别标签C4,同时继续判断P_C5是否大于或等于0.15;如果P_C4小于0.15,则不会将P_C4对应的类别标签(即类别标签C4)确定为待分类文本T1的目标类别标签,即此时待分类文本T1的目标类别标签只有一个(即类别标签C2),同时不需要再继续判断P_C5是否大于或等于0.15,因为P_C4大于P_C5,且P_C4小于0.15,故可以推断出P_C5也必然小于0.15,如图2的步骤S220至步骤S260所示。
在判断P_C5是否大于或等于0.15的过程中,如果P_C5大于或等于0.15,则将P_C5对应的类别标签(即类别标签C5)确定为待分类文本T1的目标类别标签,即此时待分类文本T1的目标类别标签有三个,分别为类别标签C2、类别标签C4与类别标签C5;如果P_C5小于0.15,则不会将P_C5对应的类别标签(即类别标签C5)确定为待分类文本T1的目标类别标签,即此时待分类文本T1的目标类别标签只有两个(即类别标签C2与类别标签C4),如图2的步骤S220至步骤S260所示。
在一种可能的实现方式中,在根据各个待分类文本各自对应的词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签之后,还可以:基于每个文本分类任务的标识信息,将每个文本分类任务中的各个待分类文本分别对应的至少一个目标行业类别和/或至少一个目标类别标签对应转变为预定形式的结果数据;接着,将预定形式的结果数据输出至预定消息队列。其中,预定形式可以是JSON字符串形式,预定消息队列可以是Kafka消息队列。
在SparkStreaming的框架机制中,每个时间间隔处理的数据可能包含多个任务数据(即多个文本分类任务的各个待分类文本),在输出每个任务(即每个文本分类任务)的预测结果之前,需要对分类预测输出结果(即每个文本分类任务的每个待分类文本的目标类别标签)进行转换,具体处理主要包括2个部分:(1)将结果转成“任务ID(即任务标识信息):任务结果数据”的形式,(2)实现相同任务ID的数据合并。其中,任务结果数据即为任务ID下的每个待分类文本的目标类别标签。
在一种实施方式中,可以按照任务ID进行分类结果格式化,将单个任务结果数据转换成一个JSON字符串形式,比如采用utf-8编码格式,将单个任务结果数据转换成一个JSON字符串形式,其中,消息的Key(关键字)为任务ID,消息的value(值)为任务预测结果的JSON字符串;采用JSON字符串形式可以便于数据传输,不仅易于阅读和编写,也易于机器解析,能有效提升网络传输效率。接着,将转换成JSON字符串形式的分类结果发送到Kafka消息队列,即将JSON字符串形式的结果数据输出至Kafka消息队列,其中,Kafka消息队列是一个分布式的、高吞吐量、高可扩展性消息队列服务,可以有效地进行日志收集、监控数据聚合和流式数据处理等,可以将各种日志清晰地抽象成日志各事件的消息流。
图3给出了本申请实施例的一种实现过程示意图,在图3中,SparkStreaming可以监听HDFS中的文本分类任务是否执行完毕,或者监听HDFS中属于同一文本分类任务的各个待分类文本是否均已确定出相应的目标类别标签。当SparkStreaming从HDFS读取到文本分类任务后,可以对文本分类任务中每个待分类文本进行数据预处理,即获取待分类文本的文本标题和文本正文,并对文本标题和文本正文进行分词、去停用词等,同时加载预训练的分类模型(即基于FastText的分类模型),来确定待分类文本在对应的目标行业类别中对应的至少一个目标类别标签,接着,根据每个待分类文本的至少一个目标类别标签,对每个待分类文本进行分类处理(即行业分类预测),最后,将预定形式的结果数据输出至Kafka这一预定消息队列,其中,预定形式的结果数据是通过基于每个文本分类任务的标识信息,将每个文本分类任务中的各个待分类文本分别对应的至少一个目标类别标签对应转变为预定形式的结果数据得到的。
在一种可能的实现方式中,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,是通过基于FastText的分类模型实现的,基于FastText的分类模型是通过以下方式训练得到的:首先,获取多个训练样本;接着,根据多个训练样本对基于FastText的分类模型的超参数进行训练,直至基于FastText的分类模型的分类准确度达到最大值,超参数包括向量维数Dim、字符级别N-gram、迭代次数epoch。
基于FastText的分类模型是离线训练好的,该基于FastText的分类模型在人工标记行业文本数据(例如行业新闻数据)的基础上,实现行业文本分类模型的训练。基于FastText的分类模型包括两个分类子模型,分别为一级的行业二分类模型(记作第一分类子模型)和二级的行业内多分类模型(记作第二分类子模型)。其中,基于FastText的分类模型的训练过程主要包括数据预处理过程和模型训练过程两个部分,整体处理流程如图4所示。
在图4中,第一部分是数据预处理单元,数据预处理单包括:数据清洗、分词、去停用词及数据保存等。在对原始数据进行解析后,可以根据解析结果对原始数据进行数据清洗,数据清洗包括去除新闻文本(即样本文本)中的干扰文本信息(例如媒体信息,站点栏目等信息)、去掉新闻文本中的无效信息(例如URL地址、中括号括起来的表情、@某某账号名称、以及一些特殊的表情符号等)。其中,分词采用精确分词模式,在对新闻文本分词后再去停用词。经处理好的新闻文本数据按照训练样本规范进行存储,单条数据格式可以为<__label__类别标签,词1词2词3......>的形式,其中“__label__类别标签,”为前缀,后面的文本内容为预处理分词后的词语,各个词语之间以空格作为间隔。
第二部分是模型训练,在模型训练之前,可以先判断新闻文本的数据量(即样本数量)是否满足条件,若新闻文本的数据量满足条件,则可以进行分类模型的训练。其中,分类模型的训练过程可以为:
首先,进行数据集的划分,将数据集划分为训练集和测试集两部分,在实际应用中,可以根据数据量选择合适的拆分比例,比如9:1、8:2等,当拆分比例为9:1时,将90%的新闻文本作为训练集(即训练样本),将10%的新闻文本作为测试集(即测试样本)。
接着,根据多个训练样本对分类模型的超参数进行训练,超参数包括向量维数Dim、字符级别N-gram(n-gram个数)、迭代次数epoch。具体的训练逻辑图5所示。
在图5中,首先,训练超参数Dim(向量维数),在训练Dim的过程中,可以通过让Dim在预定数值区间内(例如10至300的数值区间)变化,来确定分类结果的准确度值,直至分类结果的准确度值达到最大值。在一个示例中,设定Dim的初始值为0,迭代步长为5(即每次迭代Dim增加5),来比较分类结果准确度,直至找到分类结果的准确度值达到最大值,比如找到分类结果的准确度最大的Dim。
在训练完Dim后,接着训练超参数N-gram,在训练N-gram的过程中,可以通过让N-gram在预定数值区间内(例如1至5的数值区间)变化,来确定分类结果的准确度值,直至分类结果的准确度值达到最大值。在一个示例中,设定N-gram的初始值为1,迭代步长为1(即每次迭代N-gram增加1),来比较分类结果的准确度,直至找到分类结果的准确度值达到最大值,比如找到分类结果的准确度最大的N-gram。
在训练完N-gram后,接着训练超参数epoch,在训练epoch的过程中,可以通过让epoch在预定数值区间内(例如1至50的数值区间)变化,来确定分类结果的准确度值,直至分类结果的准确度值达到最大值。在一个示例中,先设定epoch的初始值为10,先从减小方向递减,且迭代步长为2,即epoch的初始值为10,第二次迭代时epoch的值为8,若分类结果的准确度向减小方向变化,比如第二次迭代的分类结果的准确度低于第一次迭代的分类结果的准确度,则向增加方向迭代,即epoch的初始值为10,第三次迭代时epoch的值为12,并比较分类结果准确度,直至找到分类结果的准确度值达到最大值,比如找到分类结果的准确度最大的epoch。
本申请实施例的方法,通过融合数据并行流式处理框架SparkStreaming和基于FastText分类算法的深度学习技术,有效降低了分类复杂度,极大提高分类效率,满足了分量新闻文本的实时分类需求,具体体现在如下几个方面:
第一,实现了一种适合海量新闻线上多标签快速分类的技术方案,本申请实施例的方法采用大数据并行流式处理框架SparkStreaming,融合FastText分类算法,并结合Kafka、HDFS等分布式技术,实现了高效的在线海量行业新闻的多标签分类。
第二,本申请实施例提供了一种基于FastText输出层h-softmax结构的多标签判定规则,本规则通过引入概率阈值、结合分类最大标签数及逻辑判断,来自动完成多标签选取,大大降低了分类预测时间,且适用性强。
第三,本申请实施例提供了一种基于FastText算法的训练分类模型的方法,针对不同的样本集,可以自动调节超参数,从而可以快速输出适用于不同场景和不同数据集的分类模型,为实时分类预测服务的准确、高效运行奠定坚实基础。
图6为本申请又一实施例提供的一种文本分类装置的结构示意图,如图6所示,该装置600可以包括获取模块601、第一确定模块602与第二确定模块603,其中:
获取模块601,用于基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;
第一确定模块602,用于针对每个文本分类任务,确定每个文本分类任务中的各个待分类文本各自对应的各个词汇表;
第二确定模块603,用于基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
在一种可能的实现方式中,第一确定模块在确定每个文本分类任务中的各个待分类文本分别对应的词汇表时,用于:
针对每个待分类文本,确定每个待分类文本的文本标题和文本正文;
对文本标题和文本正文分别进行文本预处理,得到每个待分类文本的词汇表;其中,词汇表包括多个文本词,文本预处理包括分词处理与停用词过滤处理。
在一种可能的实现方式中,第二确定模块在根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别时,用于:
针对每个待分类文本,根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本;
若每个待分类文本是任一行业类别的行业文本,则确定任一行业类别为每个待分类文本的目标行业类别。
在一种可能的实现方式中,第二确定模块在确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签时,用于针对每个待分类文本,根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,第二确定模块在根据每个待分类文本的词汇表,确定每个待分类文本是否为任一行业类别的行业文本时,用于:
根据每个待分类文本的词汇表,计算每个待分类文本属于任一行业类别的第一概率;
当确定第一概率大于或等于第一预定阈值时,确定每个待分类文本为任一行业类别的行业文本。
在一种可能的实现方式中,第二确定模块在根据每个待分类文本的词汇表,从每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定每个待分类文本对应的至少一个目标类别标签时,用于:
针对每个目标行业类别,根据每个待分类文本的词汇表,计算每个待分类文本对应于每个目标行业类别中的各个类别标签的第二概率,各个第二概率的总和为预定数值;
从各个第二概率中确定最大的N个第二概率,并根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签。
在一种可能的实现方式中,第二确定模块在根据最大的N个第二概率,确定每个待分类文本对应的至少一个目标类别标签时,用于:
按照从大到小的排列顺序,对最大的N个第二概率进行排序;
将排序第一的第二概率对应的类别标签确定为每个待分类文本的目标类别标签,并按照排列顺序,确定除排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为每个待分类文本的目标类别标签。
在一种可能的实现方式中,还包括处理模块;
处理模块,用于基于每个文本分类任务的标识信息,将每个文本分类任务中的各个待分类文本分别对应的至少一个目标行业类别和/或至少一个目标类别标签对应转变为预定形式的结果数据;以及用于将预定形式的结果数据输出至预定消息队列。
在一种可能的实现方式中,还包括模型训练模块,模型训练模块用于训练FastText分类模型,模型训练模块在训练FastText分类模型时,用于:
获取多个训练样本;
根据多个训练样本对基于FastText的分类模型的超参数进行训练,直至基于FastText的分类模型的分类准确度达到最大值,超参数包括向量维数Dim、字符级别N-gram、迭代次数epoch。
本申请实施例提供的装置,通过流式处理框架SparkStreaming,可以基于文本分类任务的方式对每个文本分类任务中的大量待分类文本进行并行流式处理,从而可以高效地对海量行业新闻进行多标签分类;通过基于深度学习离线训练好的满足分类准确率要求的FastText分类模型,不仅可以确保确定出的多个类别标签的准确性,而且可以简单高效地对待分类文本进行实时分类,极大降低分类预测的时间,有效解决现有分类算法复杂度过度且分类预测效率低下的问题,从而满足海量新闻文本的线上实时分类需求。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,本实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法项实施例中。
本申请另一实施例提供了一种电子设备,如图7所示,图7所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。进一步地,电子设备700还可以包括收发器704。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
其中,处理器701应用于本申请实施例中,用于实现图6所示的获取模块、第一确定模块及第二确定模块的功能。收发器704包括接收机和发射机。
处理器701可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI总线或EISA总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器703用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。处理器701用于执行存储器703中存储的应用程序代码,以实现图6所示实施例提供的文本分类装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,可实现:基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;接着,针对每个文本分类任务,确定每个文本分类任务中的各个待分类文本各自对应的各个词汇表;接着,基于预训练的FastText分类模型,根据各个待分类文本各自对应的各个词汇表,确定各个待分类文本各自对应的至少一个目标行业类别,和/或确定各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所示的方法。其中:通过流式处理框架SparkStreaming,可以基于文本分类任务的方式对每个文本分类任务中的大量待分类文本进行并行流式处理,从而可以高效地对海量行业新闻进行多标签分类;通过基于深度学习离线训练好的满足分类准确率要求的FastText分类模型,不仅可以确保确定出的多个类别标签的准确性,而且可以简单高效地对待分类文本进行实时分类,极大降低分类预测的时间,有效解决现有分类算法复杂度过度且分类预测效率低下的问题,从而满足海量新闻文本的线上实时分类需求。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种文本分类方法,其特征在于,包括:
基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;
针对每个文本分类任务,确定所述每个文本分类任务中的各个待分类文本各自对应的各个词汇表;
基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,和/或确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
2.根据权利要求1所述的方法,其特征在于,所述确定所述每个文本分类任务中的各个待分类文本分别对应的词汇表,包括:
针对每个待分类文本,确定所述每个待分类文本的文本标题和文本正文;
对所述文本标题和所述文本正文分别进行文本预处理,得到所述每个待分类文本的词汇表;
其中,所述词汇表包括多个文本词,所述文本预处理包括分词处理与停用词过滤处理。
3.根据权利要求1所述的方法,其特征在于,所述基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,包括:
针对每个待分类文本,根据所述每个待分类文本的词汇表,确定所述每个待分类文本是否为任一行业类别的行业文本;
若所述每个待分类文本是任一行业类别的行业文本,则确定所述任一行业类别为所述每个待分类文本的目标行业类别。
4.根据权利要求1或3所述的方法,其特征在于,基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,包括:
针对每个待分类文本,根据所述每个待分类文本的词汇表,从所述每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定所述每个待分类文本对应的至少一个目标类别标签。
5.根据权利要求3所述的方法,其特征在于,所述根据所述每个待分类文本的词汇表,确定所述每个待分类文本是否为任一行业类别的行业文本,包括:
根据所述每个待分类文本的词汇表,计算所述每个待分类文本属于所述任一行业类别的第一概率;
当确定所述第一概率大于或等于第一预定阈值时,确定所述每个待分类文本为所述任一行业类别的行业文本。
6.根据权利要求4所述的方法,其特征在于,根据所述每个待分类文本的词汇表,从所述每个待分类文本对应的至少一个目标行业类别分别包括的多个类别标签中,确定所述每个待分类文本对应的至少一个目标类别标签,包括:
针对每个目标行业类别,根据所述每个待分类文本的词汇表,计算所述每个待分类文本对应于所述每个目标行业类别中的各个类别标签的第二概率,各个第二概率的总和为预定数值;
从各个第二概率中确定最大的N个第二概率,并根据所述最大的N个第二概率,确定所述每个待分类文本对应的至少一个目标类别标签。
7.根据权利要求6所述的方法,其特征在于,根据所述最大的N个第二概率,确定所述每个待分类文本对应的至少一个目标类别标签,包括:
按照从大到小的排列顺序,对所述最大的N个第二概率进行排序;
将排序第一的第二概率对应的类别标签确定为所述每个待分类文本的目标类别标签,并按照所述排列顺序,确定除所述排序第一的第二概率外的N-1个第二概率是否大于或等于第二预定阈值,若存在大于或等于第二预定阈值的第二概率,则将大于或等于第二预定阈值的第二概率对应的类别标签确定为所述每个待分类文本的目标类别标签。
8.根据权利要求1-7任一项所述的方法,其特征在于,在所述根据所述各个待分类文本各自对应的词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,和/或确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签之后,还包括:
基于所述每个文本分类任务的标识信息,将所述每个文本分类任务中的各个待分类文本分别对应的至少一个目标行业类别和/或至少一个目标类别标签对应转变为预定形式的结果数据;
将所述预定形式的结果数据输出至预定消息队列。
9.根据权利要求1-7任一项所述的方法,其特征在于,在所述基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,和/或确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签之前,还包括:训练FastText分类模型;
所述训练FastText分类模型,包括:
获取多个训练样本;
根据所述多个训练样本对所述基于FastText的分类模型的超参数进行训练,直至所述基于FastText的分类模型的分类准确度达到最大值,所述超参数包括向量维数Dim、字符级别N-gram、迭代次数epoch。
10.一种文本分类装置,其特征在于,包括:
获取模块,用于基于流式处理框架SparkStreaming,获取至少一个文本分类任务,每个文本分类任务包括至少一个待分类文本;
第一确定模块,用于针对每个文本分类任务,确定所述每个文本分类任务中的各个待分类文本各自对应的各个词汇表;
第二确定模块,用于基于预训练的FastText分类模型,根据所述各个待分类文本各自对应的各个词汇表,确定所述各个待分类文本各自对应的至少一个目标行业类别,和/或确定所述各个待分类文本在各自对应的至少一个目标行业类别中分别对应的至少一个目标类别标签,以对各个待分类文本进行分类,每个行业类别包括多个类别标签。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403109.5A CN111680155A (zh) | 2020-05-13 | 2020-05-13 | 文本分类方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403109.5A CN111680155A (zh) | 2020-05-13 | 2020-05-13 | 文本分类方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111680155A true CN111680155A (zh) | 2020-09-18 |
Family
ID=72452472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010403109.5A Pending CN111680155A (zh) | 2020-05-13 | 2020-05-13 | 文本分类方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680155A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988953A (zh) * | 2021-04-26 | 2021-06-18 | 成都索贝数码科技股份有限公司 | 自适应广播电视新闻关键词标准化方法 |
CN113190154A (zh) * | 2021-04-29 | 2021-07-30 | 北京百度网讯科技有限公司 | 模型训练、词条分类方法、装置、设备、存储介质及程序 |
CN113239200A (zh) * | 2021-05-20 | 2021-08-10 | 东北农业大学 | 内容识别分类方法、装置、***及存储介质 |
CN113298352A (zh) * | 2021-04-28 | 2021-08-24 | 北京网核精策科技管理中心(有限合伙) | 企业行业信息处理方法、装置、电子设备及可读存储介质 |
CN113360645A (zh) * | 2021-05-31 | 2021-09-07 | 多益网络有限公司 | 一种名片文本信息的归类方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766410A (zh) * | 2019-01-07 | 2019-05-17 | 东华大学 | 一种基于fastText算法的新闻文本自动分类*** |
CN110096664A (zh) * | 2019-04-03 | 2019-08-06 | 北大方正集团有限公司 | 分布式文本信息处理方法、装置、***、设备及存储介质 |
CN110347821A (zh) * | 2019-05-29 | 2019-10-18 | 华东理工大学 | 一种文本类别标注的方法、电子设备和可读存储介质 |
WO2019200806A1 (zh) * | 2018-04-20 | 2019-10-24 | 平安科技(深圳)有限公司 | 文本分类模型的生成装置、方法及计算机可读存储介质 |
-
2020
- 2020-05-13 CN CN202010403109.5A patent/CN111680155A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019200806A1 (zh) * | 2018-04-20 | 2019-10-24 | 平安科技(深圳)有限公司 | 文本分类模型的生成装置、方法及计算机可读存储介质 |
CN109766410A (zh) * | 2019-01-07 | 2019-05-17 | 东华大学 | 一种基于fastText算法的新闻文本自动分类*** |
CN110096664A (zh) * | 2019-04-03 | 2019-08-06 | 北大方正集团有限公司 | 分布式文本信息处理方法、装置、***、设备及存储介质 |
CN110347821A (zh) * | 2019-05-29 | 2019-10-18 | 华东理工大学 | 一种文本类别标注的方法、电子设备和可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988953A (zh) * | 2021-04-26 | 2021-06-18 | 成都索贝数码科技股份有限公司 | 自适应广播电视新闻关键词标准化方法 |
CN113298352A (zh) * | 2021-04-28 | 2021-08-24 | 北京网核精策科技管理中心(有限合伙) | 企业行业信息处理方法、装置、电子设备及可读存储介质 |
CN113190154A (zh) * | 2021-04-29 | 2021-07-30 | 北京百度网讯科技有限公司 | 模型训练、词条分类方法、装置、设备、存储介质及程序 |
CN113190154B (zh) * | 2021-04-29 | 2023-10-13 | 北京百度网讯科技有限公司 | 模型训练、词条分类方法、装置、设备、存储介质及程序 |
CN113239200A (zh) * | 2021-05-20 | 2021-08-10 | 东北农业大学 | 内容识别分类方法、装置、***及存储介质 |
CN113239200B (zh) * | 2021-05-20 | 2022-07-12 | 东北农业大学 | 内容识别分类方法、装置、***及存储介质 |
CN113360645A (zh) * | 2021-05-31 | 2021-09-07 | 多益网络有限公司 | 一种名片文本信息的归类方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111680155A (zh) | 文本分类方法、装置、电子设备及计算机存储介质 | |
CN112100383B (zh) | 一种面向多任务语言模型的元-知识微调方法及平台 | |
CN106991085B (zh) | 一种实体的简称生成方法及装置 | |
CN111310476B (zh) | 一种使用基于方面的情感分析方法的舆情监控方法和*** | |
CN111753092B (zh) | 一种数据处理方法、模型训练方法、装置及电子设备 | |
CN110009430B (zh) | 作弊用户检测方法、电子设备及计算机可读存储介质 | |
CN106886569A (zh) | 一种基于mpi的ml‑knn多标签中文文本分类方法 | |
CN109948160B (zh) | 短文本分类方法及装置 | |
CN111078876A (zh) | 一种基于多模型集成的短文本分类方法和*** | |
CN112925904B (zh) | 一种基于Tucker分解的轻量级文本分类方法 | |
CN113032525A (zh) | 虚假新闻检测方法、装置、电子设备以及存储介质 | |
CN112131578A (zh) | 攻击信息预测模型的训练方法、装置、电子设备及存储介质 | |
CN110647995A (zh) | 规则训练方法、装置、设备及存储介质 | |
CN111538809A (zh) | 一种语音服务质量检测方法、模型训练方法及装置 | |
CN111414471B (zh) | 用于输出信息的方法和装置 | |
CN110727758A (zh) | 一种基于多长度文本向量拼接的舆情分析方法及其*** | |
CN116127060A (zh) | 一种基于提示词的文本分类方法及*** | |
CN113487103A (zh) | 模型更新方法、装置、设备及存储介质 | |
CN111291189B (zh) | 一种文本处理方法、设备及计算机可读存储介质 | |
CN111368150B (zh) | 预测模型的训练方法、装置及电子设备 | |
CN111488950A (zh) | 分类模型信息输出方法及装置 | |
CN110929516A (zh) | 文本的情感分析方法、装置、电子设备及可读存储介质 | |
CN109753999A (zh) | 针对任意视角汽车图片的细粒度车型识别方法 | |
CN115858911A (zh) | 信息推荐方法、装置、电子设备及计算机可读存储介质 | |
CN114118058A (zh) | 基于句法特征和注意力机制相融合的情感分析***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |