| 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)] | |