Commit Graph

332 Commits

Author SHA1 Message Date
fada980dc6 bugfix 2025-04-19 17:44:51 +00:00
025fa51363 bugfix 2025-04-19 17:36:41 +00:00
0b51a11aef bugfix 2025-04-19 17:23:36 +00:00
6c1fd91a69 v1.6.5: Refactor logging & integrate improved WikipediaScraper
- Replace custom `debug_print` function with standard Python `logging` module calls throughout the codebase.
    - Use appropriate logging levels (DEBUG, INFO, WARNING, ERROR, CRITICAL, EXCEPTION).
    - Refactor logging setup in `main` for clarity and proper handler initialization.
- Integrate updated `WikipediaScraper` class (previously developed as v1.6.5 logic):
    - Implement more robust infobox parsing (`_extract_infobox_value`) using flexible selectors, keyword checking (`in`), and improved value cleaning (incl. `sup` removal).
    - Remove old infobox fallback functions.
    - Enhance article validation (`_validate_article`) with better link checking via `_get_page_soup`.
    - Improve reliability of article search (`search_company_article`) with direct match attempt and better error handling.
    - Apply `@retry_on_failure` decorator to network-dependent scraper methods (`_get_page_soup`, `search_company_article`).
- Ensure `Config.VERSION` reflects the logical state (v1.6.5 for this commit).
2025-04-19 16:53:35 +00:00
bde384c1a8 bugfix 2025-04-19 07:17:29 +00:00
dd4c0b2b75 bugfix 2025-04-19 07:15:24 +00:00
ea1734d4cb v1.6.5: Refactor WikipediaScraper für robustere Infobox-Extraktion
- Überarbeite WikipediaScraper._extract_infobox_value:
    - Nutzt flexibleren CSS-Selektor ('table[class*="infobox"]') für Infobox-Suche.
    - Iteriert durch Tabellenzeilen (tr) statt nur durch th.
    - Prüft, ob Keywords *im* normalisierten th-Text enthalten sind (statt exaktem Match).
    - Entfernt <sup>-Tags vor der Textextraktion aus td-Zellen.
    - Nutzt get_text(separator=' ') für bessere Handhabung von <br>.
    - Erweitert die keywords_map für Branche, Umsatz, Mitarbeiter.
    - Fügt detailliertes Debug-Logging für den Extraktionsprozess hinzu.
- Entferne die alten Fallback-Funktionen _extract_full_infobox_text und _parse_infobox_text_fallback.
- Passe WikipediaScraper.extract_company_data an:
    - Ruft _get_page_soup nur einmal auf.
    - Verwendet die neue _extract_infobox_value Methode.
- Verbessere WikipediaScraper._validate_article:
    - Nutzt _get_page_soup für zuverlässigere Link-Prüfung.
    - Prüft Links in Infobox und externe Links.
    - Verwendet simple_normalize_url für URL-Vergleiche.
    - Passt Ähnlichkeitsschwelle an, wenn Domain-Match erfolgreich ist.
- Verbessere WikipediaScraper.search_company_article:
    - Versucht direkten Match zuerst.
    - Prüft ggf. erste Option bei Begriffsklärung.
    - Behandelt Fehler (PageError, DisambiguationError, RequestException) robuster im Such-Loop.
- Verbessere WikipediaScraper._get_page_soup:
    - Fügt Timeout, raise_for_status und explizites UTF-8 Encoding hinzu.
    - Wendet @retry_on_failure Decorator an (Annahme: Decorator existiert).
