基于OCR和自然语言处理的两票信息提取方法与流程
未命名
09-24
阅读:47
评论:0
基于ocr和自然语言处理的两票信息提取方法
技术领域
1.本发明属于图像处理技术领域,具体涉及基于ocr和自然语言处理的两票信息提取方法。
背景技术:
2.信息提取(ie)是从非结构化和/或半结构化机器可读的文档中自动提取结构化信息的任务,基于ocr的票据信息提取技术是指借助ocr技术,将非结构化的票据影像转换为结构化数据,实现票据信息的提取,目前,对票据ocr的处理方法大多采用基于模板的方法,这种方法从提取布局信息开始,或者通过将其与已知的票据格式进行匹配,或者通过应用一些规则来推断图像上每个位置包含的信息类型,这种方法的明显缺点是,它无法理解票据内容,除非它与系统先前已知的布局之一相匹配,而且一般仅能够对简单的且格式固定的票据进行识别;因此,提供一种方法简单、提取关键信息、自动识别关键信息、提高工作效率的基于ocr和自然语言处理的两票信息提取方法是非常有必要的。
技术实现要素:
3.本发明的目的是为了克服现有技术的不足,而提供一种方法简单、提取关键信息、自动识别关键信息、提高工作效率的基于ocr和自然语言处理的两票信息提取方法。
4.本发明的目的是这样实现的:基于ocr和自然语言处理的两票信息提取方法,所述的方法包括以下步骤:
5.步骤1:基于ocr技术的两票文字提取;
6.步骤2:构建面向非结构化文本数据处理的循环神经网络;
7.步骤3:基于rnn的工作票语义感知模型构建。
8.所述的步骤1中的基于ocr技术的两票文字提取具体包括以下步骤:
9.步骤1.1:版面分析:把一整张图像拆分为行,便于后面一行一行地处理;在图像没有明显倾斜扭曲时,采用笔画等宽算法即swt算法把非笔迹的像素过滤掉,再使用投影直方图进行分行;
10.步骤1.2:行拆分为字符:把每一行拆分到独立的字,采用连通域分析或者直方图投影进行拆分;
11.步骤1.3:识别字符:生成样本建模即定位字符区域后缩放到8x8方块,并且采用svm识别算法进行训练和识别;
12.步骤1.4:识别后矫正:采用马尔可夫模型算法进行识别结果矫正。
13.所述的步骤2中的构建面向非结构化文本数据处理的循环神经网络具体包括以下步骤:
14.步骤2.1:文本模型表示:对于数学模型中的语音和文本的向量形式,每个词汇表示一个向量,向量的每个维度表示单个词汇,如果单词出现在文本中,则设置为1,否则设置为0,向量数等于词汇单词的维数:dj=(w
1,j
,w
2,j
,...,w
t,j
)(1);
15.步骤2.2:循环神经网络rnn:在神经网络中,每个神经元是一个处理单元,它将连接到它的节点的输出作为输入;在发出输出之前,每个神经元会先应用一个非线性激活函数,正是由于这个激活函数,神经网络具有对非线性关系进行建模的能力,引入递归神经网络rnn,赋予神经网络对时间进行显式建模的能力,通过添加跨越时间点的自连接隐藏层;隐藏层的反馈,不仅仅进入输出端,而且还进入了下一时间步骤隐藏层。
16.所述的步骤3中的基于rnn的工作票语义感知模型构建具体包括以下步骤:
17.步骤3.1:前向传播;
18.步骤3.2:损失函数:损失函数有两种:平方误差和交叉熵误差;假设t为训练样本的真实值,y为神经网络的输出,一个训练样本(x,t);
19.步骤3.3:反向传播。
20.所述的步骤3.1中的前向传播具体为:u=w
xh
×
x(2),h
t
=tanh(w
hh
×ht-1
+u)=tanh(z
t
+u)(3),u
′
=w
hy
×
h(4),y=u
′
(5),式中,u为隐含层的输入;h为隐含层的输出;u
′
为输出层的输入;y为输出层输出;由于输出层是线性的,故y=u
′
。
21.所述的步骤3.2中的损失函数具体包括以下步骤:
22.步骤3.21:平方误差:
23.步骤3.22:交叉熵误差:e(t,y)=-[tln(y)+(1-t)ln(1-y)](7);当神经网络的输出层没有采用激活函数的时候,采用平方误差,能够比较快速的进行梯度下降参数估计;如果当输出层采用sigmoid激活函数的时候,采用交叉熵误差进行参数估计,由于采用sigmoid激活函数,采用交叉熵误差能够在求导的时候消掉sigmoid函数,能够加快梯度下降的速度;
[0024]
步骤3.23:误差对输出层的输出求偏导;
[0025]
步骤3.24:误差对输出层的输入求偏导。
[0026]
所述的步骤3.23中的误差对输出层的输出求偏导具体包括以下步骤:
[0027]
步骤3.231:平方误差函数:
[0028]
步骤3.232:交叉熵误差函数:
[0029][0030]
所述的步骤3.24中的误差对输出层的输入求偏导具体包括以下步骤:
[0031]
步骤3.241:线性输出层:如果输出层没有激活函数,则针对不同的代价函数分别求解:步骤3.242:sigmoid输出层:计算误差对输出层输入的导数,记输出层的输入为z,z=u
′
,y=sigmoid(z),在神经网络中,定义输出层的误差为损失函数对输出层输入的导数,记为δ
l
,sigmoid函数:其中sigmoid函数的偏导为:其中sigmoid函数的偏导为:
[0032]
所述的步骤3.3中的反向传播具体包括以下步骤:
[0033]
步骤3.31:计算误差对输出层输出的偏导并矩阵化得到:
[0034]
步骤3.32:计算误差对输出层输入的导数:如果输出层没有采用激活函数,矩阵化得到:
[0035]
步骤3.33:计算误差对的偏导:
[0036]
步骤2.34:计算误差对隐含层输出的偏导:下一时刻的隐含层输入关于误差的偏导数称为d
next
,并矩阵化得到:,并矩阵化得到:
[0037]
步骤3.35:计算损失函数对隐含层输入的偏导:
[0038]
步骤3.36:计算误差对w
xh
的偏导:步骤3.37:计算误差对w
hh
(i,j)的偏导:通过计算得到了所有的参数矩阵关于误差的偏导数,然后根据偏导数进行梯度下降进行参数更新。
[0039]
本发明的有益效果:本发明为基于ocr和自然语言处理的两票信息提取方法,在使用中,本发明采用基于ocr技术的两票扫描件信息提取,通过ocr技术自动读取两票每行的内容,利用信息比对提取两票的关键信息;本发明采用基于深度学习的自然语言处理方法,构建变电站操作知识引擎,将文本信息转化为计算机编码信息进行深度特征挖掘,自动识别每次带电作业任务的操作设备、操作任务及其他关键信息;本发明具有方法简单、提取关键信息、自动识别关键信息、提高工作效率的优点。
附图说明
[0040]
图1为本发明基于ocr和自然语言处理的两票信息提取方法的循环神经网络基本结构图。
[0041]
图2为本发明基于ocr和自然语言处理的两票信息提取方法的循环网络展开图。
具体实施方式
[0042]
下面结合附图对本发明做进一步的说明。
[0043]
实施例1
[0044]
如图1-2所示,基于ocr和自然语言处理的两票信息提取方法,所述的方法包括以下步骤:
[0045]
步骤1:基于ocr技术的两票文字提取;
[0046]
步骤2:面向非结构化文本数据处理的循环神经网络;
[0047]
步骤3:基于rnn的工作票语义感知模型构建。
[0048]
本发明为基于ocr和自然语言处理的两票信息提取方法,在使用中,本发明采用基于ocr技术的两票扫描件信息提取,通过ocr技术自动读取两票每行的内容,利用信息比对提取两票的关键信息;本发明采用基于深度学习的自然语言处理方法,构建变电站操作知识引擎,将文本信息转化为计算机编码信息进行深度特征挖掘,自动识别每次带电作业任务的操作设备、操作任务及其他关键信息;本发明具有方法简单、提取关键信息、自动识别关键信息、提高工作效率的优点。
[0049]
实施例2
[0050]
如图1-2所示,基于ocr和自然语言处理的两票信息提取方法,所述的方法包括以下步骤:
[0051]
步骤1:基于ocr技术的两票文字提取;
[0052]
步骤2:构建面向非结构化文本数据处理的循环神经网络;
[0053]
步骤3:基于rnn的工作票语义感知模型构建。
[0054]
步骤1中的基于ocr技术的两票文字提取具体包括以下步骤:
[0055]
步骤1.1:版面分析:把一整张图像拆分为行,便于后面一行一行地处理;在图像没有明显倾斜扭曲时,采用笔画等宽算法即swt算法把非笔迹的像素过滤掉,再使用投影直方图进行分行;
[0056]
步骤1.2:行拆分为字符:把每一行拆分到独立的字,采用连通域分析或者直方图投影进行拆分;
[0057]
步骤1.3:识别字符:生成样本建模即定位字符区域后缩放到8x8方块,并且采用svm识别算法进行训练和识别;
[0058]
在本实施例中,值得注意的是:1)大样本+简单识别方法优于小样本+复杂识别算法;所以不需要选择太复杂的建模和分类方法,尽量通过缩放平移等方法把原始样本展开即可;2)字体数量要跟建模方法适应:字体不能太少;否则样本不足;字体也不能太多,以免样本互相覆盖-多个相似的样本指向不同的标签;3)要考虑单个字符被不当分割和不同字符粘连的情况:这个时候就需要识别算法能提供置信度的计算,并且尝试不同识别组合,找到总的置信度最高的一种情况;可以先进行过切分,再使用图相关算法找出最佳组合-找到最佳切分组合就相当于在图里找到一条最短路径;
[0059]
步骤1.4:识别后矫正:采用马尔可夫模型算法进行识别结果矫正。
[0060]
所述的步骤2中的构建面向非结构化文本数据处理的循环神经网络具体包括以下步骤:
[0061]
步骤2.1:文本模型表示:对于数学模型中的语音和文本的向量形式,每个词汇表示一个向量,向量的每个维度表示单个词汇,如果单词出现在文本中,则设置为1,否则设置为0,向量数等于词汇单词的维数:dj=(w
1,j
,w
2,j
,...,w
t,j
)(1);
[0062]
步骤2.2:循环神经网络rnn:在神经网络中,每个神经元是一个处理单元,它将连接到它的节点的输出作为输入;在发出输出之前,每个神经元会先应用一个非线性激活函数,正是由于这个激活函数,神经网络具有对非线性关系进行建模的能力,引入递归神经网络rnn,赋予神经网络对时间进行显式建模的能力,通过添加跨越时间点的自连接隐藏层;隐藏层的反馈,不仅仅进入输出端,而且还进入了下一时间步骤隐藏层;
[0063]
在本实施例中,但是一般的神经模型无法明确模拟时间关系,所有的数据点都是由固定长度的向量组成的假设,当输入相量存在较强的相关性时,模型的处理效果便会大打折扣。因此,引入递归神经网络rnn,赋予神经网络对时间进行显式建模的能力,通过添加跨越时间点的自连接隐藏层;隐藏层的反馈,不仅仅进入输出端,而且还进入了下一时间步骤隐藏层;
[0064]
传统的神经网络没有中间层的循环过程,当指定输入x0,x1,x2,...,x
t
时,神经元的过程后会有一些相应的输出h0,h1,h2,...,h
t
,每次训练,神经元之间无需信息传递;递归神经网络与传统的神经网络之间的区别是,每一个训练rnn,神经元和神经元需要传递一些信息,在这个训练中,神经元需要使用最后一个神经元的作用后的状态信息,类似递归函数;循环神经网络的基本结构如图1所示,展开图如图2所示:其中,a是隐藏层;x
t
是输入向量;h
t
是隐藏层的输出;从图1可以看出,每个隐藏层的输出被作为输入向量输入到下一个隐藏层;在文本分析中可以认为这是上一段文本对下文的影响。
[0065]
所述的步骤3中的基于rnn的工作票语义感知模型构建具体包括以下步骤:
[0066]
步骤3.1:前向传播;
[0067]
步骤3.2:损失函数:损失函数有两种:平方误差和交叉熵误差;假设t为训练样本的真实值,y为神经网络的输出,一个训练样本(x,t);
[0068]
步骤3.3:反向传播。
[0069]
所述的步骤3.1中的前向传播具体为:u=w
xh
×
x(2),h
t
=tanh(w
hh
×ht-1
+u)=tanh(z
t
+u)(3),u
′
=w
hy
×
h(4),y=u
′
(5),式中,u为隐含层的输入;h为隐含层的输出;u
′
为输出层的输入;y为输出层输出;由于输出层是线性的,故y=u
′
。
[0070]
所述的步骤3.2中的损失函数具体包括以下步骤:
[0071]
步骤3.21:平方误差:
[0072]
步骤3.22:交叉熵误差:e(t,y)=-[tln(y)+(1-t)ln(1-y)](7);当神经网络的输出层没有采用激活函数的时候,采用平方误差,能够比较快速的进行梯度下降参数估计;如果当输出层采用sigmoid激活函数的时候,采用交叉熵误差进行参数估计,由于采用sigmoid激活函数,采用交叉熵误差能够在求导的时候消掉sigmoid函数,能够加快梯度下降的速度;
[0073]
步骤3.23:误差对输出层的输出求偏导;
[0074]
步骤3.24:误差对输出层的输入求偏导。
[0075]
所述的步骤3.23中的误差对输出层的输出求偏导具体包括以下步骤:
[0076]
步骤3.231:平方误差函数:
[0077]
步骤3.232:交叉熵误差函数:
[0078][0079]
所述的步骤3.24中的误差对输出层的输入求偏导具体包括以下步骤:
[0080]
步骤3.241:线性输出层:如果输出层没有激活函数,则针对不同的代价函数分别
求解:
[0081]
步骤3.242:sigmoid输出层:计算误差对输出层输入的导数,记输出层的输入为z,z=u
′
,y=sigmoid(z),在神经网络中,定义输出层的误差为损失函数对输出层输入的导数,记为δ
l
,sigmoid函数:其中sigmoid函数的偏导为:其中sigmoid函数的偏导为:
[0082]
所述的步骤3.3中的反向传播具体包括以下步骤:
[0083]
步骤3.31:计算误差对输出层输出的偏导并矩阵化得到:
[0084]
步骤3.32:计算误差对输出层输入的导数:如果输出层没有采用激活函数,矩阵化得到:
[0085]
步骤3.33:计算误差对的偏导:
[0086]
步骤2.34:计算误差对隐含层输出的偏导:下一时刻的隐含层输入关于误差的偏导数称为d
next
,并矩阵化得到:,并矩阵化得到:
[0087]
步骤3.35:计算损失函数对隐含层输入的偏导:
[0088]
步骤3.36:计算误差对w
xh
的偏导:
[0089]
步骤3.37:计算误差对w
hh
(i,j)的偏导:通过计算得到了所有的参数矩阵关于误差的偏导数,然后根据偏导数进行梯度下降进行参数更新。
[0090]
本发明为基于ocr和自然语言处理的两票信息提取方法,在使用中,本发明采用基于ocr技术的两票扫描件信息提取,通过ocr技术自动读取两票每行的内容,利用信息比对提取两票的关键信息;本发明采用基于深度学习的自然语言处理方法,构建变电站操作知识引擎,将文本信息转化为计算机编码信息进行深度特征挖掘,自动识别每次带电作业任务的操作设备、操作任务及其他关键信息;本发明具有方法简单、提取关键信息、自动识别关键信息、提高工作效率的优点。
技术特征:
1.基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的方法包括以下步骤:步骤1:基于ocr技术的两票文字提取;步骤2:构建面向非结构化文本数据处理的循环神经网络;步骤3:基于rnn的工作票语义感知模型构建。2.如权利要求1所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤1中的基于ocr技术的两票文字提取具体包括以下步骤:步骤1.1:版面分析:把一整张图像拆分为行,便于后面一行一行地处理;在图像没有明显倾斜扭曲时,采用笔画等宽算法即swt算法把非笔迹的像素过滤掉,再使用投影直方图进行分行;步骤1.2:行拆分为字符:把每一行拆分到独立的字,采用连通域分析或者直方图投影进行拆分;步骤1.3:识别字符:生成样本建模即定位字符区域后缩放到8x8方块,并且采用svm识别算法进行训练和识别;步骤1.4:识别后矫正:采用马尔可夫模型算法进行识别结果矫正。3.如权利要求1所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤2中的构建面向非结构化文本数据处理的循环神经网络具体包括以下步骤:步骤2.1:文本模型表示:对于数学模型中的语音和文本的向量形式,每个词汇表示一个向量,向量的每个维度表示单个词汇,如果单词出现在文本中,则设置为1,否则设置为0,向量数等于词汇单词的维数:d
j
=(w
1,j
,w
2,j
,...,w
t,j
)(1);步骤2.2:循环神经网络rnn:在神经网络中,每个神经元是一个处理单元,它将连接到它的节点的输出作为输入;在发出输出之前,每个神经元会先应用一个非线性激活函数,正是由于这个激活函数,神经网络具有对非线性关系进行建模的能力,引入递归神经网络rnn,赋予神经网络对时间进行显式建模的能力,通过添加跨越时间点的自连接隐藏层;隐藏层的反馈,不仅仅进入输出端,而且还进入了下一时间步骤隐藏层。4.如权利要求1所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3中的基于rnn的工作票语义感知模型构建具体包括以下步骤:步骤3.1:前向传播;步骤3.2:损失函数:损失函数有两种:平方误差和交叉熵误差;假设t为训练样本的真实值,y为神经网络的输出,一个训练样本(x,t);步骤3.3:反向传播。5.如权利要求4所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3.1中的前向传播具体为:u=w
xh
×
x(2),h
t
=tanh(w
hh
×
h
t-1
+u)=tanh(z
t
+u)(3),u
′
=w
hy
×
h(4),y=u
′
(5),式中,u为隐含层的输入;h为隐含层的输出;u
′
为输出层的输入;y为输出层输出;由于输出层是线性的,故y=u
′
。6.如权利要求4所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3.2中的损失函数具体包括以下步骤:步骤3.21:平方误差:
步骤3.22:交叉熵误差:e(t,y)=-[tln(y)+(1-t)ln(1-y)](7);当神经网络的输出层没有采用激活函数的时候,采用平方误差,能够比较快速的进行梯度下降参数估计;如果当输出层采用sigmoid激活函数的时候,采用交叉熵误差进行参数估计,由于采用sigmoid激活函数,采用交叉熵误差能够在求导的时候消掉sigmoid函数,能够加快梯度下降的速度;步骤3.23:误差对输出层的输出求偏导;步骤3.24:误差对输出层的输入求偏导。7.如权利要求6所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3.23中的误差对输出层的输出求偏导具体包括以下步骤:步骤3.231:平方误差函数:步骤3.232:交叉熵误差函数:8.如权利要求6所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3.24中的误差对输出层的输入求偏导具体包括以下步骤:步骤3.241:线性输出层:如果输出层没有激活函数,则针对不同的代价函数分别求解:步骤3.242:sigmoid输出层:计算误差对输出层输入的导数,记输出层的输入为z,z=u
′
,y=sigmoid(z),在神经网络中,定义输出层的误差为损失函数对输出层输入的导数,记为δ
l
,sigmoid函数:其中sigmoid函数的偏导为:其中sigmoid函数的偏导为:9.如权利要求4所述的基于ocr和自然语言处理的两票信息提取方法,其特征在于:所述的步骤3.3中的反向传播具体包括以下步骤:步骤3.31:计算误差对输出层输出的偏导并矩阵化得到:步骤3.32:计算误差对输出层输入的导数:如果输出层没有采用激活函数,矩阵化得到:步骤3.33:计算误差对的偏导:步骤2.34:计算误差对隐含层输出的偏导:下一时刻的隐含层输入关于误差的偏导数称为d
next
,并矩阵化得到:,并矩阵化得到:步骤3.35:计算损失函数对隐含层输入的偏导:
步骤3.36:计算误差对w
xh
的偏导:步骤3.37:计算误差对w
hh
(i,j)的偏导:通过计算得到了所有的参数矩阵关于误差的偏导数,然后根据偏导数进行梯度下降进行参数更新。
技术总结
本发明涉及基于OCR和自然语言处理的两票信息提取方法,所述的方法包括以下步骤:步骤1:基于OCR技术的两票文字提取;步骤2:构建面向非结构化文本数据处理的循环神经网络;步骤3:基于RNN的工作票语义感知模型构建;本发明具有方法简单、提取关键信息、自动识别关键信息、提高工作效率的优点。提高工作效率的优点。提高工作效率的优点。
技术研发人员:苏长宝 姚楠 张泽中 王志方 尚光伟 刘斌 张朋飞 曹锐 杨干 苏鸣方
受保护的技术使用者:国网河南省电力公司南阳供电公司
技术研发日:2023.04.13
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/