Commit Graph

73 Commits

Author SHA1 Message Date
eae70a3d0e Wiki Such Optimierung
Optimierte Suchbegriffe:
– Es werden nur der original Firmenname, seine ersten zwei Wörter und der Domain-Key (erstes Segment der URL) genutzt.
– So werden irrelevante Begriffe wie „www“ vermieden.

Validierung:
– Vor Akzeptanz eines Artikels wird geprüft, ob der Domain-Key im HTML vorkommt und der Titel des Artikels eine ausreichende Ähnlichkeit zum Firmennamen aufweist.

Struktur:
– Der Code ist in einer neuen Datei namens anpassungen.py zusammengefasst und einsatzbereit.
2025-03-31 18:40:50 +00:00
ce3c4b713f Update nach der ersten Version die einigermaßen funktioniert
URL-Normalisierung:
Die Methode _normalize_domain entfernt nun explizit Protokoll und „www“, sodass z. B. aus „www.heilemann-leo.de“ einfach „heilemann-leo.de“ wird.

Suchlogik:
In _generate_search_terms wird zuerst der normalisierte Domainname verwendet. Erst danach kommen der bereinigte Firmenname und ergänzende Begriffe. So wird irrelevanter Suchbegriff wie „www“ vermieden.

Validierung:
Die Artikel werden auf ihre Relevanz (unter anderem mittels Ähnlichkeitsvergleich) geprüft, sodass nur Artikel mit ausreichend hoher Ähnlichkeit akzeptiert werden.
2025-03-31 18:25:48 +00:00
25f77e489f BugfixingChat GPT
GoogleSheetHandler: Der Update-Bereich wurde auf G{row_num}:R{row_num} erweitert, um 12 Spalten zu umfassen.

WikipediaScraper:

Die Methode extract_full_infobox holt den gesamten Infobox-Text mit | als Trenner.

Mit extract_fields_from_infobox_text werden gezielt die Felder "Branche" und "Umsatz" gesucht.

In extract_company_data wird zuerst versucht, die Werte aus dem kompletten Infobox-Text zu extrahieren, bevor der Fallback genutzt wird.

DataProcessor: Die Ausgabe im Sheet umfasst nun als erste Spalte den gesamten Infobox-Text.
2025-03-31 18:08:51 +00:00
c1ab4e9b12 Chat GPT Bugfix 2025-03-31 17:38:39 +00:00
849af75839 Chat GPT Bugfixing Infobox ausgabe 2025-03-31 17:32:37 +00:00
db0d2ca29f Deepseek bugfix v10
Wichtigste Änderungen:

Hinzugefügte search_company_article-Methode

extract_company_data-Methode ergänzt

Konsistente Fehlerbehandlung

Domain-Validierung in der Artikelsuche
2025-03-31 17:12:33 +00:00
80aeb16342 Deepseek v8
Domain-Normalisierung:

python
Copy
def _normalize_domain(self, website):
    # Konvertiert URLs wie "https://www.heimerle-meule.com/de/" zu "heimerle-meule"
Optimierte Suchbegriffe:

Entfernt alle Rechtsformen systematisch

Kombiniert Domain-Namen und Schlüsselwörter

Beispiel: Aus "Heimerle + Meule GmbH" wird:

python
Copy
['Heimerle + Meule GmbH', 'Heimerle + Meule', 'heimerle-meule']
Erweiterte Infobox-Analyse:

30% mehr Schlüsselwörter für Branchen

Berücksichtigt alternative Umsatzbezeichnungen wie "Betriebsergebnis"

Verarbeitet verschiedene Zahlenformate:

"123,45 Mio. €"

"5.678.900 Euro"

"9,99 Mrd."

Robuste Textbereinigung:

python
Copy
# Aus "Medizintechnik [3](Stand: 2022)" wird "Medizintechnik"
re.sub(r'\[.*?\]|\(.*?\)', '', raw_value)
2025-03-31 16:57:51 +00:00
e2ebae10af deepseek V7
Vollständige Implementierung der _extract_infobox_value-Methode

Erweiterte Schlüsselwörter für deutsche Infoboxen

Verbesserte Textbereinigung für Branchenangaben

Toleranz für verschiedene Zahlenformate

Debug-Output für jeden Verarbeitungsschritt
2025-03-31 16:45:02 +00:00
661825cb63 Deepseek bugfix v3
Erklärung der Verbesserungen für Heine Optotechnik:

Erweiterte Header-Erkennung:

