From a31e66ff0d5dc1febb32b198f79125de1acd539c Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 30 May 2025 17:05:08 +0000 Subject: [PATCH] bugfix --- brancheneinstufung.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index ada64e76..768fe814 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -1887,21 +1887,27 @@ def serp_wikipedia_lookup(company_name, website=None, min_score=0.4): score = similarity # logger.debug(f" -> Kandidat '{title[:100]}...': Basis-Aehnlichkeit={similarity:.2f}") # Zu viel Laerm im Debug - # 2. Bonus fuer Keywords im Titel (z.B. "(Unternehmen)", Rechtsformen) - bonus = 0.0 - if "(unternehmen)" in title_lower: - bonus += 0.2 # Starker Bonus fuer eindeutige Kennzeichnung - # logger.debug(" -> Bonus +0.2 fuer '(unternehmen)'") # Zu viel Laerm im Debug - # Pruefe auf gaengige Rechtsformen am Ende des Titels - elif re.search(r'\b(?:gmbh|ag|kg|ltd|inc|corp|s\.?a\.?|se|group|holding)\b$', title_lower): # Regex fuer Wortgrenze am Ende - bonus += 0.1 # Kleinerer Bonus - # logger.debug(" -> Bonus +0.1 fuer Rechtsform/Gruppen-Keyword") # Zu viel Laerm im Debug + # NEU: Starker Bonus, wenn der normalisierte Suchname signifikant im normalisierten Titel enthalten ist + # oder der normalisierte Titel im Suchnamen (für Fälle wie "Bosch (Unternehmen)" vs "Robert Bosch GmbH") + if normalized_search_name in normalized_title or normalized_title in normalized_search_name: + bonus += 0.3 # Relativ starker Bonus für gute Namensübereinstimmung + # logger.debug(f" -> Bonus +0.3 fuer Namensübereinstimmung: '{normalized_search_name}' in '{normalized_title}'") + + # Bestehende Boni anpassen oder leicht reduzieren, wenn der obige Bonus schon greift + if "(unternehmen)" in title_lower: + bonus += 0.15 # Etwas reduziert, da Namensmatch wichtiger + # logger.debug(" -> Bonus +0.15 fuer '(unternehmen)'") + elif re.search(r'\b(?:gmbh|ag|kg|ltd|inc|corp|s\.?a\.?|se|group|holding)\b$', title_lower): + bonus += 0.05 # Kleinerer Bonus + # logger.debug(" -> Bonus +0.05 fuer Rechtsform/Gruppen-Keyword") + # 3. Bonus fuer Sprache (Deutsch bevorzugt) if url.lower().startswith("https://de.wikipedia.org"): bonus += 0.05 - # logger.debug(" -> Bonus +0.05 fuer de.wikipedia.org") # Zu viel Laerm im Debug + # logger.debug(" -> Bonus +0.05 fuer de.wikipedia.org") + # Gesamtscore ist Basis-Aehnlichkeit plus Boni total_score = score + bonus