文本转矢量图的方法及装置与流程

文档序号:18104704发布日期:2019-07-06 11:34阅读:315来源:国知局
文本转矢量图的方法及装置与流程

本申请涉及文本转换技术领域,特别是涉及一种文本转矢量图的方法及装置。



背景技术:

流程图广泛应用于多个领域,它是以特定的图形符号加上说明,表示算法的图,能够清楚地描述工作过程的顺序。在许多系统中,例如:办公自动化系统、预案处置方案等等,都有为了方便用户使用的可视化流程图编辑工具来让用户自定义流程。

在现有技术中,编辑流程图通常是用绘图工具,采用手工的方式进行编辑;有的制作出专门的流程图转换软件,主要是通过定义严格的固定格式的文本,从而可实现将文本转换为流程图。

但是,本申请的发明人在长期的研发过程中发现,采取手工编辑的方式,比较费时,且编辑门槛较高;采取软件的方式,需要相关人员熟悉其规范的定义,这些语言不是自然语言,不够人性化,还不如用流程图制图工具来制作流程图。



技术实现要素:

本申请主要解决的技术问题是提供一种文本转矢量图的方法及装置,能够自动将文本转换为矢量图,简单且编辑门槛低。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种文本转矢量图的方法,所述方法包括:将待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将所述词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,所述神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将所述矢量图向量序列按照预定要求转换为矢量图。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种文本转矢量图的装置,所述装置包括:处理器、存储器以及输入输出装置,所述处理器分别与所述存储器、所述输入输出装置耦合,其中,所述存储器用于存储程序;所述输入输出装置用于输入待转换文本和输出矢量图;所述处理器当运行所述程序时用于通过所述输入输出装置获取所述待转换文本,将所述待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将所述词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,所述神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将所述矢量图向量序列按照预定要求转换为矢量图。

本申请的有益效果是:区别于现有技术的情况,本申请将待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将所述词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,所述神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将所述矢量图向量序列按照预定要求转换为矢量图。由于将待转换文本分解为词序列,进而获得词向量序列,将词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,将矢量图向量序列按照预定要求转换为矢量图,通过这种方式,能够自动将文本转换为矢量图,不需要用户掌握专门的编辑工具或者特定的语言,编辑门槛低,简单方便快速。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请文本转矢量图的方法一实施方式的流程图,;

图2是本申请文本转矢量图的方法另一实施方式的流程图,;

图3是bp神经网络模型一示意图;

图4是bp神经网络模型另一示意图;

图5是本申请文本转矢量图的方法中一个具体的流程图;

图6是本申请文本转矢量图的方法一具体例子中转化后的流程图;

图7是本申请文本转矢量图的装置一实施方式的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参阅图1,图1是本申请文本转矢量图的方法一实施方式的流程图,该方法包括:

步骤s101:将待转换文本分解为词序列。

待转换文本是指需要转换为矢量图的文本,该待转换文本具有固定的逻辑关系,根据该文本,通过手工的方式,也是可以转换为矢量图的。矢量图也称为面向对象的图像或绘图图像,是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。文本表现形式单一,无法突出重点,无法清晰地描述过程的顺序,等等,而矢量图以图像的形式可以突出重点,可以清晰地描述过程,等等,因此,将待转换文本自动转换为矢量图,能够满足用户的需求,也便于该方法的后续推广。

词序列是指由词组成的序列。通常来说,在将待转换文本分解为词序列时,使用不同的方法、不同的分解工具,最后分解得到的词序列中的词是不一样的。词序列中的词也可以包括文本中的标点符号。

例如:中国人,分解后的词可以是:中、国、人;分解后的词也可以是:中国、人;分解后的词还可以是:中国、国人;等等。

在一实施方式中,通过分词器将待转换文本分解为词序列。分词器是将用户输入的一段文本,分析成符合逻辑的一种工具。

步骤s102:利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列。

要将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,词向量就是用来将语言中的词进行数学化的一种方式。一种最简单的词向量方式是one-hotrepresentation,就是用一个很长的向量来表示一个词,这个向量的维度(或长度)为词向量表的大小,向量的分量只有一个1,其他全为0,1的位置对应该词在词向量表中的位置。该方法简洁,任意两个词之间都是孤立的,不能从两个向量中看出两个词是否有关系,不能刻画词与词之间的相似性。

例如:

“话筒”表示为[0001000000000000...]

