- 主题:问一个算法问题:数组归并
做pdf文件解析
python的pdf解析工具pdfminer有点问题,基本思路是读出文本块,然后比较相邻的文本块obj0,obj1
# halign: obj0 and obj1 is horizontally aligned.
#
# +------+ - - -
# | obj0 | - - +------+ -
# | | | obj1 | | (line_overlap)
# +------+ - - | | -
# - - - +------+
#
# |<--->|
# (char_margin)
就是两个文本块,如果间隔小于line_overlap/char_margin,就会组成一个大的文本块
但是有个问题,就是他的obj排序经常无法保证两个位置上属于同一个大的文本块的文本在相邻位置,所以我改进了一下算法
先对objs 的y值(因为要解析的文本都是水平的)进行归并,两个obj的y值距离<line_overlap就算一行,然后按照x值排序,这样基本上能保证水平文本解析正常
现在的问题就是怎么比较快的对y值进行归并,总结一下问题
有一个数组y1,y2,...yn,合并成k组,使得每组里,任何两个值的距离小于一个给定值
--
FROM 27.19.16.*
既然是水平的,还是顺序扫描的话,直接下一个和上一个比较y就是了,小于就是一行,大于就是另一行。
除非你是乱序扫描。应该不是吧
【 在 qlogic 的大作中提到: 】
: 做pdf文件解析
: python的pdf解析工具pdfminer有点问题,基本思路是读出文本块,然后比较相邻的文本块obj0,obj1
:
: ...................
--来自微微水木3.5.12
--
FROM 140.206.195.*
空间问题,上四叉树?
【 在 qlogic 的大作中提到: 】
: 做pdf文件解析
: python的pdf解析工具pdfminer有点问题,基本思路是读出文本块,然后比较相邻的文本块obj0,obj1
: # halign: obj0 and obj1 is horizontally aligned.
: ...................
--
FROM 116.23.163.*
说了,pdfminer获得的文本块相邻的不在objs数组相邻,所以要先按y归并,再按照x排序
,
【 在 KillnCov 的大作中提到: 】
: 既然是水平的,还是顺序扫描的话,直接下一个和上一个比较y就是了,小于就是一行
: ,大于就是另一行。
: 除非你是乱序扫描。应该不是吧
: --来自微微水木3.5.12
: ...................
--
修改:qlogic FROM 27.19.16.*
FROM 27.19.16.*
那就先按y排序呗,上聚类算法有点大材小用。
【 在 qlogic 的大作中提到: 】
: 说了,pdfminer获得的文本块相邻的不在objs数组相邻,所以要先按y归并,再按照x排序
: ,
:
: ...................
--来自微微水木3.5.12
--
FROM 140.206.195.*
machine learning里的k means聚类啥玩意的,无须训练,直接用
【 在 qlogic 的大作中提到: 】
: 做pdf文件解析
: python的pdf解析工具pdfminer有点问题,基本思路是读出文本块,然后比较相邻的文本块obj0,obj1
: # halign: obj0 and obj1 is horizontally aligned.
: ...................
--
FROM 221.218.139.*