# PDF Segmentation Application # About Document segmentation is the process of breaking a digital (or digitized) document into its constituent parts-- for example, splitting a scanned library catalog into individual records. Segmentation is a vital step in many digital humanities projects. Data are often trapped in PDF scans or photographs of materials that are not machine-actionable. Most OCR tools do _some_ degree of layout analysis, but those tools do not allow enough customization in the layout analysis process for them to be useful-- for example, they may find the paragraph boundaries but fail detect when a new "meaningful unit" of content occurs. This application is a browser-based tool for segmenting non-OCRed PDFs into individual, machine-readable text files. It takes advantage of the huge role whitespace plays in human understanding of a page of text, walking the user through creating custom _rules_ about which bits of whitespace indicate a meaningful break in content, then acting on those rules to automate the separation of even very long documents. This software was developed from Summer 2022-Spring 2023 as part of my dissertation project “Network Visualization and the Labor of Reference Work: Three Case Studies touching Medieval and Early-Modern Book History”

## License This software is released under a GNU General Public License v3.0. See `LICENSE` for details. ## Credit # Getting Started ## Requirements - Docker - A web browser -- tested with Firefox and Chrome, your mileage may vary with other browsers. ## Installation - Clone this repository, or download and unzip the code in a location of your choosing - Open a terminal/command prompt and navigate to this repository - Run the command `docker compose up` - In your browser, navigate to http://127.0.0.1:5000/ # User Guide See the repository [wiki](https://github.com/lizfischer/document-segmentation/wiki/User-Guide) for a guide to using the tool. # Accuracy Preliminary ground-truth testing using inputs from four different source documents indicates this whitespace-based method of segmentation performs on average 57% better than textual pattern recognition (through regular expressions) alone. | | Regex Only | Whitespace Segmentation | | --------- | ---------- | ----------------------- | | Precision | 45.12% | 91.67% | | Recall | 75.51% | 86.27% | | F1 | 56.49% | 88.89% |