Python OCR 函数与 ORC 格式详细解析
Python OCR 函数
OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字内容提取并转换为机器编码的文本的技术,Python 提供了多个库来实现 OCR 功能,其中常用的包括 pyocr、pytesseract、python-tesseract 和 EasyOCR,以下是对这些库的详细介绍:
1、PyOCR
简介:PyOCR 是一个 Python 库,提供了对多个 OCR 引擎的封装,方便在 Python 中使用不同的 OCR 引擎进行文本识别。
支持的 OCR 引擎:Tesseract、Cuneiform、GOCR。
适用场景:文字识别和提取、文档扫描和转换、自动化数据录入、图像标注和分类。
示例代码:
import pyocr from PIL import Image # 初始化OCR工具 tools = pyocr.get_available_tools() if len(tools) == 0: print("No OCR tool found") exit(1) ocr_tool = tools[0] # 打开图像文件 image = Image.open('image.jpg') # 使用OCR工具进行文本识别 text = ocr_tool.image_to_string(image, lang='eng', builder=pyocr.builders.TextBuilder()) # 打印识别结果 print(text)
2、Pytesseract
简介:Pytesseract 是 Google 的 Tesseract-OCR 引擎的一个 Python 封装,可以方便地在 Python 中使用 Tesseract 进行文本识别。
特点:支持多种语言和图像格式,简单易用。
示例代码:
import pytesseract from PIL import Image # 打开图像文件 image = Image.open('image.jpg') # 使用pytesseract进行文本识别 text = pytesseract.image_to_string(image) # 打印识别结果 print(text)
3、Python-Tesseract
简介:Python-Tesseract 是另一个对 Tesseract OCR 引擎的封装,与 Pytesseract 类似,但可能在某些细节上有所不同。
特点:支持多种语言和图像格式,简单易用。
示例代码:
import pytesseract from PIL import Image # 打开图像文件 image = Image.open('image.jpg') # 使用pytesseract进行文本识别 text = pytesseract.image_to_string(image) # 打印识别结果 print(text)
4、EasyOCR
简介:EasyOCR 是另一个强大的 OCR 库,支持多种语言和复杂的文本布局。
特点:支持多种语言和复杂的文本布局,易于使用。
示例代码:
import easyocr reader = easyocr.Reader(['en']) result = reader.readtext('image.jpg') for (img, text, prob) in result: print('Text:', text, 'Probability:', prob)
ORC 格式详解
ORC(Optimized Row Columnar)文件格式是一种列式存储格式,最初由 Apache Hive 开发,用于降低 Hadoop 数据存储空间和加速 Hive 查询速度,以下是 ORC 格式的详细解析:
1、文件结构
ORC 文件:保存在文件系统上的普通二进制文件,一个 ORC 文件中可以包含多个 stripe,每个 stripe 包含多条记录,这些记录按照列进行独立存储。
文件级元数据:包括文件的描述信息 PostScript、文件 meta 信息(包括整个文件的统计信息)、所有 stripe 的信息和文件 schema 信息。
Stripe:一组行形成一个 stripe,每次读取文件是以行组为单位的,一般为 HDFS 的块大小,保存了每一列的索引和数据。
Stripe 元数据:保存 stripe 的位置、每一个列在该 stripe 的统计信息以及所有的 stream 类型和位置。
Row Group:索引的最小单位,一个 stripe 中包含多个 row group,默认为 10000 个值组成。
Stream:一个 stream 表示文件中一段有效的数据,包括索引和数据两类,索引 stream 保存每一个 row group 的位置和统计信息,数据 stream 包括多种类型的数据。
2、数据模型
ORC 原生不支持嵌套数据格式,通过对复杂数据类型特殊处理的方式实现嵌套格式的支持,对于如下的 Hive 表:
CREATE TABLEorcStructTable
(name
string,course
struct<course:string,score:int>,,score
map<string,int>,,work_locations
array<string> )
ORC 的结构中包含了复杂类型列和原始类型列,前者包括 LIST、STRUCT、MAP 和 UNION 类型,后者包括 BOOLEAN、整数、浮点数、字符串类型等。
3、优点
列式存储:有多种文件压缩方式,并且有着很高的压缩比。
可切分性:文件是可切分的,节省 HDFS 存储资源,减少查询任务的输入数据量。
索引支持:提供多种索引,如 row group index、bloom filter index。
复杂数据结构支持:支持复杂的数据结构,如 Map 等。
高效压缩和编码:针对不同类型的数据使用更高效的压缩算法和编码方式,减小 I/O。
Python 提供了多种 OCR 库来满足不同的文本识别需求,而 ORC 文件格式通过其高效的列式存储和压缩机制,显著提升了大数据处理的性能和效率。
到此,以上就是小编对于pyhon orc函数_Orc Format的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/90814.html