import re def extract_operation(question): ops = { "add": "add", "plus": "add", "+": "add", "subtract": "subtract", "minus": "subtract", "-": "subtract", "multiply": "multiply", "times": "multiply", "*": "multiply", "divide": "divide", "over": "divide", "/": "divide" } for word in question.lower().split(): if word in ops: return ops[word] return None def extract_numbers(question): return [float(n) for n in re.findall(r"[-+]?\d*\.\d+|\d+", question)]