From 05782a0c33d56ee8a93d2aca66f9c0801c115647 Mon Sep 17 00:00:00 2001 From: lelo Date: Sat, 14 Jun 2025 11:26:02 +0000 Subject: [PATCH] rework category --- helperfunctions.py | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/helperfunctions.py b/helperfunctions.py index f899176..f39356f 100644 --- a/helperfunctions.py +++ b/helperfunctions.py @@ -84,30 +84,28 @@ def extract_structure_from_string(input_string): # first part not a number pass - if 'predig' in left_side.lower() or 'thema' in left_side.lower(): - category = 'Predigt' - elif 'wort' in left_side.lower() or 'einladung' in left_side.lower() or 'begrüßung' in left_side.lower() or 'ansprache' in left_side.lower() or 'einleitung' in left_side.lower() or 'aufruf zum' in left_side.lower() or 'zuruf zum' in left_side.lower(): - category = 'Vorwort' - elif 'kinderchor' in left_side.lower(): - category = 'Kinderchor' - elif 'jugendchor' in left_side.lower(): - category = 'Jugendchor' - elif 'orchester' in input_string.lower() or 'sinfonie' in input_string.lower() or 'symphonie' in input_string.lower(): - category = 'Orchester' - elif 'chor' in left_side.lower(): - category = 'Chor' - elif 'gemeinsam' in left_side.lower() or 'gemeindelied' in left_side.lower() or 'gemeinsamer gesang' in input_string.lower(): - category = 'Gemeinsamer Gesang' - elif 'gruppenlied' in left_side.lower() or 'jugend' in left_side.lower() or 'lied' in left_side.lower() or 'musikgruppe' in left_side.lower(): - category = 'Gruppenlied' - elif 'gedicht' in left_side.lower(): - category = 'Gedicht' - elif 'vortrag' in left_side.lower() or 'erzä' in left_side.lower() or 'program' in left_side.lower(): - category = 'Erzählung' - elif 'instrumental' in input_string.lower() or 'musikstück' in left_side.lower() or 'harfenstück' in left_side.lower(): - category = 'Instrumental' - else: - category = None + # define your mapping: category → list of trigger-words + CATEGORY_KEYWORDS = { + 'Predigt': ['predig', 'thema'], + 'Vorwort': ['wort', 'einladung', 'begrüßung', 'ansprache', 'einleitung', 'aufruf zum', 'zuruf zum'], + 'Kinderchor': ['kinderchor'], + 'Jugendchor': ['jugendchor'], + 'Orchester': ['orchester', 'sinfonie', 'symphonie'], + 'Chor': ['chor'], + 'Gemeinsamer Gesang': ['gemeinsam', 'gemeindelied', 'gemeinsamer gesang'], + 'Gruppenlied': ['gruppenlied', 'jugend', 'lied', 'musikgruppe'], + 'Gedicht': ['gedicht'], + 'Erzählung': ['vortrag', 'erzä', 'program'], + 'Instrumental': ['instrumental', 'musikstück', 'harfenstück'], + } + + # walk the dict in your desired priority order + category = None + text = left_side.lower() + for cat, keywords in CATEGORY_KEYWORDS.items(): + if any(kw in text for kw in keywords): + category = cat + break if right_side: titel, name = right_side.split('-', 1) if '-' in right_side else (right_side, None)