354e802b79
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
98d8c6db4c
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
cf0c95c63b
duplicate_checker.py aktualisiert
2025-08-18 13:34:29 +00:00
0c8a0582af
duplicate_checker.py aktualisiert
2025-08-18 12:48:05 +00:00
f1161d258a
duplicate_checker.py aktualisiert
2025-08-18 12:27:31 +00:00
1739bdb294
duplicate_checker.py aktualisiert
2025-08-18 12:11:35 +00:00
3dc48870be
duplicate_checker.py aktualisiert
2025-08-18 11:32:37 +00:00
9e74e6fa5f
duplicate_checker.py aktualisiert
2025-08-18 08:39:27 +00:00
f378546787
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
4a38edacc0
duplicate_checker.py aktualisiert
2025-08-08 06:35:24 +00:00
9539fa1fb9
duplicate_checker.py aktualisiert
2025-08-08 06:31:57 +00:00
8f6dae18dd
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
090733ea58
duplicate_checker.py aktualisiert
2025-08-08 06:11:37 +00:00
a080d7328b
duplicate_checker.py aktualisiert
2025-08-08 06:07:04 +00:00
8fa0c0f37b
duplicate_checker.py aktualisiert
2025-08-08 06:00:19 +00:00
106a015acf
url_check nur für matching
2025-08-08 05:43:45 +00:00
8b5148c59e
url check ergänzt
2025-08-08 05:34:32 +00:00
b9bbab59bf
duplicate_checker.py aktualisiert
2025-08-06 14:04:03 +00:00
65c3f4dd85
duplicate_checker.py aktualisiert
2025-08-06 13:50:38 +00:00
9b8bcf292d
duplicate_checker.py aktualisiert
2025-08-06 13:39:30 +00:00
f594a54fbf
duplicate_checker.py aktualisiert
2025-08-06 13:35:25 +00:00
4c38af9781
duplicate_checker.py aktualisiert
2025-08-06 13:28:50 +00:00
695973e679
duplicate_checker.py aktualisiert
2025-08-06 13:19:44 +00:00
9b1a869c74
duplicate_checker.py aktualisiert
2025-08-06 13:11:09 +00:00
1a84e10c6c
duplicate_checker.py aktualisiert
2025-08-06 12:50:12 +00:00
4a015844f7
duplicate_checker.py aktualisiert
2025-08-06 12:42:02 +00:00
c216b24024
duplicate_checker.py aktualisiert
2025-08-06 11:37:35 +00:00
786086a6e9
duplicate_checker.py aktualisiert
2025-08-06 10:32:38 +00:00
a1098ae846
Add Logging
2025-08-06 09:31:33 +00:00
3f862a3745
duplicate_checker.py aktualisiert
2025-08-06 09:08:12 +00:00
d8316cc070
duplicate_checker.py aktualisiert
2025-08-06 09:07:10 +00:00
41d3263040
duplicate_checker.py aktualisiert
2025-08-06 09:06:07 +00:00
9789b38836
duplicate_checker.py aktualisiert
2025-08-06 05:59:05 +00:00
223f719e38
duplicate_checker.py aktualisiert
2025-08-06 05:45:15 +00:00
273aa04179
duplicate_checker.py aktualisiert
2025-08-05 15:54:08 +00:00
14ac535bca
duplicate_checker.py aktualisiert
2025-08-05 14:38:52 +00:00
7adba270ed
duplicate_checker.py aktualisiert
2025-08-05 14:36:25 +00:00
012e091ed0
duplicate_checker.py aktualisiert
2025-08-05 14:34:08 +00:00
a6bf79d68f
duplicate_checker.py aktualisiert
2025-08-05 14:30:02 +00:00
c6ecf34981
chat GPT version
2025-08-05 14:27:07 +00:00
7658b7cc9f
duplicate_checker.py aktualisiert
2025-08-04 06:08:27 +00:00
8dd2658d9e
duplicate_checker.py aktualisiert
2025-08-04 06:01:13 +00:00
0b2b77ecfd
duplicate_checker.py aktualisiert
2025-08-04 05:44:23 +00:00
c103e81095
Add Logging
2025-08-04 05:35:07 +00:00
b27f12cd1b
duplicate_checker.py aktualisiert
2025-08-04 05:29:32 +00:00
5ca44ac036
duplicate_checker.py aktualisiert
2025-08-03 08:31:02 +00:00
434908e3ec
duplicate_checker.py aktualisiert
2025-08-03 08:27:12 +00:00
f811eafda0
duplicate_checker.py aktualisiert
2025-08-03 08:21:36 +00:00
b1c6b11f38
Add Logging
2025-08-03 08:18:33 +00:00
3aeb48b9b5
duplicate_checker.py aktualisiert
2025-08-03 08:00:37 +00:00