- Wende @retry_on_failure auch auf search_company_article an.
- Aktualisiere Versionsnummer in Config und Kommentaren auf v1.6.5.
2025-04-18 19:02:14 +00:00
5bfc252469 refactor: v1.6.5 Minor code improvements and consistency
- Add HTML logging to _extract_infobox_value for debugging
- Implement _extract_infobox_value_fallback using regex
- Call fallback in extract_company_data if primary fails
- Add minor logging to _extract_first_paragraph_from_soup
- Adjust extract_numeric_value for robustness
- Add force_process flag to process_branch_batch for combined mode
- Correct indentation in alignment_demo inner function colnum_string
- Refine data preparation logic in DataProcessor.prepare_data_for_modeling
- Add Config.HEADER_ROWS constant
- Increment version to 1.6.5
2025-04-18 18:14:12 +00:00
89d4952742 bugfix 2025-04-18 16:53:40 +00:00
dde79d0c1d bugfix 2025-04-18 16:45:37 +00:00
9fa1cad03f v1.6.5 Improve WikipediaScraper infobox extraction
- Add HTML logging to _extract_infobox_value for debugging"
- Implement _extract_infobox_value_fallback using regex"
- Call fallback in extract_company_data if primary fails"
- Add minor logging to _extract_first_paragraph_from_soup"
- Adjust extract_numeric_value for robustness"
- Increment version to 1.6.5"
2025-04-18 16:44:20 +00:00
4a34292d3a bugfix 2025-04-18 14:20:36 +00:00
b33bea2dbd bugfix 2025-04-18 14:08:09 +00:00
6d2a50dcdf bugfix 2025-04-18 10:57:37 +00:00
a9695a4473 bugfix 2025-04-18 09:53:40 +00:00
4489d8f8c2 bugfix 2025-04-18 09:49:46 +00:00
e3ccb5c81b bugfix 2025-04-18 06:44:42 +00:00
1e4492e9ce bugfix 2025-04-18 06:40:17 +00:00
a0b8ca5f41 bugfix 2025-04-18 06:35:55 +00:00
d422260fff bugfix 2025-04-18 06:30:48 +00:00
45441ae4d7 bugfix 2025-04-18 06:25:05 +00:00
4d3c2ded52 bugfix 2025-04-18 06:18:56 +00:00
5ca84818e9 bugfix 2025-04-18 06:10:21 +00:00
a45e1a3109 bugfix 2025-04-17 19:32:37 +00:00
faac14c91b bugfix 2025-04-17 19:19:44 +00:00
c27e608913 bugfix 2025-04-17 18:50:28 +00:00
45b96f296b bugfix 2025-04-17 18:34:42 +00:00
605a85450f bugfix 2025-04-17 18:28:45 +00:00
6759e45843 debug 2025-04-17 18:16:24 +00:00
da0d1e18aa bugfix 2025-04-17 16:53:26 +00:00
bc96d6d943 bugfix 2025-04-17 15:28:11 +00:00
d13e84779d bugfix 2025-04-17 15:18:14 +00:00
98cd36f21c bugfix 2025-04-17 14:53:46 +00:00
4ea7468031 bugfix 2025-04-17 14:48:10 +00:00
4163f14855 bugfix 2025-04-17 14:36:23 +00:00
eb3308a41e v1.6.4: Implementiere ML-Modelltraining zur Technikerschätzung
- Füge neuen Betriebsmodus `--mode train_technician_model` hinzu.
- Implementiere Datenvorbereitung in `DataProcessor.prepare_data_for_modeling`:
    - Lädt relevante Spalten.
    - Konsolidiert Umsatz/Mitarbeiter (Wiki > CRM Priorität).
    - Filtert nach gültiger Technikerzahl (>0).
    - Erstellt Zielvariable `Techniker_Bucket` (7 Kategorien).
    - Führt One-Hot Encoding für Branchen durch.
- Implementiere Logik im `train_technician_model`-Modus in `main`:
    - Führt Train/Test-Split durch (stratifiziert).
    - Imputiert fehlende numerische Werte mit Median (fittet auf Train, transformiert Train/Test).
    - Trainiert einen `DecisionTreeClassifier` mittels `GridSearchCV` zur Hyperparameter-Optimierung (Fokus auf `f1_weighted`).
    - Evaluiert das beste Modell auf dem Test-Set (Accuracy, Classification Report, Confusion Matrix).
    - Extrahiert Baumregeln mittels `export_text`.
    - Speichert den trainierten Imputer, das beste Modell (`.pkl`) und die extrahierten Regeln (`.txt`).
- Füge notwendige Imports für `pandas`, `numpy`, `sklearn`, `pickle`, `json` hinzu.
- Ergänze neue Konfigurationsparameter für ML in `Config` (Worker, Limits).
- Füge Kommandozeilenargumente für Modell-Ausgabedateien hinzu.
2025-04-17 14:00:30 +00:00
b2316b9337 bugfix 2025-04-17 13:08:19 +00:00
a46843cafc bugfix 2025-04-17 13:03:25 +00:00
4c1cdf5b72 bugfix 2025-04-17 12:53:10 +00:00
f386bf885f bugfix 2025-04-17 12:48:03 +00:00
f259307b19 bugfix 2025-04-17 12:26:07 +00:00
4ffb57268d bugfix 2025-04-17 11:01:49 +00:00
4d02ac4910 bugfix 2025-04-17 10:56:02 +00:00
6fe8254733 bugfix 2025-04-17 10:55:04 +00:00
66b03d6583 bugfix 2025-04-17 10:53:59 +00:00
8acf404479 bugfix 2025-04-17 10:52:30 +00:00
392ecfde2e bugfix 2025-04-17 10:28:13 +00:00
8e6d263a64 bugfix 2025-04-17 10:23:09 +00:00
d9d33db2eb bugfix 2025-04-17 10:05:07 +00:00
a2d5ffcd66 bugfix 2025-04-17 09:57:44 +00:00