sundeep-news-scan/scratch_py/_synth_walk.py

19 lines
1.1 KiB
Python

import sys
sys.path.insert(0,".")
import smart_extractor as se
# pitch ~ 700. Banner spans cols 1-2 (x 0..1500). Article band y 0..2000.
R=[
{"id":1,"type":"doc_title","bbox":[0,0,1500,150],"confidence":0.9}, # banner (cols1-2)
{"id":2,"type":"text","bbox":[0,200,700,2000],"confidence":0.9}, # col1 body (has dateline)
{"id":3,"type":"text","bbox":[760,200,1460,2000],"confidence":0.9}, # col2 body
{"id":4,"type":"text","bbox":[1520,200,2220,2000],"confidence":0.9}, # col3 CONTINUATION (no dateline)
{"id":5,"type":"paragraph_title","bbox":[1520,200,2120,260],"confidence":0.9}, # col3 subhead
]
# dateline only in col1 body (region 2)
ds=[{"region_id":2,"bbox":[0,200,700,260],"headline_region":1}]
bl=se.cluster_all_article_blocks(R,dateline_starts=ds,sep_lines=[])
for b in bl:
print(b["kind"],"anchor",b["anchor_id"],"members",sorted(b["members"]),"bbox",b["bbox"])
assert any(b["anchor_id"]==1 and 4 in b["members"] and 5 in b["members"] for b in bl), "col3 NOT absorbed"
print("\nPASS: col3 (regions 4,5) absorbed into banner block anchor=1")