System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,尤其涉及一种实时识别图片类pdf文字信息入库的方法、装置及电子设备。
技术介绍
1、pdf类图书文字识别方案,主要基于ocr(optical character recognition,光学字符识别)技术,旨在将pdf文件中的图像或扫描文档中的文字内容转化为可编辑、可搜索的文本格式。
2、现有技术在实时识别图片类pdf文字信息入库的过程中,存在如下问题:
3、1.目前识别pdf类图书文件的方案主要是采用wps等付费的软件厂商,成本较高。
4、2.各厂商识别pdf类图书文件时,对文件的要求比较高,只能识别文字排版规整清晰的图片,对于一些手动拍照,同一页分为两个板块的图片,识别效果较差。
5、上述问题成为需要解决的技术问题。
技术实现思路
1、有鉴于此,本专利技术实施例提供了一种实时识别图片类pdf文字信息入库的方法、装置及电子设备,至少部分解决现有技术中存在的问题。
2、第一方面,本专利技术实施例提供了一种实时识别图片类pdf文字信息入库的方法,包括:
3、使用fitz库打开pdf文件,通过pypdf2读取文件后,基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,并分批导出每页的图片;
4、读取目标图书的文件夹,遍历目标图书所有导出的图片,使用cv2.canny对图片进行边缘裁切,根据目标图书的情况识别图片中
5、使用文字接口识别出所有文字,并把图片页数以及每页的左右打特殊序号标记与识别的内容存储起来,形成第一文本文件;
6、读取识别后的第一文本文件,对第一文本文件中的内容进行解析,得到包含独立语义内容的第二文本文件;
7、读取第二文本文件,对第二文本文件执行清洗操作,将清洗后得到的第三文本文件进行入库处理。
8、根据本公开实施例的一种具体实现方式,所述基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,包括:
9、创建一个pdfreader对象来打开pdf文件,并提供pdf文件的路径作为参数;
10、获取pdfreader.getnumpages()返回的整数值,作为pdf文件的总页数。
11、根据本公开实施例的一种具体实现方式,所述基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,还包括:
12、遍历pdf文件的每一页,使用load_page()方法加载每一页图片,使用get_images()方法提取每一页上的所有图像,将提取的每一张图像进行保存处理。
13、根据本公开实施例的一种具体实现方式,所述读取目标图书的文件夹,遍历目标图书所有导出的图片,使用cv2.canny对图片进行边缘裁切,根据目标图书的情况识别图片中的中间线,并基于中间线将每页图片裁切为两部分,包括:
14、导入cv2库,遍历包含导出图片的目标图书文件夹,使用cv2.imread()加载每张图片;
15、使用cv2.cvtcolor()将彩色图像转换为灰度图像,使用cv2.canny()函数来检测图像中的边缘;
16、使用cv2.houghlines()来检测图像中的直线,根据直线的位置和长度来确定中间线;
17、根据识别出的中间线来确定裁切位置,使用numpy的切片功能来裁切图像。
18、根据本公开实施例的一种具体实现方式,所述使用文字接口识别出所有文字,并把图片页数以及每页的左右打特殊序号标记与识别的内容存储起来,形成第一文本文件,包括:
19、加载经过预处理后的图片,使用ocr工具识别图片中的文字;
20、为每张图片分配页数,为裁切后的图片添加左右标记;
21、创建一个文本文件来存储识别的内容,将页数、左右标记和识别的文字写入文本文件中。
22、根据本公开实施例的一种具体实现方式,所述读取识别后的第一文本文件,对第一文本文件中的内容进行解析,得到包含独立语义内容的第二文本文件,包括:
23、确定第一文本文件t中包含的n个句子t={s1,s2,...,sn},计算所有句子中包含的m个词汇w={w1,w2,…,wm},第i个词汇的权重h(wi)表示:
24、
25、表示词汇在第一文本文件的文本中的出现频率,α是修正参数;
26、对于每个句子,其评价值为:
27、
28、表示句子的长度;
29、设置阈值τ,筛选出得到包含独立语义内容的第二文本文件t',t'是包含独立语义内容的句子集合,t'表示为:
30、。
31、根据本公开实施例的一种具体实现方式,所述读取识别后的第一文本文件,对第一文本文件中的内容进行解析,得到包含独立语义内容的第二文本文件,还包括:
32、对于每个句子,计算其结构复杂性得分和主题一致性得分:
33、
34、表示句子中的从属子句数量,δ、β、γ是调整系数;
35、
36、kn是第一文本文件中主题的数量,表示句子在第k个主题上的概率,表示第k个主题在第一文本文件t中的概率;
37、当与的乘积大于预设值ct0时,直接将句子放置到第二文本文件t'中。
38、根据本公开实施例的一种具体实现方式,所述读取第二文本文件,对第二文本文件执行清洗操作,将清洗后得到的第三文本文件进行入库处理,包括:
39、使用open()函数以读取模式打开第二文本文件,使用read()方法读取第二文本文件的内容;
40、使用字符串方法.strip()来清理文本,使用正则表达式来去除非文本内容,使用停用词列表来过滤文本;
41、在数据库中为pdf文件创建一个表,构建插入语句,将清洗后的第三文本文件的内容插入到数据库中。
42、第二方面,本专利技术实施例提供了一种实时识别图片类pdf文字信息入库的装置,包括:
43、导出模块,使用fitz库打开pdf文件,通过pypdf2读取文件后,基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,并分批导出每页的图片;
44、裁切模块,读取目标图书的文件夹,遍历目标图书所有导出的图片,使用cv2.canny对图片进行边缘裁切,根据目标图书的情况识别图片中的中间线,并基于中间线将每页图片裁切为两部分;
45、识别模块,使用文字接口识别出所有文字,并把图片页数以及每页的左右打特殊序号标记与识别的内容存储起来,形成第一文本文件;
<本文档来自技高网...【技术保护点】
1.一种实时识别图片类PDF文字信息入库的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于PyPDF2中的函数getNumPages获取PDF文件页数,利用load_page事件读取PDF文件中每页的图片,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于PyPDF2中的函数getNumPages获取PDF文件页数,利用load_page事件读取PDF文件中每页的图片,还包括:
4.根据权利要求3所述的方法,其特征在于,所述读取目标图书的文件夹,遍历目标图书所有导出的图片,使用cv2.Canny对图片进行边缘裁切,根据目标图书的情况识别图片中的中间线,并基于中间线将每页图片裁切为两部分,包括:
5.根据权利要求4所述的方法,其特征在于,所述使用文字接口识别出所有文字,并把图片页数以及每页的左右打特殊序号标记与识别的内容存储起来,形成第一文本文件,包括:
6.根据权利要求5所述的方法,其特征在于,所述读取识别后的第一文本文件,对第一文本文件中的内容进行解析,得到包含独立语义内容的第二文本
7.根据权利要求6所述的方法,其特征在于,所述读取识别后的第一文本文件,对第一文本文件中的内容进行解析,得到包含独立语义内容的第二文本文件,还包括:
8.根据权利要求7所述的方法,其特征在于,所述读取第二文本文件,对第二文本文件执行清洗操作,将清洗后得到的第三文本文件进行入库处理,包括:
9.一种实时识别图片类PDF文字信息入库的装置,其特征在于,包括:
10.一种电子设备,其特征在于,所述电子设备包括:
...【技术特征摘要】
1.一种实时识别图片类pdf文字信息入库的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于pypdf2中的函数getnumpages获取pdf文件页数,利用load_page事件读取pdf文件中每页的图片,还包括:
4.根据权利要求3所述的方法,其特征在于,所述读取目标图书的文件夹,遍历目标图书所有导出的图片,使用cv2.canny对图片进行边缘裁切,根据目标图书的情况识别图片中的中间线,并基于中间线将每页图片裁切为两部分,包括:
5.根据权利要求4所述的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:仪晓辉,刘坤,寇振芳,张润林,
申请(专利权)人:一网互通北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。