...pe_near(segments: List[Segment], k_shingle: int = 5, threshold: float = 0.85) -> None:
    """
    Simple near-duplicate: vergleicht nur gegen frühere Segmente im selben doc_id.
    Für große Mengen: später durch Index/LSH ersetzen.
    """
    by_doc: Dict[str, List[Segment]] = {}
    for s in segments:
        by_doc.setdefault(s.doc_id, []).append(s)

    for doc_id, segs in by_doc.items():
        p...