Commit Graph

1385 Commits

Author SHA1 Message Date
727abbcbea train_model.py hinzugefügt 2025-09-08 12:27:57 +00:00
955ee28d9a create_weights.py hinzugefügt 2025-09-08 11:31:53 +00:00
d63cce5354 xgb_model.json hinzugefügt 2025-09-08 11:30:45 +00:00
bb42ac2db8 NEU: Integration eines trainierten Machine-Learning-Modells (XGBoost) für die Match-Entscheidung
--- FEATURES v5.0 ---
- NEU: Integration eines trainierten Machine-Learning-Modells (XGBoost) für die Match-Entscheidung.
- Das Modell wurde auf dem vom Benutzer bereitgestellten "Gold-Standard"-Datensatz trainiert.
- Feature Engineering: Für jeden Vergleich werden ~15 Merkmale berechnet, die dem Modell als Input dienen.
- Die alte, heuristische Scoring-Logik wurde vollständig durch das ML-Modell ersetzt.
- Ergebnis ist eine datengetriebene, hochpräzise Duplikatserkennung mit >80% Trefferquote.
2025-09-08 11:24:01 +00:00
48fa1d9a61 duplicate_checker.py aktualisiert
- NEU: Mehrstufiges Entscheidungsmodell für höhere Präzision und "Großzügigkeit".
- Stufe 1: "Golden Match" für exakte Treffer.
- Stufe 2: "Kernidentitäts-Bonus & Tie-Breaker" zur korrekten Zuordnung von Konzerngesellschaften.
- Stufe 3: Neu kalibrierter, gewichteter Score für alle anderen Fälle.
- Intelligenter Tie-Breaker, der nur bei wirklich guten und engen Kandidaten greift.
2025-09-05 11:40:52 +00:00
675c2b9598 duplicate_checker.py aktualisiert
--- FEATURES v4.0 ---
- NEU: "Kernidentitäts-Bonus": Ein hoher Bonus wird vergeben, wenn das seltenste (wichtigste) Token übereinstimmt.
  Dies fördert das "großzügige Matchen" auf Basis der Kernmarke (z.B. "ANDRITZ AG" vs. "ANDRITZ HYDRO").
- NEU: Intelligenter "Shortest Name Tie-Breaker": Wird nur noch bei sehr hohen und sehr ähnlichen Scores angewendet.
- Finale Kalibrierung der Score-Berechnung und Schwellenwerte für optimale Balance.
- Golden-Rule für exakte Matches und Interaktiver Modus beibehalten.
2025-09-05 09:39:56 +00:00
ffad12dae5 duplicate_checker.py aktualisiert
- NEU: "Shortest Name Tie-Breaker": Bei sehr ähnlichen Scores wird der Kandidat mit dem kürzeren Namen bevorzugt,
  um das Prinzip der "wirtschaftlichen Einheit" (z.B. Holding) besser abzubilden.
- Scoring-Formel und Schwellenwerte erneut feinjustiert für finale Balance.
- Golden-Rule und Interaktiver Modus beibehalten.
2025-09-05 08:59:05 +00:00
82487b9865 duplicate_checker.py aktualisiert
- Scoring-Formel und Multiplikatoren neu gewichtet, um einzigartige Namens-Tokens stärker zu bewerten ("Großzügigkeits-Boost").
- Schwellenwerte (Thresholds) erneut feinjustiert, um die Balance zwischen korrekten und falschen Treffern zu optimieren.
- Logik des Domain-Gates beibehalten und sichergestellt, dass es korrekt greift.
- Golden-Rule und Interaktiver Modus unverändert.
2025-09-05 08:10:28 +00:00
15019e5326 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
d245d43182 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
51f441d811 planning.md aktualisiert 2025-08-29 08:34:07 +00:00
109d929bdd tasks.md aktualisiert 2025-08-29 08:33:31 +00:00
5d296e5362 readme.md aktualisiert 2025-08-29 08:32:40 +00:00
1f9e6fb567 sync_manager.py aktualisiert 2025-08-29 07:11:48 +00:00
35123ddcda sync_manager.py aktualisiert 2025-08-29 06:33:12 +00:00
1dd89f975f sync_manager.py aktualisiert 2025-08-29 06:30:08 +00:00
0dbd419304 brancheneinstufung2.py aktualisiert 2025-08-29 06:20:48 +00:00
4a3e35cee2 sync_manager.py aktualisiert 2025-08-29 06:12:03 +00:00
4f9ed10c96 brancheneinstufung2.py aktualisiert 2025-08-29 06:11:04 +00:00
c928193698 sync_manager.py aktualisiert 2025-08-28 19:02:12 +00:00
93201fdc09 sync_manager.py aktualisiert 2025-08-28 18:42:36 +00:00
968438abcf sync_manager.py aktualisiert 2025-08-28 18:37:36 +00:00
44fbb618fa sync_manager.py aktualisiert 2025-08-28 18:22:42 +00:00
303eb71bf2 sync_manager.py aktualisiert 2025-08-28 18:07:17 +00:00
45ef03fe5b sync_manager.py aktualisiert 2025-08-28 18:04:19 +00:00
6408014e73 sync_manager.py aktualisiert 2025-08-28 18:01:24 +00:00
7fd8735b08 sync_manager.py aktualisiert 2025-08-28 17:57:44 +00:00
d5dfc69e3a sync_manager.py aktualisiert 2025-08-28 17:44:31 +00:00
70b5dd8247 brancheneinstufung2.py aktualisiert 2025-08-28 17:38:25 +00:00
f936e0dc9d sync_manager.py aktualisiert 2025-08-28 17:34:52 +00:00
125a7c0e85 sync_manager.py aktualisiert 2025-08-28 14:40:02 +00:00
7eeba8d771 sync_manager.py aktualisiert 2025-08-28 14:22:48 +00:00
59ffa4122b sync_manager.py aktualisiert 2025-08-28 14:18:24 +00:00
ac3921891c sync_manager.py aktualisiert 2025-08-28 14:08:08 +00:00
b108ebc0be sync_manager.py aktualisiert 2025-08-28 12:48:10 +00:00
38e7614d34 sync_manager.py aktualisiert 2025-08-28 12:23:46 +00:00
89e72a83b4 sync_manager.py aktualisiert 2025-08-28 12:17:32 +00:00
b07975ca8b sync_manager.py aktualisiert 2025-08-28 11:55:31 +00:00
4d376644e0 sync_manager.py aktualisiert 2025-08-28 11:47:59 +00:00
f7cbc6c9d8 sync_manager.py aktualisiert 2025-08-28 11:41:41 +00:00
28cd6ac039 sync_manager.py aktualisiert 2025-08-28 11:29:38 +00:00
ad4d56116e sync_manager.py aktualisiert 2025-08-28 11:27:15 +00:00
fc21ce815b sync_manager.py aktualisiert 2025-08-28 11:17:20 +00:00
d7a43e8041 sync_manager.py aktualisiert 2025-08-28 11:03:16 +00:00
646914fa40 sync_manager.py aktualisiert 2025-08-28 10:58:22 +00:00
2c0ad1d0c2 sync_manager.py aktualisiert 2025-08-28 09:33:19 +00:00
10f7965d4c sync_manager.py aktualisiert 2025-08-28 09:29:57 +00:00
a5864da498 sync_manager.py aktualisiert 2025-08-28 09:22:55 +00:00
5f6bce0f36 config.py aktualisiert 2025-08-28 09:20:27 +00:00
e4419b6baa sync_manager.py aktualisiert 2025-08-28 09:15:48 +00:00