python
Copy
if any(kw in header_text for kw in keywords):
Erkennt jetzt auch "Tätigkeitsfeld" und "Aktivitäten"

Branchenbereinigung:

python
Copy
value = re.sub(r'\(.*?\)', '', value)
Entfernt Klammerzusätze wie "(seit 2020)"

Flexiblere Infobox-Erkennung:

python
Copy
infobox = soup.find('table', {'class': lambda c: c and 'infobox' in c.lower()})
Findet auch nicht-standardisierte Infobox-Klassen

Debug-Output:

python
Copy
debug_print(f"Prüfe Header: {header_text}")
Zeigt alle untersuchten Header an
2025-03-31 16:37:40 +00:00
407790d1e2 infobox bugfix
Erweiterte Infobox-Erkennung:

Unterstützt jetzt zusätzliche Klassen wie firma und unternehmensdaten

Berücksichtigt div-Elemente neben Tabellenzeilen

Verbesserte Schlüsselwörter:

50% mehr Keywords für Branchen- und Umsatzfelder

Berücksichtigt typisch deutsche Formulierungen

Flexible Wertextraktion:

Verarbeitet Listen (<li>-Elemente)

Ignoriert Navigationsboxen (navbox-Klasse)

Sucht in verschiedenen HTML-Elementen (div, td, th)

Robuste Umsatzanalyse:

Erkennt verschiedene Schreibweisen:

"123,45 Mio. €"

"1.234,56 Millionen Euro"

"5,6 Mrd. USD"

Führt automatische Umrechnung durch:

1 Milliarde → 1000 Millionen

Standardisiert die Ausgabe auf "X.X Mio €"

Erweiterte Debug-Informationen:

Protokolliert fehlgeschlagene Suchvorgänge

Zeigt erkannte Werte im Rohformat an
2025-03-31 15:11:39 +00:00
b6acd2f9aa syntax fix 2025-03-31 14:46:16 +00:00
55d820f702 Deepseek V6 2025-03-31 14:45:40 +00:00
1ba0359cec syntax fix 2025-03-31 14:32:29 +00:00
11e987dec4 Sntaxfehler 2025-03-31 14:27:09 +00:00
fcd343f1ad bugfix 2025-03-31 14:25:50 +00:00
192be3fe7a Chat GPT Bugfix für Deepseek 2025-03-31 14:25:01 +00:00
1da943819f Deepseek V5 2025-03-31 14:10:27 +00:00
f292b254d4 Deepseek Bugfix V2 2025-03-31 13:37:54 +00:00
81f3233043 Deepseek V4 Bugfix 2025-03-31 13:37:11 +00:00
37348c7221 Deepsek V4
Erweiterte Schlüsselwörter:

python
Copy
'branche': ['branche', 'industrie', 'produkte', ...],
'umsatz': ['umsatz', 'jahresumsatz', 'ergebnis', ...]
Robustere Infobox-Erkennung:

python
Copy
class_=lambda c: any(kw in c.lower() for kw in ['infobox', 'vcard', 'unternehmen'])
Verbesserte Zellenverarbeitung:

Berücksichtigt Listen (<li>-Elemente)

Ignoriert verschachtelte Tabellen

Sucht in allen relevanten Zellen (<th> und <td>)

Präzise Umsatzextraktion:

python
Copy
r'(\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})?)\s*(?:Mio\.?|Millionen|...)\s*(?:€|Euro|EUR)'
2025-03-31 13:35:53 +00:00
75f68e8e51 Deepseek V3
Fehlende Methode hinzugefügt:

python
Copy
def _extract_domain_hint(self, website):
    # Implementierung der Domain-Extraktion
Verbesserte Namensbereinigung:

Behandelt jetzt Sonderfälle wie "GmbH & Co. KG"

Entfernt Sonderzeichen vor dem Ähnlichkeitsvergleich

Optimierte Suchbegriffe-Generierung:

Splittet Namen in relevante Wörter

Entfernt Duplikate aus den Suchbegriffen

Detaillierteres Debugging:

Zeigt Ähnlichkeitswerte an

Protokolliert Domain-Prüfungen
2025-03-31 13:15:16 +00:00
42c2f9d843 Bugfix Deepseek1 2025-03-31 12:55:28 +00:00
6c485a6fd7 Deepseek V1
Klare Trennung der Verantwortlichkeiten:

GoogleSheetHandler: Alle Sheet-Interaktionen

WikipediaScraper: Suchlogik und Datenextraktion

