rework category

This commit is contained in:
lelo 2025-06-14 11:26:02 +00:00
parent 84bf7bae0c
commit 05782a0c33

View File

@ -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:
# 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)