Spaces:
Running
Running
| import re | |
| def parse_problem(text: str): | |
| cleaned_text = text.strip() | |
| cleaned_text = re.sub(r"\s+", " ", cleaned_text) | |
| # Extract variables | |
| variables = list(set(re.findall(r"[a-zA-Z]", cleaned_text))) | |
| # Extract constraints | |
| constraints = re.findall(r"[a-zA-Z]\s*[><=]+\s*\d+", cleaned_text) | |
| # Topic detection | |
| topic = "general" | |
| text_lower = cleaned_text.lower() | |
| if "probability" in text_lower: | |
| topic = "probability" | |
| elif "matrix" in text_lower: | |
| topic = "linear_algebra" | |
| elif "derivative" in text_lower: | |
| topic = "calculus" | |
| elif "solve" in text_lower: | |
| topic = "algebra" | |
| # Check ambiguity | |
| needs_clarification = False | |
| if len(cleaned_text.split()) < 3: | |
| needs_clarification = True | |
| return { | |
| "problem_text": cleaned_text, | |
| "topic": topic, | |
| "variables": variables, | |
| "constraints": constraints, | |
| "needs_clarification": needs_clarification | |
| } |