本发明实施例涉及计算机数据处理领域,尤其涉及一种基于神经网络的文本分类方法、系统、计算机设备及计算机可读存储介质。
背景技术:
文本分类是自然语言处理的重要任务之一,类似于文章的行业分类,情感分析等许多自然语言处理任务其实质都是文本的分类。目前常用的文本分类器主要可以分成两大类:基于先验规则的文本分类器和基于模型的文本分类器。基于先验规则的文本分类器的分类规则需要靠人工挖掘或先验知识的积累。基于模型的文本分类器,如基于LDA(Latent Dirichlet Allocation,文档主题生成模型)等主题模型对文本分类。
然而,采用上述分类方法经常会出现分类错误的问题,导致分类的准确率低。
技术实现要素:
有鉴于此,本发明实施例的目的是提供一种基于神经网络的文本分类方法、系统、计算机设备及计算机可读存储介质,解决文本分类错误、分类准确率低的问题。
为实现上述目的,本发明实施例提供了一种基于神经网络的文本分类方法,包括以下步骤:
对待分类文本进行分词操作以获取L个分词;
对所述L个分词分别进行词向量映射,以获取L*d维词向量矩阵,其中每个分词映射为一个d维词向量;
通过卷积层对所述L*d维词向量矩阵执行卷积操作,得到M个卷积特征图,所述卷积层包括M个f*d的卷积核;
将每个卷积特征图中的第j个元素配置到第j个输入向量中,得到(L-f+1)个输入向量,1≤j≤(L-f+1),其中所述第j个输入向量中的元素排列顺序由各个元素所在的特征卷积图的i值决定,i为卷积核标识,1≤i≤M;及
将所述(L-f+1)个输入向量依顺序输入到长短短期记忆网络模型中,计算所述待分类文本的分类向量。
优选地,所述对待分类文本进行分词操作以获取L个分词的步骤,包括:
获取浏览所述待分类文本的多个用户的多个用户属性信息;
根据所述多个用户的多个用户属性信息,分析得到浏览所述待分类文本的目标群体;
根据所述目标群体的历史用户画像,得到所述待分类文本对应每个主题的预测概率;
根据所述每个主题的预测概率,筛选预测概率大于预设阀值的多个目标主题;及
基于所述多个目标主题对所述待分类文本进行分词操作。
优选地,所述基于所述多个目标主题对所述待分类文本进行分词操作的步骤,包括:
根据所述多个目标主题的多个主题词库,对所述待分类文本进行分词操作。
优选地,所述基于所述多个目标主题对所述待分类文本进行分词操作的步骤,包括:
根据每个目标主题关联的主题词库分别对所述待分类文本进行分词操作,以得到多个分词集合;
对比各个分词集合在相应字符位置区域的分词是否相同;
如果相同,则将相应字符位置区域的分词放入目标分词集合中;及
如果不相同,则选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合。
优选地,所述选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合的步骤,包括:
通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;及
选择将被划分概率最高的分词放入到所述目标分词集合中。
优选地,所述选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合的步骤,包括:
通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;
根据各个分词集合在相应字符位置区域的分词的被划分概率以及各个分词集合关联的目标主题的预测概率,计算出各个分词集合在相应字符位置区域的分词的综合权重系数;及
选择将综合权重系数最高的分词加入目标分词集合中。
优选地,将所述(L-f+1)个输入向量依顺序输入到长短短期记忆网络模型中,计算所述待分类文本的分类向量的步骤,包括:
通过所述长短期记忆网络模型获取(L-f+1)个输出向量;及
将所述(L-f+1)个输出向量输入到分类层,通过所述分类层输出分类向量。
为实现上述目的,本发明实施例还提供了基于神经网络的文本分类系统,包括:
分词模块,用于对待分类文本进行分词操作以获取L个分词;
词向量映射模块,用于对所述L个分词分别进行词向量映射,以获取L*d维词向量矩阵,其中每个分词映射为一个d维词向量;
卷积模块,用于通过卷积层对所述L*d维词向量矩阵执行卷积操作,得到M个卷积特征图,所述卷积层包括M个f*d的卷积核;
特征映射模块,用于将每个卷积特征图中的第j个元素配置到第j个输入向量中,得到(L-f+1)个输入向量,1≤j≤(L-f+1),其中所述第j个输入向量中的元素排列顺序由各个元素所在的特征卷积图的i值决定,i为卷积核标识,1≤i≤M;及
预测模块,用于将所述(L-f+1)个输入向量依顺序输入到长短短期记忆网络模型中,计算所述待分类文本的分类向量。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上所述的基于神经网络的文本分类方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的基于神经网络的文本分类方法的步骤。
本发明实施例提供的基于神经网络的文本分类方法、系统、计算机设备及计算机可读存储介质,结合卷积和长短期基于网络模型,形成CNN+LSTM的文本分类模型,有效兼顾文本的局部上下文特征,和大跨度的词与词之间的依赖关系。因此,可以解决文本分类错误、分类准确率低的问题,尤其适用于长文本的文本分类任务。
附图说明
图1为本发明基于神经网络的文本分类方法实施例一的流程示意图。
图2为图1中步骤S100的具体流程示意图。
图3为图2中步骤S1008的具体流程示意图。
图4为本发明文本分类系统实施例二的程序模块示意图。
图5为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
以下实施例将以计算机设备2为执行主体进行示例性描述。
实施例一
参阅图1,示出了本发明实施例一之基于神经网络的文本分类方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。具体如下。
步骤S100,对待分类文本进行分词操作以获取L个分词。
所述分词操作可以基于词典分词算法:正向最大匹配法、逆向最大匹配法和双向匹配分词法,也可以基于隐马尔科夫模型HMM、CRF、SVM、深度学习等算法。
在示例性的实施例中,参阅图2,所述步骤S100可以进一步包括步骤S1000~步骤S1008:
步骤S1000,获取浏览所述待分类文本的多个用户的多个用户属性信息。示例性的,用户属性信息,包括但不限于,年龄、性别、职业、地域、爱好等。
步骤S1002,根据所述多个用户的多个用户属性信息,分析得到浏览所述待分类文本的目标群体。
步骤S1004,根据所述目标群体的历史用户画像,得到所述待分类文本对应每个主题的预测概率。
所述历史用户画像为根据所述目标群体的历史行为信息,得到所述目标群体对应各个主题的感兴趣系数。感兴趣系数和预测概率之间具有对应关系。
步骤S1006,根据所述每个主题的预测概率,筛选预测概率大于预设阀值的多个目标主题。
步骤S1008,基于所述多个目标主题对所述待分类文本进行分词操作。
在示例性的实施例中,所述步骤S1008可以包括:根据所述多个目标主题的多个主题词库,对所述待分类文本进行分词操作。具体如下:
参阅图3,所述步骤S1008可以进一步包括步骤S1008A~步骤S1008D:
步骤S1008A,根据每个目标主题关联的主题词库分别对所述待分类文本进行分词操作,以得到多个分词集合;
步骤S1008B,对比各个分词集合在相应字符位置区域的分词是否相同;
步骤S1008C,如果相同,则将相应字符位置区域的分词放入目标分词集合中;及
步骤S1008D,如果不相同,则选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合。
在示例性的实施例中,所述步骤S1008D可以进一步包括:
步骤1,通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;
步骤2,选择将被划分概率最高的分词放入到所述目标分词集合中。
在另一示例性的实施例中,所述步骤S1008D可以进一步包括:
步骤1,通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;
步骤2,根据各个分词集合在相应字符位置区域的分词的被划分概率以及各个分词集合关联的目标主题的预测概率,计算出各个分词集合在相应字符位置区域的分词的综合权重系数;及
步骤3,选择将综合权重系数最高的分词加入目标分词集合中。
步骤S102,对所述L个分词分别进行词向量映射,以获取L*d维词向量矩阵,其中每个分词映射为一个d维词向量。
在示例性的实施例中,可以通过word2vec等模型,获取每个分词的128维词向量。
步骤S104,通过卷积层对所述L*d维词向量矩阵执行卷积操作,得到M个卷积特征图,所述卷积层包括M个f*d的卷积核。
在示例性的实施例中,所述卷积层包括若干个步长为1的f*d的卷积核,通过该卷积层对L*d维词向量矩阵做卷积操作,以得到若干个(L-f+1)*1的卷积特征图。即,每个卷积特征图的宽度为1,长度为L-f+1。卷积核的长度为f,分词数量为L个。L为大于1的正整数。
卷积特征图中的(L-f+1)*1个元素,计算公式如下:
cij=f(wij⊙mi+bi)
其中,cij为第i个特征卷积图中的(L-f+1)中的第j个元素的特征值,wij为对应第i个卷积特征图的被卷积核所覆盖到的词向量矩阵,⊙表示矩阵相乘,mi为用于计算第i个卷积特征图的卷积核,bi为用于计算第i个卷积特征图的偏置项,f为非线性的激活函数,如ReLU函数。
具体的,所述卷积核的数量可以为4个,因此得到4个(L-f+1)*1的卷积特征图。
步骤S106,将每个卷积特征图中的第j个元素配置到第j个输入向量中,得到(L-f+1)个输入向量,1≤j≤(L-f+1)。
其中,所述第j个输入向量中的元素排列顺序由各个元素所在的特征卷积图的i值决定,i为卷积核标识,1≤i≤M。
步骤S108,将所述(L-f+1)个输入向量依顺序输入到长短短期记忆网络模型(Long Short-Term Memory,LSTM)中,计算所述待分类文本的分类向量。
长短短期记忆网络模型用于处理长跨度间的序列依赖关系,适合于处理长文本间依赖的任务。
在示例性的实施例中,所述步骤S108可以进一步包括步骤S1080~步骤S1082:
步骤S1080,通过所述长短期记忆网络模型获取(L-f+1)个输出向量;及
步骤S1082,将所述(L-f+1)个输出向量输入到分类层,通过所述分类层输出分类向量。
示例性的,计算所述待分类文本的分类向量的步骤如下:
(1)根据上一时刻的输出ht-1和当前输入xt来得到ft值,以决定是否让上一时刻学到的信息Ct-1通过或部分通过:
ft=σ(Wf[xt,ht-1]+bf),其中ft∈[0,1],表示t时刻的节点对t-1时刻细胞记忆的选择权重,Wf为遗忘门的权重矩阵,bf为遗忘门的偏置项,ht-1表示t-1节点的隐层状态信息,非线性函数σ(x)=1/(1+e-x);
(2)通过sigmoid来决定哪些值用来更新,并通过tanh层用来生成新的候选值qt,它作为当前层产生的候选值可能会添加到记忆单元状态中,把这两部分产生的值结合来进行更新:
it=σ(Wi[xt,ht-1]+bi),其中it∈[0,1]表示t时刻的节点对当前节点信息的选择权重,bi为输入门的偏置项,Wi为输入门的权重矩阵,非线性函数σ(x)=1/(1+e-x);
当前节点输入信息qt=tanh(Wq[ht-1,xt]+bq),其中bq为偏置项,Wq表示待更新信息的权重矩阵,tanh为双曲正切激活函数,xt表示t时刻LSTM神经网络节点的输入向量,ht-1表示t-1节点的隐层状态信息;
对旧的记忆单元状态进行更新,添加新信息:
当前输出记忆信息Ct=ft*Ct-1+it*qt),其中qt表示t-1节点的记忆信息,ft表示t时刻的节点对t-1时刻细胞记忆的选择权重,it表示t时刻的节点对当前节点信息的选择权重;
(3)LSTM模型输出;
ot=σ(Wo[xt,ht-1]+bo),其中ot∈[0,1]表示t时刻的节点细胞记忆信息的选择权重,bo为输出门的偏置,Wo为输出门的权重矩阵,表示向量xt和ht-1拼接后的向量,即|xt|+|ht-1|维的向量。
ht=ot·tanh(Ct)
xt表示t时刻LSTM神经网络节点的输入数据,即本实施例中的(L-f+1)个输入向量中的其中一个输入向量;ht为t时刻LSTM神经网络节点的输出向量。
通过上述公式,所述LSTM模型一共可以输出(L-f+1)个输出向量,根据所述(L-f+1)个输出向量被输入到softmax层,通过所述softmax层输出分类向量。所述分类向量中的每个向量参数代表了对应文本类别的置信度。
实施例二
请继续参阅图4,示出了本发明文本分类系统实施例四的程序模块示意图。在本实施例中,文本分类系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述基于神经网络的文本分类方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述文本分类系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
分词模块200,用于对待分类文本进行分词操作以获取L个分词。
在示例性的实施例中,所述分词模块200可以包括获取模块、分析模块、主题预测模块、筛选模块和分词模块,具体如下:
所述获取模块,用于获取浏览所述待分类文本的多个用户的多个用户属性信息。
所述分析模块,用于根据所述多个用户的多个用户属性信息,分析得到浏览所述待分类文本的目标群体。
所述主题预测模块,用于根据所述目标群体的历史用户画像,得到所述待分类文本对应每个主题的预测概率。
所述分析模块,用于从所述多个用户属性信息中获取目标属性信息。
所述主题预测模块,用于将所述目标属性信息输入到预先配置的神经网络模型中,得到每个主题的预测概率。
所述筛选模块,用于根据所述每个主题的预测概率,筛选预测概率大于预设阀值的多个目标主题。
所述分词模块,用于基于所述多个目标主题对所述待分类文本进行分词操作。所述分词模块还用于:根据所述多个目标主题的多个主题词库,对所述待分类文本进行分词操作,具体如下:根据每个目标主题关联的主题词库分别对所述待分类文本进行分词操作,以得到多个分词集合;对比各个分词集合在相应字符位置区域的分词是否相同;如果相同,则将相应字符位置区域的分词放入目标分词集合中;如果不相同,则选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合。
在示例性的实施例中,选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合,进一步包括:通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;选择将被划分概率最高的分词放入到所述目标分词集合中。
在另一示例性的实施例中,选择将其中一个分词集合在相应字符位置区域的分词放入到所述目标分词集合,进一步包括:通过隐马尔科夫模型分析各个分词集合在相应字符位置区域的分词的被划分概率;根据各个分词集合在相应字符位置区域的分词的被划分概率以及各个分词集合关联的目标主题的预测概率,计算出各个分词集合在相应字符位置区域的分词的综合权重系数;及选择将综合权重系数最高的分词加入目标分词集合中。
词向量映射模块202,用于对所述L个分词分别进行词向量映射,以获取L*d维词向量矩阵,其中每个分词映射为一个d维词向量。
在示例性的实施例中,可以通过word2vec等模型,获取每个分词的128维词向量。
卷积模块204,用于通过卷积层对所述L*d维词向量矩阵执行卷积操作,得到M个卷积特征图,所述卷积层包括M个f*d的卷积核。
在示例性的实施例中,所述卷积层包括若干个步长为1的f*d的卷积核,通过该卷积层对L*d维词向量矩阵做卷积操作,以得到若干个(L-f+1)*1的卷积特征图。即,每个卷积特征图的宽度为1,长度为L-f+1。卷积核的长度为f,分词数量为L个。
卷积特征图中的(L-f+1)*1个元素,计算公式如下:
cij=f(wij⊙mi+bi)
其中,cij为第i个特征卷积图中的(L-f+1)中的第j个元素的特征值,wij为对应第i个卷积特征图的被卷积核所覆盖到的词向量矩阵,⊙表示矩阵相乘,mi为用于计算第i个卷积特征图的卷积核,bi为用于计算第i个卷积特征图的偏置项,f为非线性的激活函数,如ReLU函数。
具体的,所述卷积核的数量可以为4个,因此得到4个(L-f+1)*1的卷积特征图。
特征映射模块206,用于将每个卷积特征图中的第j个元素配置到第j个输入向量中,得到(L-f+1)个输入向量,1≤j≤(L-f+1)。
其中,所述第j个输入向量中的元素排列顺序由各个元素所在的特征卷积图的i值决定,i为卷积核标识,1≤i≤M。
预测模块208,用于将所述(L-f+1)个输入向量依顺序输入到长短短期记忆网络模型中,计算所述待分类文本的分类向量。
在示例性的实施例中,所述预测模块208,还用于:通过所述长短期记忆网络模型获取(L-f+1)个输出向量;及将所述(L-f+1)个输出向量输入到分类层,通过所述分类层输出分类向量。
实施例三
参阅图5,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是PC、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及文本分类系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的文本分类系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行文本分类系统20,以实现实施例一的基于神经网络的文本分类方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述文本分类系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图4示出了所述实现文本分类系统20实施例二的程序模块示意图,该实施例中,所述基于文本分类系统20可以被划分为分词模块200、词向量映射模块202、卷积模块204、特征映射模块206和预测模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述文本分类系统20在所述计算机设备2中的执行过程。所述程序模块200-208的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储文本分类系统20,被处理器执行时实现实施例一的基于神经网络的文本分类方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。