文本分类方法、装置、计算机设备和存储介质与流程

文档序号:32416823发布日期:2022-12-02 22:20阅读:71来源:国知局
文本分类方法、装置、计算机设备和存储介质与流程

1.本技术涉及人工智能技术领域,特别是涉及一种文本分类方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着人工智能领域的发展,出现了自然语言处理技术,该技术主要研究用于实现人与计算机之间用自然语言进行有效通信的各种理论和方法,其中文本分类是自然语言处理技术中一个重要的方向。
3.现有技术提出的文本分类方法,多为采用统计类模型,如tf-idf(term frequency

inverse document frequency,词频-逆文本指数),或者是词向量模型,如embedding(嵌入)模型等。
4.然而,由于同一个文本可能会有不同的含义,现有的文本分类方法难以得到准确的分类结果。


技术实现要素:

5.基于此,有必要针对现有的文本分类方法存在的文本语义表达不全面的技术问题,提供一种文本分类方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种文本分类方法。所述方法包括:
7.通过多个词向量模型对待分类文本中的词语进行向量化处理,得到所述待分类文本的多个词向量序列;
8.针对每个词向量序列,通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量;以及,通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量;
9.分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
10.对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
11.基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果。
12.在其中一个实施例中,所述第一特征提取模型包括多个第一子模型,所述多个第一子模型之间层级连接;
13.所述通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量,包括:
14.针对所述第一特征提取模型中第一层的第一子模型,将所述词向量序列作为所述第一层的第一子模型的输入变量,得到所述第一层的第一子模型的输出结果;
15.针对所述第一特征提取模型中第二层的第一子模型,将所述词向量序列以及所述第一层的第一子模型的输出结果,确定为所述第二层的第一子模型的输入变量,得到所述
第二层的第一子模型的输出结果;
16.针对所述第一特征提取模型中除第一层和第二层之外的任一层的第一子模型,将位于所述任一层的第一子模型之前两层的第一子模型的输出结果,确定为所述任一层的第一子模型的输入变量,得到除第一层和第二层之外的各层第一子模型的输出结果;将所述多个第一子模型中最后一层的第一子模型的输出结果,确定为所述待分类文本的局部特征向量。
17.在其中一个实施例中,所述第二特征提取模型包括多个第二子模型,所述多个第二子模型之间层级连接;
18.所述通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量,包括:
19.针对所述第二特征提取模型中第一层的第二子模型,将所述词向量序列作为所述第一层的第二子模型的输入变量,得到所述第一层的第二子模型的输出结果;
20.针对所述第二特征提取模型中除第一层之外的任一层的第二子模型,将所述词向量序列以及位于所述任一层的第二子模型之前的每个第二子模型的输出结果,确定为所述任一层的第二子模型的输入变量,得到除第一层之外的各层第二子模型的输出结果;
21.将所述多个第二子模型中最后一层的第二子模型的输出结果,确定为所述待分类文本的上下文特征向量。
22.在其中一个实施例中,在所述分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量之前,还包括:
23.针对每个词向量序列,获取所述词向量序列的第一权值向量和第二权值向量;所述第一权值向量包括所述待分类文本的每个词语对应的第一权值,所述每个词语对应的第一权值表示每个词语对应的局部特征对所述待分类文本的分类结果的影响程度;所述第二权值向量包括所述待分类文本的每个词语对应的第二权值,所述每个词语对应的第二权值表示每个词语对应的上下文特征对所述待分类文本的分类结果的影响程度;
24.通过所述第一权值向量对所述局部特征向量进行加权处理,得到加权后的局部特征向量;
25.通过所述第二权值向量对所述上下文特征向量进行加权处理,得到加权后的上下文特征向量;
26.所述分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量,包括:
27.分别对各个词向量序列的所述加权后的局部特征向量和所述加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量。
28.在其中一个实施例中,所述分别对各个词向量序列的所述加权后的局部特征向量和所述加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量,包括:
29.针对每个词向量序列,获取所述词向量序列的加权后的局部特征向量的向量维度和所述加权后的上下文特征向量的向量维度;所述加权后的局部特征向量的向量维度和所述加权后的上下文特征向量的向量维度相同;
30.基于所述向量维度,确定对所述加权后的局部特征向量和所述加权后的上下文特
征向量进行拼接的拼接模式;
31.按照所述拼接模式,对所述加权后的局部特征向量和所述加权后的上下文特征向量进行拼接,得到各个词向量序列对应的拼接特征向量。
32.在其中一个实施例中,所述基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果,包括:
33.通过分类模型对所述融合特征向量进行处理,得到所述待分类文本的分类结果。
34.第二方面,本技术还提供了一种文本分类装置。所述装置包括:
35.词向量模块,用于通过多个词向量模型对待分类文本中的词语进行向量化处理,得到所述待分类文本的多个词向量序列;
36.特征提取模块,用于针对每个词向量序列,通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量;以及,通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量;
37.特征拼接模块,用于分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
38.特征融合模块,用于对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
39.特征分类模块,用于基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果。
40.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
41.通过多个词向量模型对待分类文本中的词语进行向量化处理,得到所述待分类文本的多个词向量序列;
42.针对每个词向量序列,通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量;以及,通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量;
43.分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
44.对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
45.基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果。
46.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
47.通过多个词向量模型对待分类文本中的词语进行向量化处理,得到所述待分类文本的多个词向量序列;
48.针对每个词向量序列,通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量;以及,通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量;
49.分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
50.对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
51.基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果。
52.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
53.通过多个词向量模型对待分类文本中的词语进行向量化处理,得到所述待分类文本的多个词向量序列;
54.针对每个词向量序列,通过第一特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的局部特征向量;以及,通过第二特征提取模型,对所述词向量序列进行特征提取,得到所述待分类文本的上下文特征向量;
55.分别对各个词向量序列的所述局部特征向量和所述上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
56.对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
57.基于所述融合特征向量,对所述待分类文本进行分类,得到所述待分类文本的分类结果。
58.上述文本分类方法、装置、计算机设备、存储介质和计算机程序产品,通过采用多个词向量模型得到多个词向量序列,并通过两个特征提取模型得到局部特征和上下文特征,接着将多个词向量序列的特征进行融合,最后得到文本分类的结果。该方法通过多个词向量模型对同一个文本进行不同词向量的表达,不同的词向量所表达的语义信息不同;并且,通过不同的特征提取模型对同一个词向量序列提取出不同的特征向量,不同的特征向量所表达的语义信息不同。因此本方法能够丰富对文本语义的表达,进而提高文本分类的准确性。
附图说明
59.图1为一个实施例中文本分类方法的流程示意图;
60.图2为一个实施例中文本分类方法中第一特征提取模型的模型结构示意图;
61.图3为一个实施例中文本分类方法中第二特征提取模型的模型结构示意图;
62.图4为另一个实施例中文本分类方法的流程示意图;
63.图5为一个实施例中用于实现文本分类方法的模型的整体结构示意图;
64.图6为一个实施例中实现文本分类方法的技术架构示意图;
65.图7为一个实施例中文本分类装置的结构框图;
66.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
67.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
68.在一个实施例中,如图1所示,提供了一种文本分类方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端
和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
69.步骤101,通过多个词向量模型对待分类文本中的词语进行向量化处理,得到待分类文本的多个词向量序列。
70.其中,词向量是将单词或短语转换映射到实数的向量。
71.其中,词向量模型的数量可以为2个,也可以为3个,本技术对此不作具体限制。为便于描述,下文以两个词向量模型为例,对本技术进行具体说明,两个词向量模型可以是word2vec(word to vector,词语转换成向量)模型和glove(global vectors,全局向量)模型。
72.具体实现中,将待分类文本中的每个词语输入第一个预训练好的词向量模型,得到每个词语的第一词向量;将待分类文本中所有词语都输入第一个预训练好的词向量模型,得到待分类文本的第一词向量序列;将待文本分类中的每个词语输入第二个预训练好的词向量模型,得到每个词语的第二词向量;将待分类文本中所有词语都输入第二个预训练好的词向量模型,得到待分类文本的第二词向量序列。
73.步骤102,针对每个词向量序列,通过第一特征提取模型,对词向量序列进行特征提取,得到待分类文本的局部特征向量;以及,通过第二特征提取模型,对词向量序列进行特征提取,得到待分类文本的上下文特征向量。
74.其中,第一特征提取模型包括多个第一子模型,第一子模型可以是卷积神经网络模型。
75.其中,第二特征提取模型包括多个第二子模型,第二子模型可以是双向长短期记忆模型。
76.其中,局部特征向量表示一个词语在前后词语之间的词性关系,即形容词修饰名词或量词修饰名词等。
77.其中,上下文特征向量表示词语在整个文本中表达的语义信息。
78.具体实现中,为了提高对文本分类的准确性,本步骤提出了针对每个词向量序列,将词向量序列输入到两个不同的特征提取模型,即第一特征提取模型和第二特征提取模型中,得到表达文本中词语的局部特征的局部特征向量和表达上下文特征的上下文特征向量,通过提取多种特征向量可以更全面地表达出文本的语义信息。
79.步骤103,分别对各个词向量序列的局部特征向量和上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量。
80.具体实现中,将局部特征向量和上下文特征向量进行拼接处理,需要根据向量中的维度信息,在不影响每个向量所表达的内容的条件下,进行拼接处理,即两个特征向量保持向量维度的不变(每个向量表达的信息不变),拼接为一个包含更多向量的序列。
81.步骤104,对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量。
82.具体实现中,将每个词向量模型对应的拼接特征向量进行融合处理,需要根据拼接特征向量中的维度信息,不影响每个向量所表达的内容来进行对应的拼接处理,即多个拼接特征向量保持单个特征向量维度的不变,融合成一个包含更多特征向量的序列;后续执行文本分类时可以基于两种特征向量进行分类判断,提高文本分类的准确性。
83.步骤105,基于融合特征向量,对待分类文本进行分类,得到待分类文本的分类结
果。
84.具体实现中,可以将得到的融合特征向量输入全连接层,得到全连接层的输出结果,将全连接层的输出结果作为归一化指数函数层(softmax层)的输入,将归一化指数函数层的输出作为待分类文本的分类结果。
85.上述文本分类方法中,通过采用多个词向量模型得到多个词向量序列,并通过两个特征提取模型得到局部特征和上下文特征,接着将多个词向量序列的特征进行融合,最后得到文本分类的结果。该方法通过多个词向量模型对同一个文本进行不同特征的向量表示,能够丰富对句子语义的表达,进而提高文本分类的准确性。
86.在其中一个实施例中,第一特征提取模型包括多个第一子模型,多个第一子模型之间层级连接;
87.上述步骤102通过第一特征提取模型,对词向量序列进行特征提取,得到待分类文本的局部特征向量,具体还可以通过以下步骤实现:
88.步骤1021,针对第一特征提取模型中第一层的第一子模型,将词向量序列作为第一层的第一子模型的输入变量,得到第一层的第一子模型的输出结果;
89.步骤1022,针对第一特征提取模型中第二层的第一子模型,将词向量序列以及第一层的第一子模型的输出结果,确定为第二层的第一子模型的输入变量,得到第二层的第一子模型的输出结果;
90.步骤1023,针对第一特征提取模型中除第一层和第二层之外的任一层的第一子模型,将位于任一层的第一子模型之前两层的第一子模型的输出结果,确定为任一层的第一子模型的输入变量,得到除第一层和第二层之外的各层第一子模型的输出结果;
91.步骤1024,将多个第一子模型中最后一层的第一子模型的输出结果,确定为待分类文本的局部特征向量。
92.具体实现中,第一子模型的连接参考图2所示,为了实现特征复用,将各个第一子模型通过如图2所示的方式进行连接,第一特征提取模型可以是卷积神经网络模型,通过多个卷积神经网络模型层级连接,对词向量进行多次卷积操作,可以得到表达每个词语的局部特征向量,即表达每个词语和前后词语之间词性关系的特征向量。同时因为每层第一子模型的卷积核和步长是相同的,所以输出向量的维度和输入向量的维度有直接关系,因此为了保证每层卷积神经网络的输出向量保持固定的维度,会将不足维度的输入向量进行维度填充,并且将位于每层第一子模型前的其他层第一子模型的输出选择性融合(选择当前第一子模型前两层第一子模型的输出向量,而不是之前全部第一子模型的输出向量),才可以得到预定维度的输入向量。
93.本实施例中,通过对于原始输入的词向量或各层第一子模型的输出向量选择性融合,能够实现特征复用,经过多个第一特征提取模型的运算,可以得到对文本分类结果更具有影响的局部特征向量。
94.在其中一个实施例中,第二特征提取模型包括多个第二子模型,多个第二子模型之间层级连接;
95.上述步骤102通过第二特征提取模型,对词向量序列进行特征提取,得到待分类文本的上下文特征向量,还可以通过以下步骤实现:
96.步骤1025,针对第二特征提取模型中第一层的第二子模型,将词向量序列作为第
一层的第二子模型的输入变量,得到第一层的第二子模型的输出结果;
97.步骤1026,针对第二特征提取模型中除第一层之外的任一层的第二子模型,将词向量序列以及位于任一层的第二子模型之前的每个第二子模型的输出结果,确定为任一层的第二子模型的输入变量,得到除第一层之外的各层第二子模型的输出结果;
98.步骤1027,将多个第二子模型中最后一层的第二子模型的输出结果,确定为待分类文本的上下文特征向量。
99.具体实现中,第二子模型的连接参考图3所示,为了避免发生梯度消失和过拟合现象并且进一步实现特征复用,将第二子模型通过如图3所示的方式进行连接,第二特征提取模型可以是双向长短期记忆模型,通过多个双向长短期记忆模型层级连接,对词向量进行多次提取特征操作,可以得到表达每个词语在文本上下文特征的向量,即表达每个词语在上下文中的语义信息的特征向量。
100.本实施例中,通过密集连接融合各层第二子模型的输出作为下层第二子模型的输入,能够实现特征复用,还可以避免发生梯度消失和过拟合现象,经过多个第二特征提取模型的运算,可以得到对文本分类结果更具有影响的上下文特征向量。
101.在其中一个实施例中,上述步骤103分别对各个词向量序列的局部特征向量和上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量之前,具体还包括以下步骤:
102.步骤1031,针对每个词向量序列,获取词向量序列的第一权值向量和第二权值向量;第一权值向量包括待分类文本的每个词语对应的第一权值,每个词语对应的第一权值表示每个词语对应的局部特征对待分类文本的分类结果的影响程度;第二权值向量包括待分类文本的每个词语对应的第二权值,每个词语对应的第二权值表示每个词语对应的上下文特征对待分类文本的分类结果的影响程度;
103.步骤1032,通过第一权值向量对局部特征向量进行加权处理,得到加权后的局部特征向量;
104.步骤1033,通过第二权值向量对上下文特征向量进行加权处理,得到加权后的上下文特征向量;
105.步骤103分别对各个词向量序列的局部特征向量和上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量,具体还可以通过以下步骤实现:
106.步骤1034,分别对各个词向量序列的加权后的局部特征向量和加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量。
107.具体实现中,在预先训练过程中,确定每个词语对于文本分类结果的影响程度,从而得到每个词语对应词向量的不同权值。针对每个词向量进行不同权值的加权操作,得到更能影响文本分类结果的特征向量。
108.本实施例中,通过对分类结果有重要作用的局部特征向量和上下文特征向量赋予更多的权重,能够得到更准确的文本分类结果。
109.在其中一个实施例中,上述步骤1034,分别对各个词向量序列的加权后的局部特征向量和加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量,还可以通过以下步骤实现:
110.步骤1034a,针对每个词向量序列,获取词向量序列的加权后的局部特征向量的向
量维度和加权后的上下文特征向量的向量维度;加权后的局部特征向量的向量维度和加权后的上下文特征向量的向量维度相同;
111.步骤1034b,基于向量维度,确定对加权后的局部特征向量和加权后的上下文特征向量进行拼接的拼接模式;
112.步骤1034c,按照拼接模式,对加权后的局部特征向量和加权后的上下文特征向量进行拼接,得到各个词向量序列对应的拼接特征向量。
113.具体实现中,将加权后的局部特征向量和加权后的上下文特征向量进行拼接处理,需要根据向量中的维度信息,不影响每个向量所表达的内容来进行对应的拼接处理,即两个特征向量保持向量维度的不变(每个向量表达的信息不变),拼接为一个包含更多向量的序列。比如,局部特征向量和上下文特征向量中的每个行向量是每个词语的特征向量,则局部特征向量和上下文特征向量中的行数表示词语的个数,则将局部特征向量和上下文特征向量进行纵向拼接,得到一个列数不变、行数更大的拼接特征向量;又如,局部特征向量和上下文特征向量中的每个列向量是每个词语的特征向量,则局部特征向量和上下文特征向量中的列数表示词语的个数,则将局部特征向量和上下文特征向量进行横向拼接,得到一个行数不变、列数更大的拼接特征向量。
114.本实施例中,基于局部特征向量和上下文特征向量的维度信息,将局部特征向量和上下文特征向量拼接为一个包含更多向量但单个向量维度不变的向量序列,能够帮助后续执行文本分类时可以基于两种特征向量进行分类判断,提高文本分类的准确性。
115.在其中一个实施例中,步骤105基于融合特征向量,对待分类文本进行分类,得到待分类文本的分类结果,可以通过以下步骤实现:
116.通过分类模型对融合特征向量进行处理,得到待分类文本的分类结果。
117.具体实现中,分类模型可以包含全连接层和归一化指数函数层,将融合特征向量输入全连接层,得到全连接层的输出结果,根据随机失活方法(dropout)对全连接层的输出结果进行处理,得到归一化指数函数层(softmax层)的输入,将归一化指数函数层的输出作为待分类文本的分类结果。
118.本实施例中,通过全连接层将前面得到的特征向量映射到样本标记空间,减少特征位置对分类结果的影响;同时为了防止过拟合现象的发生,引入dropout方法,使分类结果的判断不只依赖部分特征;最后通过softmax分类器得到待分类的文本分类结果。
119.在另一个实施例中,如图4所示,提供了一种文本分类方法,本实施例中,包括以下步骤:
120.步骤401,通过多个词向量模型对待分类文本中的词语进行向量化处理,得到待分类文本的多个词向量序列;
121.步骤402,针对每个词向量序列,通过包含多层的第一特征提取模型,对词向量序列进行特征提取,得到待分类文本的局部特征向量;
122.步骤403,针对每个词向量序列,通过包含多层的第二特征提取模型,对词向量序列进行特征提取,得到待分类文本的上下文特征向量;
123.步骤404,根据预设的权值对局部特征向量和上下文特征向量进行加权操作,得到加权后的局部特征向量和加权后的上下文特征向量,并将加权后的局部特征向量通过池化层进行降维处理;
124.步骤405,分别对各个词向量序列的局部特征向量和上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
125.步骤406,对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
126.步骤407,基于全连接层、随机失活层和归一化指数函数分类器,对融合特征向量进行分类,得到句子的分类结果。
127.具体实现中,词向量模型可以采用word2vec模型和glove模型;第一特征提取模型可以采用卷积神经网络模型,第二特征提取模型可以采用双向长短期记忆模型;预设的加权处理可以基于注意力机制完成;池化处理可以采用最大值池化;向量拼接和向量融合均为保持单个向量维度不变,增加序列的向量数量的拼接融合。以上模型均需要通过机器学习训练得到具体的参数,保证模型的结果准确。
128.本实施例中,通过采用多个词向量模型得到多个词向量序列,并通过两个密集连接特征提取模型得到局部特征和上下文特征,并对重要特征进行加权处理,接着将多个词向量序列的特征进行融合,最后得到文本分类的结果,能够丰富句子语义的表达,减少因为堆叠模型而出现的梯度消失和过拟合现象,进而提高文本分类的准确性。
129.为了便于本领域技术人员理解本技术实施例,以下结合附图的具体示例对本技术进行说明。本方法具体是通过融合注意力机制双通道模型来实现的,如图5所示,包括:词嵌入层501,卷积神经网络层502,双向长短期记忆层503,注意力机制层504,池化层505,特征融合拼接层505,全连接层和分类层507,详细结构示意图参考图6。其中:
130.词嵌入层501,包括word2vec(word to vector,词语转换成向量)和glove(global vectors,全局向量)两种词向量模型,两种模型都有各自的优点,word2vec方法是基于预测的方法,更好的刻画了局部信息;glove则是基于计数的方法,更好的利用了全局信息。
131.具体实现中,将已经训练好的两种词向量模型对输入的句子进行映射,每个词语映射为一个d维的向量,每个句子则被映射为一个向量矩阵。其中,w1表示word2vec训练好的词向量,w2表示glove训练好的词向量。w1将输入语句映射到第一个通道,w2将输入语句映射到第二个通道。每个样本句子的矩阵表示为j=w
wd
v,其中w=[w1,w2],w1,w2∈r
d*|v|
,是训练好的词向量矩阵,d是词向量维度,|v|表示词典大小;v∈r
|v|*n
是输入句子的词袋表示,n是输入句子的长度。
[0132]
卷积神经网络层502,采用三层cnn(卷积神经网络)结构,将cnn1输出和原输入的词向量矩阵进行融合,用于cnn2的输入,将cnn1输出词向量和cnn2的输出的词向量矩阵进行融合,用于cnn3的输入,接着对cnn2与cnn3的输出进行融合作为卷积神经网络层502的输出。
[0133]
具体实现中,为了保证每层cnn输入向量的维度与输出向量的维度保持一致,使每个卷积层中的padding(填充方式)参数都选择same模式(填充0以保持输入矩阵维度固定);将向量矩阵w=[x1,x2,

,xn]输入到cnn1中,xi∈rd表示一条文本句子中第i个词语对应的词向量,取卷积核s=[s0,s1,

,s
α-1
],卷积核中词语个数为α,卷积计算公式为:y
t
=f(s
×
x
t:t+α-1
+b),f是非线性激活函数,激活函数使用relu(线性整流函数,又称修正线性单元),x
t:t+α-1
表示输入词向量矩阵w的第t列到t+α-1列,b表示偏置项。词向量矩阵w经过卷积公式计算得到cnn1的输出矩阵c1=[c1,c2,

,cn],n代表词向量个数。将原始输入矩阵w和cnn1
的输出矩阵c1通过concat(连接两个或多个数组的方法)函数进行融合得到融合后的特征矩阵r1=[c1,

,cn,x1,

,xn],将其作为cnn2的输入,通过卷积公式计算得到cnn2的输出矩阵为c2=[k1,k2,

,kn],n为词向量个数。将cnn1的输出矩阵c1和cnn2的输出矩阵c2通过concat函数进行融合得到融合后的特征矩阵r2=[k1,

,kn,c1,

,cn],将其作为cnn3的输出,通过卷积公式计算得到cnn3的输出矩阵为c3=[m1,m2,

,mo],o为词向量个数。最后将cnn2的输出c2和cnn3的输出c3进行concat融合,得到下层网络的输入矩阵c4=[k1,

,kn,m1,

,mo]。concat融合函数为:c4=tf.concat([c2,c3],axis=1),其中axis=1代表将c2和c3进行横向拼接的过程,即只改变了词向量的个数,词向量维度d并没有改变,从而大大减少融合过程给整个模型带来的负面影响。
[0134]
双向长短期记忆层503,长短期记忆网络(lstm)由三个门组成:遗忘门、输入门和输出门;其中,遗忘门决定从单元状态中删除掉哪些信息,输入门决定将哪些信息更新为单元状态,当遗忘门与输入门确定以后,单元状态可以随之更新,输出门决定网络的最终输出。bilstm(双向长短期记忆网络)包含前向隐藏层和后向隐藏层,当前输出不仅取决于当前输入,还受到历史信息与未来信息的影响。其中前向隐藏层的输出为后向隐藏层的输出为bilstm隐藏层的输出可表示为对于bilstm1网络,输入是一个词向量矩阵序列w=[x1,x2,

,xn],t时刻,输入为x
t
,t-1时刻的隐藏层状态向量为h
t-1
,计算遗忘门f
t
,选择要遗忘的信息:f
t
=σ(wf·
[h
t-1
,x
t
]+bf);计算记忆门i
t
,选择要记忆的信息i
t
=σ(wi·
[h
t-1
,x
t
]+bi)和通过变换后的新信息:然后通过前一时刻细胞状态和c
t-1
、遗忘门中得到的要遗忘的信息、记忆门中要保留的信息和当前特征信息更新细胞状态计算输出门o
t
=σ(wo·
[h
t-1
,x
t
]+bo)和当前的隐藏层状态h
t
=o
t
*tanh(c
t
)。i
t
、f
t
是sigmoid函数(常见的s型函数,也称为s型生长曲线),取值范围为[0,1],为tanh的函数,取值范围为[-1,1]。σ表示sigmoid函数,wi,wf,wo,wc为参数矩阵,bi,bf,bo,bc为偏置项。x
t
为时间t的输入向量,h
t-1
表示前一步产生的状态,h
t
表示最后的输出状态,c
t-1
表示上一步输出的单元状态,c
t
是当前单元状态,运算符
*
表示逐元素乘法。bilstm1的输出为矩阵为其中每一个时间步的输出都是前向隐藏层输出和后向隐藏层输出的融合,可表示为为了实现时序特征复用以及避免堆叠多层bilstm结构出现梯度消失和过拟合现象,在bilstm之间采用密集连接的方式,对于bilstm2的输入不再是bilstm1的输出向量矩阵密集连接的方式,对于bilstm2的输入不再是bilstm1的输出向量矩阵而是将之前所有隐藏层的输出concat,具体表示为而是将之前所有隐藏层的输出concat,具体表示为得到bilstm2的输出向量矩阵将原始输入矩阵w、bilstm1的输出向量矩阵h1、bilstm2的输出向量矩阵h2concat后作为bilstm3的输入,可表示为得到最后
bilstm3的输出向量矩阵
[0135]
注意力机制层504,可以为词向量分配不同的权重,把注意力集中到对文本较重要的词语上获取对分类结果有重要贡献的局部特征和时序特征,进一步提高对整个文本的语义表达。
[0136]
具体实现中,双向长短期记忆层503之后接注意力机制的具体计算过程为如下公式:ui=tanh(n
sht
+bs),t=∑
t
α
iht
,其中ui为h
t
的注意力隐层表示,ns为权值矩阵,bs为偏置项,αi是ui通过softmax函数(归一化指数函数)得到的归一化权值,最后将bi-lstm隐藏层的输出与注意力权重值迚行点乘与累加操作,得到输出t;卷积神经网络层502之后接注意力机制的具体计算过程为如下公式:
[0137]ut
=tanh(n
sct
+bs),v=∑
t
α
tct
,其中,c
t
是t时刻通过三层cnn学习到的特征表示,u
t
为c
t
的注意力隐层表示,ns为权值矩阵,bs为偏置项,α
t
是u
t
通过softmax函数得到的归一化权值,最后得到的输出v。
[0138]
池化层505,在卷积神经网络层502后的注意力机制层504后接入池化层505,池化层505主要的作用是对特征向量进行降维操作,通过最大值池化获取更丰富的特征信息。得到最后的输出v’。
[0139]
特征拼接融合层506,在第一通道中将特征向量融合得到第一通道最终的特征向量o1=[t,v

],在第二通道中将特征向量融合得到第二通道最终的特征向量o2=[t,v

],两通道通过各自的网络结构捕获到了文本序列的局部特征与全局序列信息,将两个通道最后的输出进行融合得到最终的文本特征向量矩阵output=[o1,o2]。
[0140]
全连接层和分类层507,将前层计算得到的特征空间映射样本标记空间,全连接层使用relu作为激活函数。全连接层之后引入dropout(随机失活)机制,得到的输出输入到最后的分类层中,分类层采用softmax(归一化指数函数)来进行分类。
[0141]
具体实现中,经过dropout处理之后的向量y,作为句子特征输入到最后的softmax(归一化指数函数)分类器中,最后将x分类为j的概率为:(归一化指数函数)分类器中,最后将x分类为j的概率为:
[0142]
进一步地,本方法中的模型需要进行训练才能得到具体参数,具体步骤为:
[0143]
构建训练集,训练集为已知文本分类数据集,包括待分类句子和类别标签;
[0144]
将训练集输入到融合注意力机制的双通道文本分类方法中进行训练,方法停止训练的节点为损失函数达到最小值,得到训练好的融合注意力机制的双通道文本分类方法;
[0145]
损失函数中,本技术使用l2正则化在损失函数中添加了l2范数损失函数可表示为其中第一项为交叉熵,λ为正则化系数;本技术采用adam算法来进行优化;
[0146]
训练过程中,在全连接层之后加入了dropout策略。
[0147]
具体的实验超参数设置如表1所示:
[0148]
表1实验参数具体取值表
[0149]
参数值词向量维度d300卷积核尺寸3、4、5卷积核个数100*3lstm单元个数100学习率0.001l2正则化惩罚0.001注意力尺寸100dropout0.5隐藏层维度128批处理尺寸64
[0150]
本实施例中,采用不同词向量模型对语料进行映射得到不同的向量矩阵,在一定程度上可以缓解对句子语义信息表示不丰富的不足,提高分类准确率;在两个通道中均引入注意力机制进行全局权重分配,使模型能够进一步关注到文本中的关键词,以此提升分类准确率;在堆叠多个双向lstm模型对各词向量序列进行时序特征提取时,采用密集连接的方式,每层双向lstm的输入是之前各层输出的融合实现时序特征复用,得到各个通道文本上下文特征向量序列,同时利用多个卷积层,对各词向量序列进行卷积操作,为了实现特征复用,将原始输入向量和各层cnn的输出向量选择性融合,得到各个通道文本局部特征向量序列,避免由于堆叠多层网络容易造成梯度消失和过拟合现象。
[0151]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0152]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的文本分类方法的文本分类装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个文本分类装置实施例中的具体限定可以参见上文中对于文本分类方法的限定,在此不再赘述。
[0153]
在一个实施例中,如图7所示,提供了一种文本分类装置,包括:词向量模块、特征提取模块、特征拼接模块、特征融合模块和特征分类模块,其中:
[0154]
词向量模块701,用于通过多个词向量模型对待分类文本中的词语进行向量化处理,得到待分类文本的多个词向量序列;
[0155]
特征提取模块702,用于针对每个词向量序列,通过第一特征提取模型,对词向量序列进行特征提取,得到待分类文本的局部特征向量;以及,通过第二特征提取模型,对词向量序列进行特征提取,得到待分类文本的上下文特征向量;
[0156]
特征拼接模块703,用于分别对各个词向量序列的局部特征向量和上下文特征向
量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
[0157]
特征融合模块704,用于对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
[0158]
特征分类模块705,用于基于融合特征向量,对待分类文本进行分类,得到待分类文本的分类结果。
[0159]
在一个实施例中,第一特征提取模型包括多个第一子模型,多个第一子模型之间层级连接;上述特征提取模块702还用于针对第一特征提取模型中第一层的第一子模型,将词向量序列作为第一层的第一子模型的输入变量,得到第一层的第一子模型的输出结果;针对第一特征提取模型中第二层的第一子模型,将词向量序列以及第一层的第一子模型的输出结果,确定为第二层的第一子模型的输入变量,得到第二层的第一子模型的输出结果;针对第一特征提取模型中除第一层和第二层之外的任一层的第一子模型,将位于任一层的第一子模型之前两层的第一子模型的输出结果,确定为任一层的第一子模型的输入变量,得到除第一层和第二层之外的各层第一子模型的输出结果;将多个第一子模型中最后一层的第一子模型的输出结果,确定为待分类文本的局部特征向量。
[0160]
在一个实施例中,第二特征提取模型包括多个第二子模型,多个第二子模型之间层级连接;上述特征提取模块702还用于针对第二特征提取模型中第一层的第二子模型,将词向量序列作为第一层的第二子模型的输入变量,得到第一层的第二子模型的输出结果;针对第二特征提取模型中除第一层之外的任一层的第二子模型,将词向量序列以及位于任一层的第二子模型之前的每个第二子模型的输出结果,确定为任一层的第二子模型的输入变量,得到除第一层之外的各层第二子模型的输出结果;将多个第二子模型中最后一层的第二子模型的输出结果,确定为待分类文本的上下文特征向量。
[0161]
在一个实施例中,上述特征提取模块702还用于针对每个词向量序列,获取词向量序列的第一权值向量和第二权值向量;第一权值向量包括待分类文本的每个词语对应的第一权值,每个词语对应的第一权值表示每个词语对应的局部特征对待分类文本的分类结果的影响程度;第二权值向量包括待分类文本的每个词语对应的第二权值,每个词语对应的第二权值表示每个词语对应的上下文特征对待分类文本的分类结果的影响程度;通过第一权值向量对局部特征向量进行加权处理,得到加权后的局部特征向量;通过第二权值向量对上下文特征向量进行加权处理,得到加权后的上下文特征向量;分别对各个词向量序列的加权后的局部特征向量和加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量。
[0162]
在一个实施例中,上述特征提取模块703还用于针对每个词向量序列,获取词向量序列的加权后的局部特征向量的向量维度和加权后的上下文特征向量的向量维度;加权后的局部特征向量的向量维度和加权后的上下文特征向量的向量维度相同;基于向量维度,确定对加权后的局部特征向量和加权后的上下文特征向量进行拼接的拼接模式;按照拼接模式,对加权后的局部特征向量和加权后的上下文特征向量进行拼接,得到各个词向量序列对应的拼接特征向量。
[0163]
在一个实施例中,上述文本特征模块705还用于通过分类模型对融合特征向量进行处理,得到待分类文本的分类结果。
[0164]
上述文本分类装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。
上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0165]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型参数数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文本分类方法。
[0166]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0167]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0168]
通过多个词向量模型对待分类文本中的词语进行向量化处理,得到待分类文本的多个词向量序列;
[0169]
针对每个词向量序列,通过第一特征提取模型,对词向量序列进行特征提取,得到待分类文本的局部特征向量;以及,通过第二特征提取模型,对词向量序列进行特征提取,得到待分类文本的上下文特征向量;
[0170]
分别对各个词向量序列的局部特征向量和上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量;
[0171]
对各个词向量序列对应的拼接特征向量进行融合处理,得到融合特征向量;
[0172]
基于融合特征向量,对待分类文本进行分类,得到待分类文本的分类结果。
[0173]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:第一特征提取模型包括多个第一子模型,多个第一子模型之间层级连接;针对第一特征提取模型中第一层的第一子模型,将词向量序列作为第一层的第一子模型的输入变量,得到第一层的第一子模型的输出结果;针对第一特征提取模型中第二层的第一子模型,将词向量序列以及第一层的第一子模型的输出结果,确定为第二层的第一子模型的输入变量,得到第二层的第一子模型的输出结果;针对第一特征提取模型中除第一层和第二层之外的任一层的第一子模型,将位于任一层的第一子模型之前两层的第一子模型的输出结果,确定为任一层的第一子模型的输入变量,得到除第一层和第二层之外的各层第一子模型的输出结果;将多个第一子模型中最后一层的第一子模型的输出结果,确定为待分类文本的局部特征向量。
[0174]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:第二特征提取模型包括多个第二子模型,多个第二子模型之间层级连接;针对第二特征提取模型中第一层的第二子模型,将词向量序列作为第一层的第二子模型的输入变量,得到第一层的第二子模型的输出结果;针对第二特征提取模型中除第一层之外的任一层的第二子模型,将词向量序列以及位于任一层的第二子模型之前的每个第二子模型的输出结果,确定为任一层的第二子模型的输入变量,得到除第一层之外的各层第二子模型的输出结果;将多个第二子模型中最后一层的第二子模型的输出结果,确定为待分类文本的上下文特征向量。
[0175]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:针对每个词向量序列,获取词向量序列的第一权值向量和第二权值向量;第一权值向量包括待分类文本的每个词语对应的第一权值,每个词语对应的第一权值表示每个词语对应的局部特征对待分类文本的分类结果的影响程度;第二权值向量包括待分类文本的每个词语对应的第二权值,每个词语对应的第二权值表示每个词语对应的上下文特征对待分类文本的分类结果的影响程度;通过第一权值向量对局部特征向量进行加权处理,得到加权后的局部特征向量;通过第二权值向量对上下文特征向量进行加权处理,得到加权后的上下文特征向量;分别对各个词向量序列的加权后的局部特征向量和加权后的上下文特征向量进行拼接处理,得到各个词向量序列对应的拼接特征向量。
[0176]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:针对每个词向量序列,获取词向量序列的加权后的局部特征向量的向量维度和加权后的上下文特征向量的向量维度;加权后的局部特征向量的向量维度和加权后的上下文特征向量的向量维度相同;基于向量维度,确定对加权后的局部特征向量和加权后的上下文特征向量进行拼接的拼接模式;按照拼接模式,对加权后的局部特征向量和加权后的上下文特征向量进行拼接,得到各个词向量序列对应的拼接特征向量。
[0177]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过分类模型对融合特征向量进行处理,得到待分类文本的分类结果。
[0178]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0179]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0180]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0181]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0182]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0183]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1