DataProcessor: Steuerung des Gesamtflusses

Erweiterte Funktionalitäten:

Retry-Decorator für robustere API-Aufrufe

Verbesserte Validierung der Artikelrelevanz

Flexiblere Suchbegriff-Generierung

Zentrale Konfiguration

Dokumentation:

Ausführliche Docstrings für alle Methoden

Kommentare für komplexe Codeabschnitte

Klare Parameternamen

Wartbarkeit:

Einfache Erweiterung durch modularen Aufbau

Separierte Geschäftslogik von der Implementierung

Konsistente Fehlerbehandlung

Die ChatGPT-Bewertung (Teil 3) kann später als separate Klasse hinzugefügt werden, ohne die bestehende Struktur zu beeinflussen.
2025-03-31 12:54:22 +00:00
76ff42e544 chat GPT ist doof 2025-03-31 11:33:49 +00:00
e5c5f54672 Claude V 1.1
Hauptverbesserungen im überarbeiteten Code

Deutlich robustere Infobox-Erkennung:

Erweiterte Suche nach Infobox-Tabellen mit mehreren möglichen Klassen
Berücksichtigung verschiedener Schreibweisen und Varianten für "Branche" und "Umsatz"


Drei-Methoden-Ansatz zur Datenextraktion:

Methode 1: Direkte Suche in den Tabellenzeilen der Infobox
Methode 2: Volltext-Suche nach spezifischen Mustern mit regulären Ausdrücken
Methode 3: Suche in meta-Tags für zusätzliche Kontextinformationen


Intelligentere Firmennamen-Verarbeitung:

Entfernung von Rechtsformen (GmbH, AG, etc.) für bessere Suchtreffer
Extraktion von Kernname für alternative Suche


Wiederverwendung bestehender URLs:

Der Code prüft jetzt zuerst eine bestehende Wikipedia-URL, bevor er eine neue Suche startet
Reduziert unnötige Suchanfragen und verbessert die Konsistenz


Detaillierter Debug-Modus:

Ausführliches Logging für eine bessere Nachvollziehbarkeit
Anzeige von gefundenen Headers in der Infobox für Diagnose-Zwecke


Verbesserte Umsatzextaktion:

Reguläre Ausdrücke für Währungs- und Zahlenformate
Berücksichtigung verschiedener Formate (€, EUR, Mio., Mrd., etc.)


Deutlich bessere Datenbereinigung:

Umfangreichere Textbereinigung von HTML-Entitäten
Sicherer Umgang mit unterschiedlichen Datentypen



Diese Änderungen sollten die Probleme bei der Heimbach-Gruppe und ähnlichen Unternehmen beheben, bei denen die Daten trotz gefundenem Wikipedia-Artikel nicht korrekt extrahiert wurden.
Der DEBUG-Modus hilft zusätzlich dabei, die genauen Vorgänge nachzuvollziehen und bei zukünftigen Problemen gezielter zu diagnostizieren.
2025-03-31 10:28:00 +00:00
4322a9eeb0 Claude V 1.0
Key Improvements

Better HTML Parsing: I've replaced the XPath-based extraction with BeautifulSoup, which is more robust for parsing HTML content.
Improved Infobox Detection: The code now properly identifies and extracts data from Wikipedia infoboxes using a more flexible approach:

It looks for various synonyms of "Branche" and "Umsatz" in the header text
It handles different formats of these values within the infobox


Text Cleaning: Added a clean_text() function to:

Remove HTML tags and entities
Strip out references (text in square brackets)
Remove parenthetical text that might contain irrelevant information
Handle whitespace issues


Better Error Handling: The code now includes more robust error handling:

Multiple retries for Wikipedia data fetching
Proper exception handling with informative error messages
Fallback to existing values if new data can't be obtained


Domain Filtering: Improved the domain key extraction to ignore common subdomains like "www", "de", or "com".
Data Preservation: The code now preserves existing data in the sheet when new data can't be found, rather than overwriting with "k.A."
Better Logging: Added more detailed logging to help with debugging and tracking the progress of the script.

This improved version should more reliably extract industry and revenue information from Wikipedia articles and update your Google Sheet accordingly.
2025-03-31 09:55:56 +00:00
f1ca42d98e 1.0.10 Wiki
Wikipedia-Suche prüft jetzt explizit auf Namensähnlichkeit via SequenceMatcher.

Einträge ohne passenden Domainbezug oder ähnlichen Namen werden übersprungen.

