Explorer
/proc/58/root/tmp/fast-one-51.json
← Zurück ↓ Download
{"queue_id": 51, "relative_path": "Solutions/REGEL_04_SOURCE_SUFFIX_FIX_REPORT.md", "title": "REGEL_04_SOURCE_SUFFIX_FIX_REPORT", "import_key": "08c6e12ba96f1f5f476e8fc601e4db3b3b2c8d80d737fd95bcd4f167e6beb9e5", "chunk_count": 15, "created_nodes": 16, "created_relationships": 29, "body": null, "chunks": [{"chunk_key": "e40123d44672a6678439f691f8853e3cbe0b25ea5af147fb4612dfa40b9a2d2f", "chunk_index": 0, "heading": "REGEL_04_SOURCE_SUFFIX_FIX_REPORT", "text": "# REGEL_04_SOURCE_SUFFIX_FIX_REPORT\nMallorca-Bonus aus Publisher-Suffix entfernt — minimale Aenderung, gezielter Rescore\nDatum: 2026-05-28 | Status: Abgeschlossen | Testergebnis: 18/18 PASS\n\n---", "text_hash": "7cec88151a9dab2c774d7517166e8f13d26fbeab381ebfd92ad39c43a94051c0"}, {"chunk_key": "db5d550a7226df306bacc6398e10fa860e2454f21295eededd16492f3b374b76", "chunk_index": 1, "heading": "Backup-Pfad", "text": "-Bonus aus Publisher-Suffix entfernt — minimale Aenderung, gezielter Rescore\nDatum: 2026-05-28 | Status: Abgeschlossen | Testergebnis: 18/18 PASS\n\n---\n## Backup-Pfad\n\n```\n/opt/struktur/social-media-radar/classification/signal_classifier.py.bak.regel04\n```\n\nRollback:\n```bash\ncp /opt/struktur/social-media-radar/classification/signal_classifier.py.bak.regel04 \\\n   /opt/struktur/social-media-radar/classification/signal_classifier.py\npython3 /opt/struktur/social-media-radar/rescore.py --live\n```\n\n---", "text_hash": "ecccddb0053e570f01b499113df8b5a2e4a4d13b634cf9a93ac8d526a15605b4"}, {"chunk_key": "e58e602bd3a3c012c740a8628bc8cb3a4e59999300dff0b5495d2a402e78c628", "chunk_index": 2, "heading": "Geaenderte Code-Stellen", "text": ".regel04 \\\n   /opt/struktur/social-media-radar/classification/signal_classifier.py\npython3 /opt/struktur/social-media-radar/rescore.py --live\n```\n\n---\n## Geaenderte Code-Stellen\n\n**Einzige geaenderte Datei:** `signal_classifier.py`", "text_hash": "a1c3ddaf7faa9d3ad4c209b514eeb9f77b36b880727771c6dd35457f4f07063a"}, {"chunk_key": "65de121856d45c52d05dc6bc36e151108714a4871df04360b44406ea896c08ca", "chunk_index": 3, "heading": "Aenderung 1: Neue Hilfsfunktion `_geo_text()` (nach `_hours_old()`)", "text": "## Geaenderte Code-Stellen\n\n**Einzige geaenderte Datei:** `signal_classifier.py`\n### Aenderung 1: Neue Hilfsfunktion `_geo_text()` (nach `_hours_old()`)\n\n```python\ndef _geo_text(text: str) -> str:\n    \"\"\"\n    SOL-006 REGEL-04: Source-Suffix-Entfernung fuer Geo-Erkennung.\n\nWenn GEO-Keywords ausschliesslich im Publisher-Suffix stehen\n    (nach letztem ' - ', Suffix <= 40 Zeichen), wird der Suffix\n    aus dem Geo-Text entfernt. Alle anderen Keyword-Hits bleiben unveraendert.\n\nBedingungen fuer Suffix-Entfernung (alle muessen zutreffen):\n      - Letzter ' - ' Separator vorhanden\n      - Suffix-Laenge <= 40 Zeichen (Quellenname, kein Satz)\n      - Suffix enthaelt ein GEO-Keyword (mallorca/majorka/baleares/balearen)\n      - Content VOR dem Separator enthaelt KEIN GEO-Keyword\n    \"\"\"\n    _GEO_MAIN = ('mallorca', 'majorka', 'baleares', 'balearen')\n    t_lower = text.lower()\n    idx = t_lower.rfind(' - ')\n    if idx == -1:\n        return text\n    suffix = t_lower[idx + 3:]\n    if len(suffix) > 40:\n        return text\n    if not any(kw in suffix for kw in _GEO_MAIN):\n        return text\n    content = t_lower[:idx]\n    if any(kw in content for kw in _GEO_MAIN):\n        return text  # Mallorca auch im Content -> Bonus bleibt\n    return text[:idx]  # Original-Gross-/Kleinschreibung erhalten\n```", "text_hash": "5bf95c29bf9c5404c2906a0fa5d5f779a1a3e0ac7ba7cd26de8a7808b9eeb1a3"}, {"chunk_key": "cba27123fc5ff8f24263cb053e79b774820c186b7cde425ede8ad73dd7f1516d", "chunk_index": 4, "heading": "Aenderung 2: `_gtext` in `score_signal()` (nach `t = text.lower()`)", "text": "w in _GEO_MAIN):\n        return text  # Mallorca auch im Content -> Bonus bleibt\n    return text[:idx]  # Original-Gross-/Kleinschreibung erhalten\n```\n### Aenderung 2: `_gtext` in `score_signal()` (nach `t = text.lower()`)\n\n```python\n    t = text.lower()\n\n# SOL-006 REGEL-04: Geo-Erkennung auf Source-Suffix-bereinigten Text anwenden\n    _gtext = _geo_text(text)\n\n# STEP 1: KEYWORD COUNTS\n    main_geo  = _hits(_gtext, GEO_KEYWORDS_MAIN)    # war: _hits(text, ...)\n    spec_geo  = _hits(_gtext, GEO_KEYWORDS_SPECIFIC) # war: _hits(text, ...)\n```\n\n**Alle anderen Zeilen unveraendert.** Core-, Prop-, Weather-, Risk- und alle anderen Keyword-Hits weiterhin auf vollem `text`.\n\n---", "text_hash": "6e450e31540d1a44dab75b71fa3d7aeb9e6408e35bb4e165f50f21275b8325cb"}, {"chunk_key": "323ce1f187fb6404469f06e9307b5e9e5b10b8a1c165a22829204bbd6900298b", "chunk_index": 5, "heading": "Testergebnisse", "text": "ts(text, ...)\n```\n\n**Alle anderen Zeilen unveraendert.** Core-, Prop-, Weather-, Risk- und alle anderen Keyword-Hits weiterhin auf vollem `text`.\n\n---\n## Testergebnisse\n\n**18/18 PASS**", "text_hash": "7c91d50fcf1c99711fe7436d5a1ca35ad627ddad25c84de1122290b914791dbb"}, {"chunk_key": "415baf43c738e9c2c6d291c92bb108d94d26b4b98fc3b15c071b317e46dd38f0", "chunk_index": 6, "heading": "Unit-Tests: `_geo_text()`", "text": "## Testergebnisse\n\n**18/18 PASS**\n### Unit-Tests: `_geo_text()`\n\n| # | Test | Ergebnis |\n|---|------|----------|\n| TC-U1 | Source-Suffix gestrippt (\"... - Diario de Mallorca\") | PASS |\n| TC-U2 | Mallorca im Content -> kein Strip | PASS |\n| TC-U3 | Mallorca Zeitung Suffix gestrippt | PASS |\n| TC-U4 | Kein Separator -> kein Strip | PASS |\n| TC-U5 | Suffix > 40 Zeichen -> kein Strip | PASS |\n| TC-U6 | Suffix ohne Geo-Keyword -> kein Strip | PASS |\n| TC-U7 | Baleares im Suffix gestrippt | PASS |\n| TC-U8 | Baleares im Content + Mallorca im Suffix -> kein Strip | PASS |", "text_hash": "129cdd127100010659a99c881df17c7035091d2a46afabdfbb53cf5b5c4f8152"}, {"chunk_key": "45070ce1394b200e50517592dd98a80da10d407b49a0bb421b6fc62cb1826a04", "chunk_index": 7, "heading": "Integrations-Tests: `score_signal()`", "text": "yword -> kein Strip | PASS |\n| TC-U7 | Baleares im Suffix gestrippt | PASS |\n| TC-U8 | Baleares im Content + Mallorca im Suffix -> kein Strip | PASS |\n### Integrations-Tests: `score_signal()`\n\n| # | Test | Ergebnis | Score-Aenderung |\n|---|------|----------|----------------|\n| TC-I1 | Diario-Suffix -> geo_main=0 | PASS | 68 -> 42 |\n| TC-I1 | Diario-Suffix -> mallorca_bonus<25 (spec_geo Inca ok) | PASS | mal_bonus 29->19 |\n| TC-I1 | mallorca_relevance<25 (spec_geo Inca bleibt) | PASS | 29->19 |\n| TC-I2 | Mallorca im Content -> geo_main>=1 unveraendert | PASS | 65 -> 65 |\n| TC-I2 | mallorca_relevance > 0 | PASS | unveraendert |\n| TC-I3 | Mallorca Zeitung Suffix -> geo_main=0 | PASS | 64 -> 5 |\n| TC-I4 | Echter Mallorca-Titel -> geo_main>=1 | PASS | unveraendert |\n| TC-I4 | mallorca_relevance>=25 | PASS | unveraendert |\n| TC-I5 | Mallorca im Content + Suffix -> geo_main>=1 | PASS | unveraendert |\n| TC-I5 | mallorca_relevance>=25 | PASS | unveraendert |\n\n**Hinweis TC-I1:** \"La biblioteca de Es Pont d'**Inca**...\" — \"inca\" ist in GEO_KEYWORDS_SPECIFIC (Inca = Mallorca-Gemeinde). spec_geo=1 bleibt korrekt aktiv. main_geo=0 (kein falscher Mallorca-Bonus aus Suffix). Bonus geht von 29 auf 19 — reduziert, aber nicht null. Korrekt.\n\n---", "text_hash": "cd7b178627e8f6df684be2b1b798d5734ab2411ad73de3d071d19866c491bf9a"}, {"chunk_key": "f81ea125d0dac8a3af3143b7d3bfae68c1eafa21ad60e62c50860474f2a3c1ac", "chunk_index": 8, "heading": "Rescore-Ergebnis", "text": "geo=1 bleibt korrekt aktiv. main_geo=0 (kein falscher Mallorca-Bonus aus Suffix). Bonus geht von 29 auf 19 — reduziert, aber nicht null. Korrekt.\n\n---\n## Rescore-Ergebnis\n\n**`rescore.py --live` ausgefuehrt auf allen 341 Signalen.**", "text_hash": "63cd13e1d5eed1e5d5891fa99091b9cfb0875b685eaf9a47a6f934198d63e642"}, {"chunk_key": "0a98a1f8aa6d4654edca92f95cb8dd6a6a8ff6e7945d9baec41ca53f057e6577", "chunk_index": 9, "heading": "Score-Verteilung vor/nach", "text": "## Rescore-Ergebnis\n\n**`rescore.py --live` ausgefuehrt auf allen 341 Signalen.**\n### Score-Verteilung vor/nach\n\n| Level | Vorher | Nachher | Aenderung |\n|-------|--------|---------|-----------|\n| irrelevant (<=30) | 2 | 34 | +32 |\n| beobachten (31-50) | 290 | 267 | -23 |\n| interessant (51-69) | 47 | 38 | -9 |\n| operativ (70+) | 2 | 2 | 0 |\n| **Gesamt** | **341** | **341** | — |\n\n**Operativ-Signale unveraendert (2).** Kein operatives Signal verloren.\n\nScore-Durchschnitt: 39.9 → 36.4 (-3.5 Punkte)\n\n---", "text_hash": "778e82c2c8e067f14965240929c1b53b3326309eb18cc04ada452e49c0dac5a7"}, {"chunk_key": "e156a032f0f267e6cb05112749415856b09b62b7bbedadb84976956c82684362", "chunk_index": 10, "heading": "Anzahl Signale mit reduziertem Mallorca-Bonus", "text": "| **341** | **341** | — |\n\n**Operativ-Signale unveraendert (2).** Kein operatives Signal verloren.\n\nScore-Durchschnitt: 39.9 → 36.4 (-3.5 Punkte)\n\n---\n## Anzahl Signale mit reduziertem Mallorca-Bonus\n\n**Gesamt Source-Suffix-Signale: 49**\n\n| Ergebnis nach Rescore | Anzahl |\n|-----------------------|--------|\n| mallorca_relevance=0 (Bonus vollstaendig entfernt) | 32 |\n| mallorca_relevance>0 via spec_geo (Ort im Content) | 9 |\n| mallorca_relevance>0 RSS-Artefakt (unveraendert) | 8 |\n| **Gesamt** | **49** |\n\n**Score-Verteilung der 49 nach Rescore:**\n\n| Score-Level | Anzahl |\n|-------------|--------|\n| > 50 (interessant) | 1 |\n| 35-50 (beobachten) | 16 |\n| < 35 (irrelevant) | 32 |", "text_hash": "9ed13ef6d4d7638793c5f55995ce52ea6c2f8ca461e88639cbf14ead21e771be"}, {"chunk_key": "55c55c6696794e2275ee7c53bb9cb0b96eba2a85e9ad14783ffbfdfda3aa7ee2", "chunk_index": 11, "heading": "Groesste Score-Reduktionen (Top 10)", "text": "9 nach Rescore:**\n\n| Score-Level | Anzahl |\n|-------------|--------|\n| > 50 (interessant) | 1 |\n| 35-50 (beobachten) | 16 |\n| < 35 (irrelevant) | 32 |\n### Groesste Score-Reduktionen (Top 10)\n\n| Signal (gekuerzt) | Score vorher | Score nachher | Delta |\n|-------------------|-------------|--------------|-------|\n| La humedad en el hogar, aliado silencioso... | 61.0 | 5.0 | -56 |\n| Humedad en ocho pisos de Cala Major | 61.0 | 5.0 | -56 |\n| La elevada humedad causa aparicion de setas | 61.0 | 5.0 | -56 |\n| Decepcionante primer dia de caza (Jagd) | 61.0 | 5.0 | -56 |\n| Juegos de mesa de los 90 (Brettspiele!) | 46.0 | 7.0 | -39 |\n| Locher statt Wohnungen (Goodbye DE) | 35.0 | 5.0 | -30 |\n| Richtig lufeten, daemmen und heizen | 35.0 | 5.0 | -30 |\n| Goodbye Deutschland-Auswanderin Tamara | 35.0 | 5.0 | -30 |\n| Como hacer que tus flores cortadas duren | 35.0 | 5.0 | -30 |\n| Historia maritima olvidada - Diario de Mall | 35.0 | 5.0 | -30 |\n\n---", "text_hash": "c941c61ad36cdd233c9985bca7299a5b8c917775a60680b2398b24ddef9a9444"}, {"chunk_key": "0b5765b674f50ec939fb2526f38b1119856668abb27bcafc3c67f199651390c1", "chunk_index": 12, "heading": "Spec-Geo-Faelle: Bonus korrekt teilweise erhalten (9 Signale)", "text": " | 5.0 | -30 |\n| Como hacer que tus flores cortadas duren | 35.0 | 5.0 | -30 |\n| Historia maritima olvidada - Diario de Mall | 35.0 | 5.0 | -30 |\n\n---\n## Spec-Geo-Faelle: Bonus korrekt teilweise erhalten (9 Signale)\n\nDiese 9 Source-Suffix-Signale haben spezifische Mallorca-Ortsnamen im Content-Teil\n(Palma, Manacor, Inca etc.) — der spec_geo-Bonus (15 Punkte) bleibt korrekt aktiv.\nNur der falsche main_geo-Bonus (25 Punkte aus Suffix) wurde entfernt.\n\n| Topic (gekuerzt) | Score | mal_rel |\n|-----------------|-------|---------|\n| Derrumbe mortal en Manacor (Palma-Kontext) | 43.0 | 19 |\n| La biblioteca de Es Pont d'Inca cerrada | 42.0 | 19 |\n| Ohne Tageslicht, voller Schimmel: Playa de Palma | 40.0 | 19 |\n| Trasteros subterraneos policia local de Palma | 40.0 | 19 |\n| Detenido en Manacor (anciana) | 35.0 | 19 |\n| Drama vivienda en Palma: familias en trasteros | 35.0 | 19 |\n| Nuevo barrio de moda en Palma | 35.0 | 19 |\n| Renato en Palma: Tengo trabajo pero chabola | 35.0 | 19 |\n| La denuncia grietas muro Villa Dragan de Palma | 45.0 | 29 |\n\n---", "text_hash": "4bd2619ca828d56864108b3888c9b788e0553388eee67fe07c656595f97891a2"}, {"chunk_key": "d56c2345435c03693feca1e7bcef1a8089210e9d4d517d91ac8e8ae9d4fd1334", "chunk_index": 13, "heading": "8 Google-News-RSS-Artefakt-Signale (unveraendert)", "text": "en Palma | 35.0 | 19 |\n| Renato en Palma: Tengo trabajo pero chabola | 35.0 | 19 |\n| La denuncia grietas muro Villa Dragan de Palma | 45.0 | 29 |\n\n---\n## 8 Google-News-RSS-Artefakt-Signale (unveraendert)\n\nDiese 8 Signale haben das Google News RSS-Muster: Quellenname erscheint im Summary-Text\nOHNE \" - \" Separator (plain text nach Artikel-Inhalt). Nach dem Titel-Suffix-Strip\nbleibt \"Mallorca\" im Summary → main_geo=1 aus Summary → Bonus unveraendert.\n\n| Score | Topic (gekuerzt) | Verhalten |\n|-------|-----------------|-----------|\n| 64.0 | Wetter Llubi: 7-Tage-Prognose - Mallorca Zeitung | summary=\"...Mallorca Zeitung\" (kein Dash) |\n| 45.0 | La denuncia grietas muro Villa Dragan de Palma | summary enthaelt \"Palma\" -> aber spec_geo! |\n| 35.0 | Archiv. Nachrichten des Tages 25. Jan 2026 - Mallorca Magazin | summary=\"...Mallorca Magazin\" |\n| 35.0 | Uno de los chalets ilegales de Sant Jordi - Diario de Mallorca | summary=\"...Diario de Mallorca\" |\n| 35.0 | Construyen piscina en muro iglesia de Fornalutx - Diario... | summary=\"...Diario de Mallorca\" |\n| 35.0 | El Ayuntamiento ordena apuntalar edificio 170 viviendas | summary=\"...Diario de Mallorca\" |\n| 35.0 | Las fuertes lluvias provocan inundaciones en Selva | summary=\"...Diario de Mallorca\" |\n| 35.0 | Alberto Chicote restaurante cochino - Diario de Mallorca | summary=\"...Diario de Mallorca\" |\n\n**Status:** Bekannte Einschraenkung. Scores unveraendert. Kein Regressionspfad.\nOptionale Folgeanpassung: source_name-Parameter in score_signal() — separater Plan noetig.\n\n---", "text_hash": "9846cfef95e0eebd434d3c18401ef620decce3ee94941408d1608f702b6e3dcb"}, {"chunk_key": "4b9d8aaf57f46e952fb67dd08f1442b36803b85a29b748fafec1f3bde31961e7", "chunk_index": 14, "heading": "Fazit", "text": "chraenkung. Scores unveraendert. Kein Regressionspfad.\nOptionale Folgeanpassung: source_name-Parameter in score_signal() — separater Plan noetig.\n\n---\n## Fazit\n\nDer Fix ist minimal, zielgenau und ohne Kollateralschaden an genuinen Signalen:\n- Kein operatives Signal verloren\n- Kein genuines Mallorca-Content-Signal faelschlich degradiert\n- 32 Signale korrekt auf mallorca_relevance=0 gesetzt\n- spec_geo-Lokalkontext (Palma, Manacor, Inca etc.) bleibt in allen Faellen korrekt aktiv\n- 8 RSS-Artefakte bleiben als dokumentierte Restmenge — separater Fix-Pfad bei Bedarf\n\n---\n\n*Erstellt: 2026-05-28 | Autor: AG (Claude Sonnet 4.6)*\n*Tests: 18/18 PASS | Syntaxcheck: OK | Rescore: 341 Signale*", "text_hash": "708a5fbf41d8466bf4ac2f4f1b6fba4c2950c542c4edd8aa802d4806b49d994f"}], "elapsed_s": 0.048}