Academic document intelligent cleaning pipeline for AI for Science, ensuring MinerU parsed data meets LLM input standards
Project description
PorosData-Processor
Python Version License: CC BY 4.0
PorosData-Processor cleans MinerU-derived scientific document text for downstream LLM and data-mining workflows. It normalizes text without breaking LaTeX formulas, repairs OCR errors, cleans up citations and numbering, and optionally evaluates token efficiency.
Installation
pip install porosdata-processor
Optional extras:
# Token evaluation support
pip install "porosdata-processor[eval]"
# Streaming JSON parsing for large files
pip install "porosdata-processor[batch]"
Python 3.11+ is supported.
What The Package Does
- Cleans scientific text while preserving LaTeX formulas via a placeholder-based protect/restore mechanism (Shield).
- Normalizes whitespace, Unicode, citations, numbering, and repairs OCR errors.
- Provides a Python API for single-text processing.
- Provides a CLI for batch processing MinerU
*_content_list.jsonfiles. - Optionally computes token-efficiency statistics when
transformersis installed.
Python API
from processor import TextCleaner
cleaner = TextCleaner()
result = cleaner.clean("Recent studies 【1】 show α-phase stability.")
print(result)
Example output:
Recent studies ref[1] show \alpha-phase stability.
Custom pipeline example:
from processor import TextCleaner
cleaner = TextCleaner(
pipeline=[
"unicode_normalization",
"patterns_cleaning",
"normalize_whitespace",
]
)
result = cleaner.clean("Text with extra spaces")
print(result)
Optional evaluation mode:
from processor import TextCleaner
cleaner = TextCleaner.with_tokenizer_evaluation("gpt2")
result = cleaner.clean("Recent studies 【1】 show α-phase stability.", eval_mode=True)
print(result["processed_text"])
print(result["evaluation"]["overall"]["compression_rate"])
CLI Batch Processing
The CLI recursively scans the input directory for MinerU *_content_list.json files and writes cleaned JSON outputs plus processing_report.json to the output directory.
porosdata-processor cleaning \
--input-dir "data/Raw Database" \
--output-dir "data/Processed Database" \
--max-workers 4
PowerShell:
porosdata-processor cleaning `
--input-dir "data/Raw Database" `
--output-dir "data/Processed Database" `
--max-workers 4
Enable optional features:
porosdata-processor cleaning \
--input-dir "data/Raw Database" \
--output-dir "data/Processed Database" \
--enable-evaluation \
--max-workers 4
PowerShell:
porosdata-processor cleaning `
--input-dir "data/Raw Database" `
--output-dir "data/Processed Database" `
--enable-evaluation `
--max-workers 4
Script Entrypoints
For repository-level operations, use these two scripts:
scripts/run_processeddataset.sh: run full cleaning fromdata/Raw Databasetodata/Processed Databasescripts/run_rulesupplement.sh: run the rule-supplement governance flow and write iteration artifacts todata/Rule Supplement Database/<RUN_ID>
Common flags:
--input-dir: input directory containing MinerU outputs--output-dir: output directory for cleaned files--enable-evaluation: enable token-efficiency evaluation--max-workers: set the number of worker processes--force-reprocess: ignore existing outputs and re-run processing--memory-limit: memory limit in MB--log-level:DEBUG,INFO,WARNING, orERROR--heartbeat-seconds: emit runtime heartbeat logs every N seconds
Scope And Input Format
- Batch processing is designed for MinerU-generated JSON content lists, not for generic
JSONL,Parquet, orHDF5datasets. - The primary public API is
TextCleanerfor string-based cleaning and theporosdata-processorCLI for directory-based processing. - Commands such as
audit,evaluation, andrulegovernanceare also available from the CLI, and therulegovernancesubcommands are intended for internal data-governance workflows.
License
PorosData-Processor is released under the CC BY 4.0 License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file porosdata_processor-0.4.1.tar.gz.
File metadata
- Download URL: porosdata_processor-0.4.1.tar.gz
- Upload date:
- Size: 91.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0773205a70fbf422fd1ca2d27beb2f69db9024183bd5f1e64d3771b62941d14
|
|
| MD5 |
f78b7f7457572f536d399a173f743300
|
|
| BLAKE2b-256 |
de05f477957e9ae9e2c998e704961853ea3da0d81713a5e870bad0ee8d907be4
|
File details
Details for the file porosdata_processor-0.4.1-py3-none-any.whl.
File metadata
- Download URL: porosdata_processor-0.4.1-py3-none-any.whl
- Upload date:
- Size: 108.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7145294a827b9777e837c293419a50ed0d23d0330be04bd4d3f8e631bb65086
|
|
| MD5 |
703b646ceb4766368c9ad6f3423c40be
|
|
| BLAKE2b-256 |
3a98704e117811402130310d7c15ad446a9f78697d63d488d7672bb85161bf36
|