Commit Graph

1393 Commits

Author SHA1 Message Date
d96bca02f6 duplicate_checker.py aktualisiert 2025-09-10 11:26:28 +00:00
7e30aa0d83 train_model.py aktualisiert 2025-09-10 08:25:50 +00:00
6a90618839 duplicate_checker.py aktualisiert 2025-09-10 08:13:02 +00:00
338b350208 train_model.py aktualisiert 2025-09-10 08:12:31 +00:00
e50ff17b17 train_model.py aktualisiert 2025-09-08 18:36:52 +00:00
b7f967521e train_model.py aktualisiert 2025-09-08 18:27:12 +00:00
676f59917a train_model.py aktualisiert 2025-09-08 18:04:36 +00:00
dc11ef373e train_model.py aktualisiert 2025-09-08 12:29:47 +00:00
2e5d6f93af train_model.py hinzugefügt 2025-09-08 12:27:57 +00:00
51cc61b39d create_weights.py hinzugefügt 2025-09-08 11:31:53 +00:00
77a2d15d4f xgb_model.json hinzugefügt 2025-09-08 11:30:45 +00:00
0a79ec64a6 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
f32d4d507c 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
755f432fcd 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
4eb7ae66b7 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
306880fa88 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
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
7f522f74d0 planning.md aktualisiert 2025-08-29 08:34:07 +00:00
d95dad768d tasks.md aktualisiert 2025-08-29 08:33:31 +00:00
8378b299d0 readme.md aktualisiert 2025-08-29 08:32:40 +00:00
4929f99a5f sync_manager.py aktualisiert 2025-08-29 07:11:48 +00:00
20516bc78a sync_manager.py aktualisiert 2025-08-29 06:33:12 +00:00
5e99954f5f sync_manager.py aktualisiert 2025-08-29 06:30:08 +00:00
e2725f07aa brancheneinstufung2.py aktualisiert 2025-08-29 06:20:48 +00:00
042cdbacc6 sync_manager.py aktualisiert 2025-08-29 06:12:03 +00:00
8fd7cad201 brancheneinstufung2.py aktualisiert 2025-08-29 06:11:04 +00:00
6dc29ed6e8 sync_manager.py aktualisiert 2025-08-28 19:02:12 +00:00
71d010757a sync_manager.py aktualisiert 2025-08-28 18:42:36 +00:00
40aa237a2f sync_manager.py aktualisiert 2025-08-28 18:37:36 +00:00
e158bbc7e0 sync_manager.py aktualisiert 2025-08-28 18:22:42 +00:00
f5c4473f53 sync_manager.py aktualisiert 2025-08-28 18:07:17 +00:00
a77ae96549 sync_manager.py aktualisiert 2025-08-28 18:04:19 +00:00
8fee4f7568 sync_manager.py aktualisiert 2025-08-28 18:01:24 +00:00
26bb47a47e sync_manager.py aktualisiert 2025-08-28 17:57:44 +00:00
7d57dca203 sync_manager.py aktualisiert 2025-08-28 17:44:31 +00:00
0ddb369603 brancheneinstufung2.py aktualisiert 2025-08-28 17:38:25 +00:00
80151c62b3 sync_manager.py aktualisiert 2025-08-28 17:34:52 +00:00
0a0eacbbb5 sync_manager.py aktualisiert 2025-08-28 14:40:02 +00:00
0d0ee0d45b sync_manager.py aktualisiert 2025-08-28 14:22:48 +00:00
d848fc2c4c sync_manager.py aktualisiert 2025-08-28 14:18:24 +00:00
184d0fb880 sync_manager.py aktualisiert 2025-08-28 14:08:08 +00:00
27155526a3 sync_manager.py aktualisiert 2025-08-28 12:48:10 +00:00
5859ac9374 sync_manager.py aktualisiert 2025-08-28 12:23:46 +00:00
770b5b9488 sync_manager.py aktualisiert 2025-08-28 12:17:32 +00:00
27ff95fcb5 sync_manager.py aktualisiert 2025-08-28 11:55:31 +00:00
8945d8ec0c sync_manager.py aktualisiert 2025-08-28 11:47:59 +00:00
1faa6e31a2 sync_manager.py aktualisiert 2025-08-28 11:41:41 +00:00
95ef5edcb6 sync_manager.py aktualisiert 2025-08-28 11:29:38 +00:00
8b1b913b53 sync_manager.py aktualisiert 2025-08-28 11:27:15 +00:00