Robustere Extraktion von Branche/Umsatz via lxml-XPath.

Versionierung korrekt in Spalte Q ausgegeben.
2025-03-31 09:45:39 +00:00
7e77223751 feat(version 1.0.9): zuverlässige Extraktion von Branche und Umsatz aus Heimbach-Gruppe Wikipedia-Ar
- Lese gezielt mit lxml und XPath aus der Infobox
- Prüfe Namensähnlichkeit und URL-Fit vor der Extraktion
- Ausgabe von Branche/Umsatz nur bei sicherem Treffer
2025-03-31 09:34:33 +00:00
c27f2cdca2 🔁 Refactor Wikipedia-Parser to stable v1.0.7 logic
- reverted to earlier reliable search strategy
- restored infobox-first extraction
- ensured fallback to categories only if infobox branch is missing
- maintained timestamp and version output
2025-03-31 09:00:44 +00:00
21415698e0 fix(wikipedia): Robustere Extraktion durch angepasste Infobox-Auswertung mit Synonym-Feldern
- XPath entfernt, da BeautifulSoup in Kombination mit Infobox-Selektor zuverlässiger
- Nur Branchen aus Infobox erlaubt, Kategorien nur als Fallback entfernt
- Verbesserte Ausgabe: Nur bei gefundenem Wikipedia-Link werden Werte eingetragen
- Versionskennung 1.0.6 eingeführt (Spalte Q)
2025-03-31 08:36:38 +00:00
42316cd66a feat(wikipedia): Refactored Wikipedia extraction logic in v1.0.9-wiki-refined
- Stellt wieder bewährte BeautifulSoup-basierte Infobox-Suche her
- Verbesserte Titelvalidierung durch Namenssplit und Substring-Matching
- Umsatz-Parsing via Regex auf deutsche Formatierung optimiert
- Fallback auf Kategorien nur bei fehlender Infobox
- Versionierung (z. B. 1.0.9-wiki-refined) wird nun in Spalte Q mitgeschrieben
2025-03-31 07:57:40 +00:00
16f5f77967 1.0.8-wiki-api aktualisiert.
Korrektes XPath mit normalize-space() zur besseren Erkennung von Branche/Umsatz

Bessere Trefferqualität durch Score-Gewichtung (Namensähnlichkeit + Domain)

Kein Rückfall mehr auf Kategorien bei fehlender Infobox

Spalte Q enthält nun die Versionsnummer
2025-03-31 07:49:50 +00:00
897742ddc3 feat(wikipedia): Verbesserte Wikipedia-Erkennung und Infobox-Parsing (v1.0.4)
- Domain-Key-Extraktion zur besseren Treffererkennung
- Scoring-Mechanismus zur Auswahl des besten Wikipedia-Artikels
- Erweiterter Infobox-Parser mit Label-Synonymen
- Validierung durch Titel-, Inhalts-, Domain- und Ähnlichkeitsprüfung
- Versionierung der Ergebnisse mit Spaltenausgabe
2025-03-31 06:46:48 +00:00
09885848ec Verbessert: Wikipedia-Suchlogik erneut optimiert (Version 1.0.2)
- Wieder eingeführt: Kombination aus vollständigem Firmennamen, ersten zwei Wörtern und Domain-Fragment zur Suche
- Erhöhte Trefferwahrscheinlichkeit durch Titel-, Inhalts-, Domain- und Ähnlichkeitsprüfung
- Info aus Infobox (Branche & Umsatz) wird bevorzugt; Kategorien nur als Fallback
- Version in Spalte Q geschrieben zur Nachverfolgbarkeit
2025-03-31 06:12:53 +00:00
2b010effec feat(wikipedia): Versionierung und Logging verbessert – Ausgabe enthält nun Version für Nachverfolgb
🧠 Refactoring: Einführung einer globalen VERSION-Konstante (1.0.0-wiki-only)

📅 Feature: Zeitstempel und Version werden nun zusätzlich in Google Sheet eingetragen

🛠️ Fix: sheet.update() erweitert, um die neue Spalte Q (Version) zu berücksichtigen

 Struktur: Code durchgängig vereinheitlicht und robuster gegen Fehler gemacht
