Add Docling corpus pipeline, retrieval evaluation and hybrid search with reranking

- prepare_corpus.py: split double-page scans (split_spreads.py), re-OCR with
  OCRmyPDF/Tesseract only where the existing text layer is worse, Docling
  layout extraction with heading hierarchy, QA report per PDF
- docling_loader.py: cleanup (margin noise, split paragraphs, footnote marks,
  OCR comma/period repair), page mapping back to the original PDF, chunk
  headers with author, title and section
- local_rag.py: bge-m3 embeddings, configurable chunking and loader, index
  settings check (index_info.json), hybrid/union BM25 search with Reciprocal
  Rank Fusion and bge-reranker-v2-m3 cross-encoder; query instruction text
  removed after it lowered recall
- eval_retrieval.py: CLI options, same retrieval path as the chat, tolerant
  file name matching; goldsets and evaluation reports for the Kafka corpus
- grobid_test.py, grobid_qa.py, extract_docling.py, compare_extractors.py:
  extractor tests and quality checks
- .gitignore: corpus PDFs, vector stores and extractor output stay local
- server.py: uses ./vectorstore_docling_hdr

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 16:48:12 +02:00
co-authored by Claude Opus 5.5
parent 7d70169ee3
commit d54b3e5b8b
49 changed files with 5007 additions and 75766 deletions
+58
View File
@@ -0,0 +1,58 @@
====================================================================
Retrieval-Auswertung — 2026-10-07 15:57
====================================================================
Konfiguration
Vektorspeicher ./vectorstore_docling_hdr
Embedding-Modell BAAI/bge-m3
Chunk-Größe 1500 (Overlap 300)
Query-Zusatztext aus
Suche dense, Reranker BAAI/bge-reranker-v2-m3
Seitentoleranz ±1
Fragen 30
Ergebnis
Recall@5 0.63 (19 von 30)
Recall@10 0.63 (19 von 30)
Recall@20 0.70 (21 von 30)
MRR 0.56
Nach Korpus
primär Recall@5 0.00 MRR 0.02 (4 Fragen)
sekundär Recall@5 0.73 MRR 0.64 (26 Fragen)
Einzelne Fragen (Rang = Position des ersten korrekten Treffers)
Rang 1 sekundär Wie stand Kafkas Familie seiner literarischen Tätigkeit nach Kafkas Tod gegenüber?
Rang 1 sekundär In welchem Band von Jacob Burckhardts Griechischer Kulturgeschichte gibt es ein eigenes Kapitel über Metamorphosen?
Rang 1 sekundär In welchem Zusammenhang stehen körperlicher Ekel und Selbstdemütigung in "Die Verwandlung"?
Rang 1 sekundär Was kann als "letzte Sohnespflicht" Gregors gedeutet werden?
Rang 1 sekundär Wie heißen die beiden Nichten von Kafka?
Rang 1 sekundär Welche Sprache spricht Kafka mit seinen Nichten?
Rang 1 sekundär Inwiefern sind die Namen Kafka und Samsa aufeinander abgestimmt?
Rang 1 sekundär Was bedeutet das tschechische Wort "Kafka" auf Deutsch?
Rang 1 sekundär Welche Art von Laden führte Kafkas Vater?
Rang 1 sekundär Welche Namen vergleicht Ingeborg Bachmann in ihrem Essay hinsichtlich der Namensgebung?
Rang 1 sekundär Wie interpretiert Emrich das Besondere an der Kafkaschen Form?
Rang 1 sekundär In welchem Band der Reihe "Der jüngste Tag" wurde "Die Verwandlung" veröffentlicht?
Rang 1 sekundär Seit wann lag "Die Verwandlung" abgeschlossen vor, ohne veröffentlicht zu sein?
Rang 1 sekundär Wie könnte man Kafkas ethischen Rigorismus korrigieren?
Rang 1 sekundär Welche Erzählung von Franz Kafka ist der Gattung der Großstadterzählung beziehungsweise Großstadtnovelle zuzuordnen?
Rang 2 sekundär Wo erfahren die Eltern die Nachricht von Gregors Tod?
Rang 2 sekundär Aus welchem sozialen Milieu stammte Kafkas Vater genau?
Rang 3 sekundär Was kann man zu Formen der Gestik und Mimik in Kafkas Werken sagen?
Rang 4 sekundär Wie erklärt Binder die Etymologie des Familiennamens Kafka?
Rang 11 primär In welche Art von Tier verwandelt sich Gregor Samsa?
Rang 19 sekundär Sprach Kafka Tschechisch?
Rang – sekundär Was sagen die Aussagen seines Vorgesetzten über Gregors berufliche Leistung aus?
Rang – sekundär Inwiefern steht Gregors Selbstwahrnehmung seiner beruflichen Leistung im Widerspruch zu den Aussagen seines Vorgesetzten?
Rang – sekundär Was kann man zu Bildformen in Kafkas Werken sagen?
Rang – sekundär Wie können die drei Untermieter der Familie Kafka aus einer biblischen Perspektive gedeutet werden?
Rang – sekundär Wie kann das Bild der eleganten Dame in Gregors Zimmer gedeutet werden?
Rang – sekundär Welche Art von Helden in einer Gesellschaft zeichnet Kafka in seinen Geschichten?
Rang – primär Wer ist der Protagonist von "Die Verwandlung"?
Rang – primär Unter welchen Umständen wird Gregor am Ende der Erzählung von seiner Familie aufgefunden?
Rang – primär Wie verändert sich Gregors Verhältnis zu seiner Familie im Verlauf der Erzählung?
9 Frage(n) ohne Treffer unter den ersten 20.
Prüfen: Steht die Fundstelle wirklich dort? Stimmt der Dateiname?
Ist das Dokument überhaupt im Index (rag.list_documents())?