一个工具,用于将PDF文本以及结构特征转换为熊猫数据帧。
PDFContentConverter的Python项目详细描述
PDF内容转换器是一个工具,用于将PDF文本和结构特征转换为pandas数据帧,用Python编写。 它检索有关文本内容、字体、位置、字符频率和周围的可视PDF元素的信息。在
如何
- 传递要转换为PDFContentConverter的PDF文件的路径。在
- 调用函数pdf2pandas()。然后,PDF内容作为pandas数据帧返回。在
- PDF的媒体框可以使用get_media_boxes(),页面计数超过get_page_count(),文档文本使用pdf2text()。在
- 使用convert()函数,pandas数据帧、文本文档内容、媒体框和页数将作为字典返回。在
示例调用:
converter = PDFContentConverter(pdf)
result = converter.pdf2pandas()
输出格式
包含转换后的PDF数据的输出存储为pandas dataframe。在
不同的PDF元素以行的形式存储。在
数据帧包含以下列:
- id:PDF元素的唯一标识符
- page:页码,从0开始
- text:PDF元素的文本
- x_0:左x坐标
- x_1:右x坐标
- y_0:上y坐标
- y_1:底部y坐标
- pos_x:中心x坐标
- pos_y:中心y坐标
- abs_pos:包含(pos_x,pos_y)坐标的独立于页面的表示的元组
- original_font:pdfminer提取的字体
- font_name:从original_font中提取的字体的名称
- code:pdfminer提供的字体代码
- bold:因子1表示文本为粗体,否则为0
- italic:因子1表示文本为斜体,否则为0
- font_size:以磅为单位的文本大小
- masked:数字内容替换为#的文本
- frequency_hist:文本中字符类型频率的直方图,存储为包含文本、数字、文本符号和其他符号百分比的元组
- len_text:字符数
- n_tokens:字数
- tag:用于键-值对提取的标记,根据简单的启发式方法指示键或值
- box:由pdfminer布局分析提取的框
- in_element_ids:包含周围可视元素(如矩形或列表)的ID。它们以列表形式存储[左、右、上、下]。-1表示没有相邻的可视元素。在
- in_element:根据in*element_id指示元素是否存储在可视矩形表示(存储为“矩形”)中(存储为“none”)。在
此外,还将返回一个包含以下条目的字典
可用于转换绝对CSV坐标:
- x0:左x页裁剪框坐标
- x1:右x页裁剪框坐标
- y0:上y页裁剪框坐标
- y1:下y页裁剪框坐标
- x0page:左x页面坐标
- x1page:右x页面坐标
- y0page:上y页坐标
- y1page:下y页坐标
当使用convert()时,两者都返回到字典中。在
数据帧存储为“内容”,页面特征存储为“媒体盒”,文本内容存储为“文本”,页数存储为“页数”。在
致谢
- 这项工作是建立在pdfminer项目https://github.com/euske/pdfminer之上的。在
- 项目
标签: