This commit is contained in:
2025-05-30 17:05:08 +00:00
parent deb577b2eb
commit a31e66ff0d

View File

@@ -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