INNER CODE UNIT · Python

build_sections

Laurent00TT/PharosRAG · src/chunker/core.py:179

def build_sections(headings, doc_id, doc_end):
    """headings: [{idx, level, title, crumb}] in reading order -> section tree (idx ranges)."""
    sections = []
    for i, h in enumerate(headings):
        end = doc_end
        for j in range(i + 1, len(headings)):
            if headings[j]["level"] <= h["level"]:
                end = headings[j]["idx"]; break
        parent = next((headings[k]["idx"] for k in range(i - 1, -1, -1)
                       if headings[k]["level"] < h["level"]), None)
        sections.append(Section(
            sec_id=f"{doc_id}::s{h['idx']}", doc_id=doc_id, level=h["level"], title=h["title"],
            breadcrumb=h["crumb"], start_idx=h["idx"], end_idx=end,
            parent_sec_id=f"{doc_id}::s{parent}" if parent is not None else None))
    return sections


def _sentence_split(text, hi, lang):

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…