f160fc0fc5
duplicate_checker.py aktualisiert
...
- Dynamische Stopword-Erkennung entfernt, da sie zu aggressiv war. Häufige Wörter erhalten nun nur ein niedriges Gewicht.
- Score-Berechnung und Schwellenwerte (Thresholds) komplett neu kalibriert für bessere Balance und Treffsicherheit.
- "Domain-Gate" wieder eingeführt: Ein Domain-Match zählt nur dann stark, wenn auch eine minimale Namensähnlichkeit besteht.
- Golden-Rule und Interaktiver Modus beibehalten.
2025-09-05 07:34:23 +00:00
491254a84e
Feat: Matching-Logik mit gewichtetem Scoring & Interaktiv-Modus (v3.0)
...
Diese Version überarbeitet den Kern des Matching-Algorithmus grundlegend, um die Genauigkeit drastisch zu erhöhen und die manuelle Nachbearbeitung zu reduzieren. Die Änderungen basieren auf der Analyse eines umfangreichen Testdatensatzes und setzen die neue Philosophie des "großzügigen Matchens" von wirtschaftlichen Einheiten um.
Gewichtetes Namens-Scoring (TF-IDF):
- Einzigartige Namensbestandteile (z.B. "Warema") erhalten nun ein höheres Gewicht als generische Füllwörter (z.B. "Stadtwerke", "Gruppe").
- Dies löst das Problem von Fehlzuordnungen bei häufig vorkommenden, aber nicht-identifizierenden Begriffen und verbessert die Treffsicherheit bei unklaren Firmennamen signifikant.
Golden-Rule für exakte Namens-Matches:
- Eine Namensübereinstimmung von >98% führt zu einem sofortigen "Golden Match" mit einem sehr hohen Score.
- Damit wird verhindert, dass klare Treffer durch abweichende Signale (z.B. unterschiedliche URLs von Tochterfirmen) fälschlicherweise bestraft werden.
Optionaler Interaktiver Modus:
- Kann mit dem Flag --interactive gestartet werden.
- Bei uneindeutigen Ergebnissen, bei denen die Top-Kandidaten sehr ähnliche Scores haben, hält das Skript an und ermöglicht dem Benutzer die direkte Auswahl des korrekten Matches aus einer übersichtlichen Liste.
Überarbeitete Scoring-Formel:
- Die Gesamtbewertung wurde neu balanciert, um dem jetzt deutlich aussagekräftigeren Namens-Score mehr Gewicht zu verleihen.
2025-09-04 14:34:28 +00:00
7cf23759c0
duplicate_checker.py aktualisiert
2025-08-18 13:34:29 +00:00
b586bb3d65
duplicate_checker.py aktualisiert
2025-08-18 12:48:05 +00:00
7d07a52617
duplicate_checker.py aktualisiert
2025-08-18 12:27:31 +00:00
721cb39cb0
duplicate_checker.py aktualisiert
2025-08-18 12:11:35 +00:00
af2e60f93d
duplicate_checker.py aktualisiert
2025-08-18 11:32:37 +00:00
7d76a38cae
duplicate_checker.py aktualisiert
2025-08-18 08:39:27 +00:00
e916e4ebc1
feat(duplicate-checker): Quality-first++ – Domain-Gate, Location-Penalties, Smart Blocking (IDF-ligh
...
- Domain-Gate: Domain (100) zählt nur, wenn Name >= MIN_NAME_FOR_DOMAIN (70) ODER (City & Country) matchen
- Location-Penalties: City-Mismatch -30, Country-Mismatch -40 (nur wenn Felder befüllt)
- Name-Scoring: max(token_set, partial, token_sort) auf bereinigten Tokens (Stopwörter + City-Tokens)
- City-Bias-Guard: City-only Overlap -> Name-Score Cap auf 70
- Rare-Token-Check (IDF-light): Name-only-Matches brauchen seltenen Token-Overlap
- Weak-Threshold: 95, wenn weder Domain_used noch (City & Country) matchen
- Smart Blocking: Domain-Index -> seltenster Token -> Prefilter (partial>=70, Top 30, nur wenn seltenster Token im Kandidaten vorkommt)
- SerpAPI: nur für Matching-Accounts und nur wenn B/E leer; schreibt „Gefundene Website“ + „Serp Vertrauen“, Domain-100 nur bei Vertrauen=hoch
- Output: neue Spalten „Gefundene Website“, „Serp Vertrauen“, „Match“, „Score“, „Match_Grund“
- Writeback: SAFE (alle Originalspalten), interne Felder werden gedroppt + CSV-Backup
- Logging: Log/{timestamp}_duplicate_check_v2.15.txt, Summary-Metriken am Ende
2025-08-08 07:40:50 +00:00
56430d6838
duplicate_checker.py aktualisiert
2025-08-08 06:35:24 +00:00
96ba680cb9
duplicate_checker.py aktualisiert
2025-08-08 06:31:57 +00:00
aea5d45c7d
feat(duplicate-checker): quality-first Matching (Domain-Gate, Location-Penalties, Smart Blocking)
...
- Domain-Gate: Domain-Score (100) nur, wenn Name >= MIN_NAME_FOR_DOMAIN (default 70) ODER Ort+Land exakt matchen
- Location-Penalties: City-Mismatch -30, Country-Mismatch -40 (wenn Felder befüllt)
- Smart Blocking: Domain-Index -> seltenster Name-Token (Stopwörter gefiltert) -> Prefilter (partial_ratio >= 60, Top 50)
- Name-Score: max(token_set_ratio, partial_ratio, token_sort_ratio) + Name-only Bonus (+20) bei starken Namen
- SerpAPI nur für Matching-Accounts: schreibt "Gefundene Website"; Domain wird NUR bei Vertrauen=hoch genutzt
- Serp-Trust: hoch/mittel/niedrig (Token-Check gegen Domain)
- Transparenz: neue Spalten "Match", "Score", "Match_Grund", "Gefundene Website", "Serp Vertrauen"
- Safe Writeback: Originalspalten bleiben erhalten; interne Felder werden vor Write entfernt
- Logs: Log/{$timestamp}_duplicate_check_v2.13.txt, Summary-Metriken am Ende
- Backup: Log/{$timestamp}_backup_Matching_Accounts.csv
BREAKING CHANGES: none
2025-08-08 06:28:35 +00:00
8e80a3f75e
duplicate_checker.py aktualisiert
2025-08-08 06:11:37 +00:00
f420b84aee
duplicate_checker.py aktualisiert
2025-08-08 06:07:04 +00:00
ec56daa9ea
duplicate_checker.py aktualisiert
2025-08-08 06:00:19 +00:00
be3f48aceb
url_check nur für matching
2025-08-08 05:43:45 +00:00
aa4cf6ed24
url check ergänzt
2025-08-08 05:34:32 +00:00
4cd5dccc6f
duplicate_checker.py aktualisiert
2025-08-06 14:04:03 +00:00
e58e493e38
duplicate_checker.py aktualisiert
2025-08-06 13:50:38 +00:00
3febe14526
duplicate_checker.py aktualisiert
2025-08-06 13:39:30 +00:00
63d014b057
duplicate_checker.py aktualisiert
2025-08-06 13:35:25 +00:00
4f6d51df56
duplicate_checker.py aktualisiert
2025-08-06 13:28:50 +00:00
558b75f325
duplicate_checker.py aktualisiert
2025-08-06 13:19:44 +00:00
e43efa44cb
duplicate_checker.py aktualisiert
2025-08-06 13:11:09 +00:00
cfd1e8b536
duplicate_checker.py aktualisiert
2025-08-06 12:50:12 +00:00
8d717f3b9f
duplicate_checker.py aktualisiert
2025-08-06 12:42:02 +00:00
99dec72345
duplicate_checker.py aktualisiert
2025-08-06 11:37:35 +00:00
a3315eae3d
duplicate_checker.py aktualisiert
2025-08-06 10:32:38 +00:00
b9a046bd0b
Add Logging
2025-08-06 09:31:33 +00:00
9193ab1a2f
duplicate_checker.py aktualisiert
2025-08-06 09:08:12 +00:00
4aa1effee1
duplicate_checker.py aktualisiert
2025-08-06 09:07:10 +00:00
dfcb270a7f
duplicate_checker.py aktualisiert
2025-08-06 09:06:07 +00:00
6b4c8295c7
duplicate_checker.py aktualisiert
2025-08-06 05:59:05 +00:00
4a41ffb0fa
duplicate_checker.py aktualisiert
2025-08-06 05:45:15 +00:00
600b977a9f
duplicate_checker.py aktualisiert
2025-08-05 15:54:08 +00:00
b876ea20ec
duplicate_checker.py aktualisiert
2025-08-05 14:38:52 +00:00
2f70e05e33
duplicate_checker.py aktualisiert
2025-08-05 14:36:25 +00:00
9685bc5a2d
duplicate_checker.py aktualisiert
2025-08-05 14:34:08 +00:00
270a5fc0e2
duplicate_checker.py aktualisiert
2025-08-05 14:30:02 +00:00
7d3821ad3d
chat GPT version
2025-08-05 14:27:07 +00:00
3a8809e08f
duplicate_checker.py aktualisiert
2025-08-04 06:08:27 +00:00
38612a858e
duplicate_checker.py aktualisiert
2025-08-04 06:01:13 +00:00
c777d75ddc
duplicate_checker.py aktualisiert
2025-08-04 05:44:23 +00:00
bc9591a409
Add Logging
2025-08-04 05:35:07 +00:00
c0db46d2a8
duplicate_checker.py aktualisiert
2025-08-04 05:29:32 +00:00
7c9ee2f799
duplicate_checker.py aktualisiert
2025-08-03 08:31:02 +00:00
9cc291d568
duplicate_checker.py aktualisiert
2025-08-03 08:27:12 +00:00
40de811730
duplicate_checker.py aktualisiert
2025-08-03 08:21:36 +00:00
c0cade7a21
Add Logging
2025-08-03 08:18:33 +00:00
940aa52bb4
duplicate_checker.py aktualisiert
2025-08-03 08:00:37 +00:00