“麦克”表示为[0000000010000000...]

另一种词向量方式是distributedrepresentation,它可以克服one-hotrepresentation的缺点。其基本想法是:通过训练将某种语言中的每一个词映射成一个固定长度的短向量(当然这里的“短”是相对于one-hotrepresentation的“长”而言的),将所有这些向量放在一起形成一个词向量空间,而每一向量则为该空间中的一个点,在这个空间上引入“距离”,则可以根据词之间的距离来判断它们之间在词法、语义上的相似性了。这种向量一般长成这个样子:例如:“话筒”[0.792,-0.177,-0.107,0.109,-0.542,...]。维度以50维和100维比较常见。

词向量并不唯一,其质量也依赖于训练语料、训练算法和词向量长度等因素。要介绍词向量是怎么训练得到的,就不得不提到语言模型。要从一段无标注的自然文本中学习出一些东西,需要统计出词频、词的共现、词的搭配之类的信息。而从自然文本中统计并建立一个语言模型,是要求最为精确的一个任务。

语言模型的建立均从大量未标注的普通文本数据中无监督地学习出词向量(语言模型本来就是基于这个想法而来的)而进行的,如果用上了有标注的语料,训练词向量的方法肯定会更多。不过视目前的语料规模,还是使用未标注语料的方法靠谱一些。词向量的训练最经典的有3个,分别是c&w2008、m&h2008、mikolov2010。

词向量表是针对某一具体的语料系统、通过语言模型预先已经建立起来的,利用该词向量表,属于该语料系统中的分解的词均可以直接变换为词向量,在将分解后的词序列中的每个词变成词向量后,即可获得词向量序列。通过这种方式,能够很快速地获得词向量序列。

步骤s103:将词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的。

神经网络(neuralnetworks,nn)是通过对人脑的基本单元——神经元的建模和联接,探索模拟人脑神经系统功能的模型,并研制一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。神经网络的一个重要特性是它能够从环境中学习,并把学习的结果分布存储于网络的突触连接中。神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,待网络各层权值都收敛到一定值,学习过程结束。神经网络模型是以神经元的数学模型为基础来描述的,简单地讲,它是一个数学模型。神经网络模型由网络拓扑、节点特点和学习规则来表示。神经网络模型有下列几点特别的优点:第一、并行分布处理;第二、高度鲁棒性和容错能力;第三、分布存储及学习能力;第四、能充分逼近复杂的非线性关系。神经网络模型现在有数十种之多,应用较多的典型的神经网络模型包括bp(backpropagation)神经网络、hopfield网络、art网络和kohonen网络。

矢量图在程序内部实现时是结构化数据,为了能够使用神经网络模型,需要将矢量图用一个向量序列表示。这样才可能利用神经网络模型实现将文本自动转换为矢量图的目的。

其中,陌生的神经网络要能够正常工作前,必须先要进行训练。预先以多个已知的词向量作为输入,以对应的多个已知的矢量图向量作为输出,来训练陌生的神经网络,以得到训练好的神经网络模型。训练好的神经网络模型可以被反复使用。在使用一段时间后,可以再次训练,得到更好的、更加符合实际要求的神经网络模型。训练神经网络模型可以采用无监督学习模式、监督学习模式、半监督学习或者强化学习等等。

参见图2,在一实施方式中,如果神经网络是陌生的,还未被训练,那么步骤s103之前还可以包括:

步骤s105:采取监督学习模式,以多个已知的、打标签的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练,而获得神经网络模型。

监督学习(supervisedlearning),是使用已知正确答案的示例来训练网络的。它的过程包括:数据集的创建和分类、训练、验证、使用。在本实施方式中,进行监督学习需要大量的打标签数据(即打标签的词向量序列),即需要大量知道正确结果的输入数据。在本实施方式中,可以采用程序自动生成大量的流程图,然后将流程图转换为文本,这样就得到了大量的打标签数据。

参见图3和图4,在一实施方式中,训练的模型为bp神经网络,下面具体介绍bp神经网络的数学推导过程。

训练算法实质是求取误差函数的最小值问题。这种算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。

假设本实施方式的神经网络有m层,并在输入层有x,设第k层的神经元的输入总和为输出为yik;从第k-1层的第j个神经元到第k层的第i个神经元的权系数为wij各个神经元的激励函数为f,则各个变量的关系可用下面有关数学式表示:

