搜索
写经验 领红包
 > 电器

在pdf中将字解析为词和一行字的区别(在pdf中将字解析为词和一行字对应)

导语:在pdf中,将字解析为词和一行字

将字符转换成文本的第一步是,以有意义的方式对字符进行分组。所谓的有意义,就是它们在pdf中距离比较近,更准确的说是,在pdf中表现的更像一组文字。

每个字都用两个位置来描述,左下角这个位置的坐标,和右上角这个位置的坐标。通过这两个位置,就能描述出字的边框。Pdfminer.six使用边框来决定哪些字应该是一个词,或者是一行。在垂直方向和水平方向,都比较紧凑的字,就是一行的字。

两个字之间的相近成度由char_margin和line_overlap两个参数决定。上图中的M就是char_margin。

两个字的边框之间的水平距离必须小于char_margin,边框之间的垂直距离必须小于line_overlap,这样的两个字,才是一个词。

char_margin的值和line_overlap的值,和字符的边框大小有关系。char_margin相对于任意一个边界框的最大宽度,line_overlap相对于任意一个边界框的最小高度。

如果是个词,字符之间需要插入空格,因为PDF格式没有空格字符的概念。如果两个字符之间的距离比word_margin(图中的W)更远,则插入一个空格。word_margin是相对于新字符的最大宽度或高度。更小的word_margin会创建更小的单词。注意,word_margin至少要小于char_margin,否则字符之间不会用空格分隔。

这个阶段的结果是一个行列表。每行包含一个字符列表。这些字符要么是源自PDF文件的原始LTChar字符,要么是在每行末尾插入表示单词之间的空格或换行符的LTAnno字符。

本文内容由快快网络小洁创作整理编辑!