Drei Edge-Cases in der Anker-/Seiten-Verifikation (generative/agents/verifier.py), Qwen q4, 2. Durchgang (teils Vermutung, plausibel):
- A (HIGH) — Text vor erstem Marker:
_build_page_sections verwirft Text, der vor dem ersten [S. N]-Marker steht (Marker als Seiten-Footer). Zitate in diesem Bereich bekommen keine Embeddings → semantic + fuzzy liefern None.
- B (MED) — NBSP-Mismatch:
sync_anchors_from_body vergleicht Quotes per exaktem String; (NBSP aus PDF-Extraktion) vs. normales Space → derselbe Quote gilt als „neu" → Duplikat-Anker.
- C (MED) — degeneriertes
quote_clean: _fuzzy_find_page prüft len(quote) < 15 am Roh-String, matcht aber mit quote_clean; viel umgebender Whitespace/Sonderzeichen → 1-Zeichen-quote_clean → partial_ratio = 100 an beliebiger Stelle (False-Positive-Seite).
Fix-Richtung: führende Section vor erstem Marker mit Fallback-Seite behandeln; Unicode-NFKC-Normalisierung vor Quote-Vergleich; Längen-Filter auf quote_clean statt Roh-String messen.
Drei Edge-Cases in der Anker-/Seiten-Verifikation (
generative/agents/verifier.py), Qwen q4, 2. Durchgang (teils Vermutung, plausibel):_build_page_sectionsverwirft Text, der vor dem ersten[S. N]-Marker steht (Marker als Seiten-Footer). Zitate in diesem Bereich bekommen keine Embeddings → semantic + fuzzy liefernNone.sync_anchors_from_bodyvergleicht Quotes per exaktem String;(NBSP aus PDF-Extraktion) vs. normales Space → derselbe Quote gilt als „neu" → Duplikat-Anker.quote_clean:_fuzzy_find_pageprüftlen(quote) < 15am Roh-String, matcht aber mitquote_clean; viel umgebender Whitespace/Sonderzeichen → 1-Zeichen-quote_clean→partial_ratio= 100 an beliebiger Stelle (False-Positive-Seite).Fix-Richtung: führende Section vor erstem Marker mit Fallback-Seite behandeln; Unicode-NFKC-Normalisierung vor Quote-Vergleich; Längen-Filter auf
quote_cleanstatt Roh-String messen.