首先定义误差函数e,取期望输出和实际输出之差的平方和为误差函数,则有:

其中:是输出单元的期望值,也是就是训练信号;yim表示第m层的实际输出。训练的实质是按误差函数e的负梯度方向修改权系数,故:

其中:η为学习率,即步长。

依据链式法则有:

其中可得:

从而:

从而有:

令:

则有:

其中η为学习速率,取值为0-1之间。

由于有可得

为了方便求导,取f为连续函数,一般取非线性连续函数,如sigmoid函数。当取f为非对称sigmoid函数时,有:

则有:

考虑式1-11中的偏微项有两种情况需考虑:

1)如果k=m,则是输出层,这时有是输出期望值,它是常数。从式1-3有:

从而有

2)如果k<m,则该层是隐含层,这时要考虑上一层对它的作用,故有:

从式1-9,可知:

从式1-2,可有:

从而有:

最后有:

从上述过程可知:多层网络的训练方法是把一个样本加到输入层,并根据向前传播的规则:不断一层一层向输出层传递,最终在输出层可以得到输出yim。把yim与期望输出比较,如果两者的的信号误差大于设定值,则按下列公式反向传播修改权系数。

其中:

上面公式中,求取本层时,要用到高一层的可见,误差函数的求取是从输出层开始,到输入层的反向传播过程。在这个过程中不断进行递归求误差。

通过多个样本的反复训练,同时向误差渐渐减小的方向对权系数进行修正,以达最终消除误差。从上面公式也可以知道,如果网络的层数较多时,所用的计算量就相当可观,故而收敛速度不快。

为了加快收敛速度,一般考虑上一次的权系数,并以它作为本次修正的依据之一,故而有修正公式:

其中:η为学习速率,取值0.1-0.4左右;α为权系数修正常数,取值0.7-0.9左右。

对于没有隐层的神经网络,可取:

其中:为期望输出;yj为实际输出;yi为输入层的输出。

在反向传播算法应用于前馈多层网络时,采用sigmoid为激励函数时,可用下列步骤对网络的权系数wij进行递归求取。注意对于每层有n个神经元的时候,即有i=1,2,…,n;j=1,2,…,n。对于第k层的第i个神经元,则有n个权系数wi1,wi2,…,win,另外取多—个wi,n+1用于表示偏置θi;并且在输入样本x时,取x=(x1,x2,…,xn,1)。

bp网络模型的执行的步骤如下:

1)对权系数wij置初值:

对各层的权系数wij置一个较小的非零随机数,但其中wi,n+1=-θ。

2)输入一个样本x=(x1,x2,…,xn,1),以及对应期望输出y=(y1,y2,…,yn)。

3)计算各层的输出:

对于第k层第i个神经元的输出yik,有:

4)求各层的学习误差

对于输出层有k=m,则有:

对应其他层,则有:

5)修正权系数wij和偏置θ:

用式1-22时有:

用式1-25时有:

其中:

6)当求出了各层各个权系数之后,可按给定品质指标判别是否满足要求。如果满足要求,则算法结束;如果未满足要求,则返回(3)执行。

这个学习过程,对于任一给定的样本xp=(xp1,xp2,…xpn,1)和期望输出yp=(yp1,yp2,…,ypn)都要执行,直到满足所有输入输出要求为止。

步骤s104:将矢量图向量序列按照预定要求转换为矢量图。

在一实施方式中,矢量图为流程图,流程图由多个具有上下连接关系和/或左右连接关系的图元组成,矢量图向量包括图元序号、父图元序号、图元唯一标识、参数1、参数2、……、参数n。

进一步,步骤s104具体可以包括:根据矢量图向量中的图元序号,确定图元位于上下位置关系中的哪一层图元,根据矢量图向量中的父图元序号,确定与图元直接连接的上一层的图元,根据矢量图向量中的图元唯一标识确定图元位于左右位置关系中的哪一个图元,根据参数1、参数2、……、参数n,确定图元的具体内容。

参见图5,图5是一个具体的流程图,该流程图由一系列有上下左右关系的图元组成。每一个矢量图向量即为每一个图元向量。

图元向量化表示方式为:[图元序号,父图元序号,图元id,参数,参数,参数,参数,…]。[0,0,0,0,…]零向量表示空。

