CoolFace
Datasetpublic

echodict/typst_hlm

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes1kdownloads
lines.py72 linesDownload Raw Back to root
1 2# 不要了,改成原地加换行空格标点符号 see exinfo.py3 4if __name__ == '__main__':5 6    import glob7    import os8    import json9    import numpy as np10    from pathlib import Path11    chs = glob.glob('data/ch*', recursive=False)12    m5s = {}13    for i, pth in enumerate(chs):14        pth = pth.replace('\\', '/')15        parts = pth.split('/')16        chapter = parts[1]17        18        out2 = f'data/{chapter}/out2'19 20 21        with open(f"{out2}/page_texts.json", "r", encoding='UTF-8') as fp:22            page_texts = json.load(fp)23 24        with open(f"{out2}/pageIds_pageNames.json", "r", encoding='UTF-8') as fp:25            pageIds_pageNames = json.load(fp)26 27        boxs = glob.glob(f"{out2}/*.boxs", recursive=False)28 29        last_x = -130        new_line = False31        lines = []32        line = []33        for j, pt in enumerate(boxs):34            pt_lines = pt.replace('.boxs', '.lines')35            with open(pt, "r", encoding='UTF-8') as fp:36                box = json.load(fp)37 38            for bx in box:39                charPoly = bx["charPoly"]40                lu = [charPoly["x0"], charPoly["y0"]]41                ru = [charPoly["x1"], charPoly["y1"]]42                rd = [charPoly["x2"], charPoly["y2"]]43                ld = [charPoly["x3"], charPoly["y3"]]44                width = max(ru[0], rd[0]) - min(lu[0], ld[0])45                height = max( ld[1], rd[1] ) - min(lu[1], ru[1])46                points = np.array([lu, ru, rd, ld])47 48                if last_x == -1:49                    last_x = lu[0]50                else:51                     x_diff = abs(lu[0] - last_x)52                     if x_diff > int(width / 2):53                        new_line = True54                55                if new_line:56                    lines.append(line)57                    line = []58                    new_line = False59 60                line.append(bx)61                62                63                last_x = lu[0]64 65 66            with open(pt_lines, 'w', encoding='utf-8') as fp:67                json.dump(lines, fp, indent=4, ensure_ascii=False)68            69            print(f"box {j+1} / {len(boxs)}")70 71        print(f"{chapter}  {i+1} / {len(pths)}")72