From a3a83e56774926d762711c3ad26acf5e486f4051 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Fri, 8 May 2026 00:03:37 +0200 Subject: [PATCH] fix: Section classifier strips leading numbers + recognizes German headings - "5. Soziale Medien" now stripped to "soziale medien" before classification - Added "soziale medien/netzwerke" as social_media heading pattern - Fixes etogruppe.com where Social Media section wasn't detected Co-Authored-By: Claude Opus 4.6 (1M context) --- backend-compliance/compliance/api/agent_doc_check_routes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend-compliance/compliance/api/agent_doc_check_routes.py b/backend-compliance/compliance/api/agent_doc_check_routes.py index 03de912..2569628 100644 --- a/backend-compliance/compliance/api/agent_doc_check_routes.py +++ b/backend-compliance/compliance/api/agent_doc_check_routes.py @@ -327,7 +327,7 @@ SECTION_TYPE_MAP = [ (r"^(?:agb|allgemeine geschäftsbedingungen|nutzungsbedingungen)$", "agb"), # DSFA MUST be checked BEFORE social_media (both can contain "Social Media") (r"datenschutzfolge|dsfa|risikoanalyse", "dsfa"), - (r"^social\s*media$", "social_media"), # Standalone heading "Social Media" = DSE + (r"^social\s*media$|^soziale\s+(?:medien|netzwerke)$", "social_media"), (r"datenschutzerkl(?:ae|ä)rung.*social|datenschutz\s+f(?:ue|ü)r\s+social", "social_media"), ] @@ -415,6 +415,8 @@ def _classify_section(heading: str) -> str | None: """Classify a section heading into a document type.""" import re as _re heading_lower = heading.lower().strip() + # Strip leading numbers/bullets: "5. Soziale Medien" → "soziale medien" + heading_lower = _re.sub(r"^[\d\.\)\-]+\s*", "", heading_lower).strip() # Skip known sub-sections if heading_lower in SKIP_HEADINGS: return None