import re def parse_script(script): pattern = r"\[(.*?)\]:\s*(.*?)(?=\n\[|$)" matches = re.findall(pattern, script, re.DOTALL) parsed = [] for speaker_info, text in matches: name = speaker_info.split("(")[0].strip() gender = "female" if "WOMAN" in speaker_info else "male" parsed.append((name, gender, text.strip())) return parsed