paperless-ngx nutzt zur Texterkennung tesseract-ocr über OCRmyPDF. Für tesseract-ocr gibt es dabei zwei unterschiedliche Arten von Texterkennungs-Trainingsdaten (tessdata_fast, tessdata_best). Wobei die standardmäßig im paperless-ngx Docker-Image installierten immer die bereitgestellten „tessdata_fast“-Trainingsdaten sind. Diese sind zügig, aber haben auch eine höhere Fehlerrate in der Erkennung.
Um für paperless-ngx „tessdata_best“ zu nutzen, empfiehlt sich eine ganz simple Lösung: Wir laden die Trainingsdaten herunter, legen sie in ein Verzeichnis unserer Wahl und mounten sie in den paperless-ngx Container an der jeweilig korrekten Stelle:
wget https://github.com/tesseract-ocr/tessdata_best/raw/main/deu.traineddata
wget https://github.com/tesseract-ocr/tessdata_best/raw/main/ukr.traineddata
wget https://github.com/tesseract-ocr/tessdata_best/raw/main/eng.traineddata
Und im docker-compose.yml:
services:
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- broker
- gotenberg
- tika
ports:
- "127.0.0.1:8000:8000"
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
- ./deu.traineddata:/usr/share/tesseract-ocr/5/tessdata/deu.traineddata
- ./ukr.traineddata:/usr/share/tesseract-ocr/5/tessdata/ukr.traineddata
- ./eng.traineddata:/usr/share/tesseract-ocr/5/tessdata/eng.traineddata
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
[...]
Nach einem simplen
docker compose up -d
ist die Änderung aktiv. Sie gilt nun für alle neu eingelesenen Dokumente bzw. wird auch zum Einsatz kommen, wenn für die Dokumente unter „Aktionen“ – „Erneut verarbeiten“ die Verarbeitung neugestartet wird.