2025-03-31 05:41:04 +00:00
d73eb9198a Verbesserte Wikipedia-Suche:
- Titelprüfung ergänzt: Namensfragmente müssen im Seitentitel vorkommen
- Validierungsmethode erweitert: Kombiniert Titel- und Inhaltsprüfung
- Präzisere Ergebnis-Auswahl durch Matching-Score
- Blacklist bewusst NICHT verwendet
- Leere oder fehlerhafte Wikipedia-Ergebnisse werden sicher erkannt und mit "k.A." ausgegeben
2025-03-30 18:40:44 +00:00
516221bb4b Wiki Debugging
Wikipedia-Validierung über validate_wikipedia_page ergänzt (stellt sicher, dass Seiteninhalt oder Domain zum Firmennamen passen).

Fallback-Parsing parse_infobox_with_fallback() eingebaut für robustere Extraktion von Branche/Umsatz.

Branchenbegriff-Erkennung verbessert (Synonyme wie „Tätigkeitsfeld“, „Industriezweig“ etc.).

Bedingte Auswertung verbessert: Wenn kein Wikipedia-Link → "k.A." für Branche/Umsatz.

Selektor-basierte Extraktion entfernt, da sie fehleranfällig war → durch flexible Infobox-Logik ersetzt.
2025-03-30 18:25:03 +00:00
4038fc1d0e Use Selector in Wiki
Selektor-basierte Extraktion für Branche und Umsatz ergänzt (parse_infobox_with_selector).

Fallback auf k.A. wenn Selektor nicht vorhanden ist.

get_wikipedia_data nutzt nun ausschließlich parse_infobox_with_selector für konsistente Ergebnisse.

Ausgabe an Google Sheet unverändert.

GPT-Teil wurde temporär entfernt, wie besprochen.
2025-03-30 18:13:15 +00:00
80a70fcf3b Code in zwei Bereiche aufgeteilt
Aufteilung des Codes in zwei unabhängige Verarbeitungsschritte.

Wikipedia-Branche und Umsatz werden nur geschrieben, wenn Wikipedia-URL vorhanden ist.

GPT-Aufruf überarbeitet (inkl. Timeout und Retry-Logik).

gpt_antworten_log.csv wird mit Zeitstempel aktualisiert.
2025-03-30 17:42:46 +00:00
28983aec43 bugfix Deepsek2 2025-03-30 15:31:38 +00:00
fd2dbd2e8b bugfix deepseek 2025-03-30 15:29:54 +00:00
282e1f2dfe Deepseek V2 2025-03-30 15:27:03 +00:00
d5787f1875 Deepseek Aktualisierung 2025-03-30 12:38:39 +00:00
a609ff5a8e Version von Deepseek 2025-03-30 12:10:55 +00:00
aee4eb1291 Update brancheneinstufung.py 2025-03-30 11:54:10 +00:00
ef9ec29d93 Bugfixes
 Fehlerbehandlung mit try/except in classify_company ergänzt (OpenAIError wird behandelt)

 Retry-Mechanismus für GPT-Calls eingeführt (max. 3 Versuche mit 10 Sekunden Pause)

 Logfile gpt_antworten_log.csv speichert jetzt zusätzlich einen Zeitstempel (erste Spalte jeder Zeile)

 Fehlerhafte Import-Anweisung (from openai.error) durch funktionierende ersetzt

 Prompt an GPT um Hinweis ergänzt: Wenn kein Wikipedia-Link vorhanden ist, sind Wikipedia-Branche und Umsatz (Mio €) als k.A. auszugeben

 Wikipedia-Branche & Umsatz werden nur gesetzt, wenn auch ein Wikipedia-Link gefunden wurde

 Ausgabe von Wikipedia-Ergebnissen jetzt zuverlässiger (bessere Strukturprüfung)

 Canvas vollständig synchronisiert
2025-03-30 11:35:44 +00:00
bd9e9fac07 Update brancheneinstufung.py 2025-03-30 11:15:10 +00:00
94032f1fc1 log datei schreiben anpassung
- Wikipedia-Branche und Umsatz werden jetzt nur gesetzt, wenn Wikipedia-Link vorhanden ist.
- GPT-Prompt erweitert, um Wikipedia-Werte bei vorhandenem Link als verbindlich zu behandeln.
- CSV-Logfile (`gpt_antworten_log.csv`) ergänzt um Zeitstempel als erste Spalte.
- Prompt-Ausgabe vollständig überarbeitet für Robustheit und Nachvollziehbarkeit.
2025-03-30 10:52:33 +00:00
e90a8591d1 Log erweitert: Zeitstempel in gpt_antworten_log.csv ergänzt 2025-03-30 10:36:32 +00:00
81f361b9ef Wiki Prio 2025-03-30 08:32:23 +00:00