Skip to main content

📄 pdf2seg

Tokenizer-free PDF segmentation using OCR and span-aware text chunking.

pdf2seg processes scanned or embedded-text PDFs using EasyOCR and spaCy, segmenting raw text into semantically relevant spans—no tokenizers, sentence splitters, or fixed rules required.


🚀 Features

  • Tokenizer-Free Chunking – no subword vocabularies or fragile heuristics
  • OCR-Agnostic – supports scanned PDFs with diagrams, math, or multilingual text
  • Span-Aware Segmentation – uses spaCy syntax and entropy-minimized sampling
  • Checkpointing & Resume Support – deterministic processing saved to hash.json
  • Rich Console UI – interactive UV-style bars powered by rich

📦 Installation

Install from PyPI:

pip install pdf2seg

Or with UV:

uv pip install pdf2seg

🧪 Quick Usage

pdf2seg -i paper.pdf -o data/

📁 Output:

data/
|── <hash>/
|   |── <hash>-p000.png  ← rendered page
|   |── <hash>-p000.txt  ← OCR result
|   |── <hash>.json      ← processing manifest
|── <hash>.csv           ← segmented spans

🧬 Internals

Under the hood, pdf2seg performs:

  1. PDF-to-image conversion (pdf2image)
  2. OCR with easyocr
  3. Sentence splitting + span grouping with spacy
  4. Filtering + export to CSV
  5. Manifest updates for resumability

You can inspect the span cutoff logic, filters, or tweak the entropy mode in __init__.py.


🧩 Future Plans

  • Modality tagging (code vs prose vs formulae)
  • Math-aware OCR fallback (e.g. Im2LaTeX)
  • Stream-aware recomposition
  • Standalone hash-viewer web demo

🔖 License

MIT License © 2025 Rawson, Kara
Project: p3nGu1nZz/pdf2seg


If you use or reference this software in an academic publication or project, please consider citing it using the following BibTeX entry:

@software{rawson2025pdf2seg,
  author       = {Rawson, Kara},
  title        = {pdf2seg: Tokenizer-Free PDF Segmentation with OCR and Span-Aware Chunking},
  year         = {2025},
  version      = {1.0.1},
  url          = {https://github.com/p3nGu1nZz/pdf2seg},
  note         = {Python package available at PyPI: https://pypi.org/project/pdf2seg/}
}

👁 See Also

Metadata

Release files for pdf2seg 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pdf2seg 1.0.2
File Size Uploaded
pdf2seg-1.0.2.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pdf2seg 1.0.2
File Interpreter ABI Platform
pdf2seg-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / pdf2seg-1.0.2.tar.gz

Download URL pdf2seg-1.0.2.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
786a345acb52bcdc697ace69c46a24409478f43cc1cb70ead7e26106569b2759
BLAKE2b-256 checksum
How to use checksums
3cf354be42c164aba03573e3e1526f7bafdb0d346cae9e9743dae53e77be30b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release files / pdf2seg-1.0.2-py3-none-any.whl

Download URL pdf2seg-1.0.2-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7cd911182ce507326596879015c5a2fddf8269be1a304992350e139de24ab713
BLAKE2b-256 checksum
How to use checksums
737765cd1637926f7e07dc17a222f5ee80a527aa6c14141e0690256f6d9911b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page