每个操作有编号如:呼叫10034,开启视频卡口10035,开启火车票监控10056,if20001,结束1000,条件开始20002,条件结束20003。

每个操作对象有编号如:分局值班领导50007,事发地50013,巡警50018,全市80001,汇报情况90024,归案40035,潜逃60019。

流程图的图元排序规则:从上至下,从左至右,则上述流程图向量序列分别为:

y1:[1,0,10034,50007,90024,0,0,…]

y2:[2,1,10035,50013,5,0,0,….]

y3:[3,2,10034,50018,50013,3,0,0,…]

y4:[4,3,20001,0,0,…]

y5:[5,4,1000,20002,40035,20003,…]

y6:[6,4,10056,80001,20002,60019,20003,…]

下面以一个具体的例子来说明本申请的方法。

第一步:待转换文本进入分词器后,分词的结果如下

呼叫

市局

值班领导

,

然后

开启

事发地

5

公里

卡口

第二步:依据词向量表将上述对应的词变为词向量,形成词向量序列,结果分别如下:

[0.782,-0.623,0.109,…]

[0.682,-0.623,0.109,…]

[0.732,-0.523,0.109,…]

[0.7,-0.6,0.1,…]

[0.452,-0.603,0.149,…]

[0.982,0.673,0.109,…]

[-0.782,0.623,0.179,…]

[0.282,-0.223,0.309,…]

[0.902,-0.673,0.109,…]

[0.782,0.623,0.109,…]

第三步:将词向量序列作为输入进入训练好的神经网络模型,并依据流程图向量的约定输出流程图向量序列,结果分别如下:

[1,0,10034,50007,90024,0,0,…]

[2,1,10035,50013,5,0,0,….]

[0,0,0,0,0,…]

......

[0,0,0,0,0,…]

第四步:依据流程图向量的约定将流程图向量序列转化为流程图,如图6所示。

总之,本申请实施方式将待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将所述词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,所述神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将所述矢量图向量序列按照预定要求转换为矢量图。由于将待转换文本分解为词序列,进而获得词向量序列,将词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,将矢量图向量序列按照预定要求转换为矢量图,通过这种方式,能够自动将文本转换为矢量图,不需要用户掌握专门的编辑工具或者特定的语言,编辑门槛低,简单方便快速。

参见图7,图7是本申请文本转矢量图的装置一实施方式的结构示意图,需要说明的是,本实施方式的装置可以执行上述方法中的步骤,相关内容的详细说明请参见上述方法部分,在此不再赘叙。

该装置包括:处理器1、存储器2以及输入输出装置3,处理器1分别与存储器2、输入输出装置3耦合。

存储器2用于存储程序;输入输出装置3用于输入待转换文本和输出矢量图;处理器1当运行该程序时用于通过输入输出装置3获取待转换文本,将待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将矢量图向量序列按照预定要求转换为矢量图。

其中,处理器1当运行该程序时还用于采取监督学习模式,以多个已知的、打标签的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练,而获得神经网络模型。

其中,处理器1当运行该程序时还用于通过分词器将待转换文本分解为词序列。

其中,矢量图为流程图,流程图由多个具有上下连接关系和/或左右连接关系的图元组成,矢量图向量包括图元序号、父图元序号、图元唯一标识、参数1、参数2、……、参数n。

其中,处理器1当运行该程序时还用于根据矢量图向量中的图元序号,确定图元位于上下位置关系中的哪一层图元,根据矢量图向量中的父图元序号,确定与图元直接连接的上一层的图元,根据矢量图向量中的图元唯一标识确定图元位于左右位置关系中的哪一个图元,根据参数1、参数2、……、参数n,确定图元的具体内容。

本申请实施方式将待转换文本分解为词序列;利用已建立的词向量表将分解后的词序列中的每个词变成词向量,获得词向量序列;将所述词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,所述神经网络模型是以多个已知的词向量序列作为输入、以对应的多个已知的矢量图向量作为输出进行训练而得到的;将所述矢量图向量序列按照预定要求转换为矢量图。由于将待转换文本分解为词序列,进而获得词向量序列,将词向量序列输入已训练好的神经网络模型中,获得由多个矢量图向量组成的矢量图向量序列,将矢量图向量序列按照预定要求转换为矢量图,通过这种方式,能够自动将文本转换为矢量图,不需要用户掌握专门的编辑工具或者特定的语言,编辑门槛低,简单方便快速。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1