27 lines
1.4 KiB
Python
27 lines
1.4 KiB
Python
import sys, types; sys.modules.setdefault("fitz", types.ModuleType("fitz"))
|
|
import os, tempfile, json
|
|
tempfile.tempdir = os.path.abspath("_tess_tmp"); os.environ["TMPDIR"]=tempfile.tempdir
|
|
os.makedirs("_tess_tmp", exist_ok=True)
|
|
from pathlib import Path
|
|
import smart_extractor as se
|
|
from _lines import separator_barriers
|
|
RUN = Path("output/Sakshi_Jangaon_District_20260520_20260609_210104")
|
|
png = str(RUN/"pages/page_001.png")
|
|
regions = json.loads((RUN/"pages/page_001.regions.json").read_text())["regions"]
|
|
regions = se.dedup_overlapping_regions(regions)
|
|
regions = se.merge_stacked_title_lines(regions, png)
|
|
regions = se.drop_masthead_regions(regions, "sakshi", 1, png)
|
|
regions = se.promote_paragraph_titles(regions, png, "sakshi")
|
|
dls = se.find_article_starts_by_dateline(regions, png, "sakshi")
|
|
seps = separator_barriers(png, regions)
|
|
blocks = se.cluster_all_article_blocks(regions, dls, sep_lines=seps)
|
|
rmap = {r['id']:r for r in regions}
|
|
for b in blocks:
|
|
if b['anchor_id']==71:
|
|
print("BLOCK:", {k:v for k,v in b.items() if k!='members'})
|
|
print("members:")
|
|
for m in sorted(b['members']+[b['anchor_id']], key=lambda m: rmap[m]['bbox'][1] if m in rmap else 0):
|
|
r = rmap.get(m)
|
|
print(" ", m, r['type'] if r else '?', r['bbox'] if r else '?')
|
|
json.dump({'blocks':[{'anchor':b['anchor_id'],'kind':b['kind'],'bbox':b['bbox'],'members':b['members']} for b in blocks]}, open('/tmp/blocks71.json','w'))
|