MasteredUltraInstinct commited on
Commit
480f7a3
Β·
verified Β·
1 Parent(s): bec810e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -53
app.py CHANGED
@@ -23,51 +23,49 @@ def clean_latex(latex):
23
  # βœ… Fix invalid LaTeX escapes like \+ \- \=
24
  latex = re.sub(r'\\([+\-=])', r'\1', latex)
25
 
26
- # πŸ” Replace common misrecognized symbols (with and without backslash)
27
  replacements = {
28
  r'\\chi': 'x', r'chi': 'x',
29
  r'\\xi': 'x', r'xi': 'x',
30
- r'\\alpha': 'a', r'alpha': 'a',
31
  r'\\beta': 'b', r'beta': 'b',
32
- r'\\gamma': 'y', r'gamma': 'y'
 
 
33
  }
34
  for wrong, correct in replacements.items():
35
  latex = re.sub(wrong, correct, latex)
36
 
37
  # βœ… Fix mathcal and cal variables in all formats
38
- latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*X\s*\}?', 'x', latex)
39
- latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*Y\s*\}?', 'y', latex)
40
- latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*Z\s*\}?', 'z', latex)
41
 
42
- # βœ… Also clean up OCR leftovers like `cal X`, `mathcal x`
43
- latex = latex.replace('cal x', 'x')
44
- latex = latex.replace('cal X', 'x')
45
- latex = latex.replace('mathcal x', 'x')
46
- latex = latex.replace('mathcal X', 'x')
47
 
48
  # 🧹 Remove curly braces and punctuation
49
  latex = latex.replace('{', '').replace('}', '')
50
  latex = latex.strip().rstrip(',.') # remove trailing punctuation
51
 
52
- # βœ… Replace constants
53
  latex = re.sub(r'(\d+)\s*\\pi', r'(\1*3.1416)', latex)
54
  latex = latex.replace(r'\pi', '3.1416')
55
  latex = re.sub(r'(\d+)\s*e', r'(\1*2.7183)', latex)
56
  latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', '2.7183', latex)
57
 
58
- # βœ… Add multiplication where missing
59
  latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
60
  latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
61
  latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
62
-
63
- # βœ… (x+1)x β†’ (x+1)*x
64
  latex = re.sub(r'\(([^()]+?)\)\s*([a-zA-Z](\^\d+)?)', r'(\1)*\2', latex)
65
 
66
  # βœ… Fix symbols
67
  latex = latex.replace(r'\cdot', '*')
68
  latex = latex.replace('βˆ’', '-') # Unicode minus
69
 
70
- # βœ… Final cleanup: remove any stray garbage symbols
71
  latex = re.sub(r'[^\w\s^=+*\-().]', '', latex)
72
 
73
  # βœ… Ensure it's an equation
@@ -77,43 +75,6 @@ def clean_latex(latex):
77
  return latex
78
 
79
 
80
- # Replace mathcal variables
81
- latex = re.sub(r'\\(cal|mathcal)\s*X', 'x', latex)
82
- latex = re.sub(r'\\(cal|mathcal)\s*Y', 'y', latex)
83
- latex = re.sub(r'\\(cal|mathcal)\s*Z', 'z', latex)
84
-
85
- # Remove curly braces
86
- latex = latex.replace('{', '').replace('}', '')
87
- latex = latex.strip().rstrip(',.') # remove trailing punctuation
88
-
89
- # Replace constants like pi and e
90
- latex = re.sub(r'(\d+)\s*\\pi', r'(\1*3.1416)', latex)
91
- latex = latex.replace(r'\pi', '3.1416')
92
- latex = re.sub(r'(\d+)\s*e', r'(\1*2.7183)', latex)
93
- latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', '2.7183', latex)
94
-
95
- # Add explicit multiplication between numbers and letters
96
- latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
97
- latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
98
- latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
99
-
100
- # Add multiplication for expressions like (x+1)x
101
- latex = re.sub(r'\(([^()]+?)\)\s*([a-zA-Z](\^\d+)?)', r'(\1)*\2', latex)
102
-
103
- # Fix other symbols
104
- latex = latex.replace(r'\cdot', '*')
105
- latex = latex.replace('βˆ’', '-') # Replace Unicode minus
106
-
107
- # πŸ”§ NEW FIX: Final cleanup - remove stray characters if needed
108
- latex = re.sub(r'[^\w\s^=+*\-().]', '', latex)
109
-
110
- # Ensure it's an equation
111
- if '=' not in latex:
112
- latex += '=0'
113
-
114
- return latex
115
-
116
-
117
 
118
 
119
  # Fallback to external LLM microservice
 
23
  # βœ… Fix invalid LaTeX escapes like \+ \- \=
24
  latex = re.sub(r'\\([+\-=])', r'\1', latex)
25
 
26
+ # πŸ” Replace common misrecognized symbols
27
  replacements = {
28
  r'\\chi': 'x', r'chi': 'x',
29
  r'\\xi': 'x', r'xi': 'x',
30
+ r'\\alpha': 'x', r'alpha': 'x',
31
  r'\\beta': 'b', r'beta': 'b',
32
+ r'\\gamma': 'y', r'gamma': 'y',
33
+ r'\\vartheta': '3', r'vartheta': '3',
34
+ r'\\mathcalW': 'x', r'mathcalW': 'x',
35
  }
36
  for wrong, correct in replacements.items():
37
  latex = re.sub(wrong, correct, latex)
38
 
39
  # βœ… Fix mathcal and cal variables in all formats
40
+ latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*[Xx]\s*\}?', 'x', latex)
41
+ latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*[Yy]\s*\}?', 'y', latex)
42
+ latex = re.sub(r'\\(cal|mathcal)\s*\{?\s*[Zz]\s*\}?', 'z', latex)
43
 
44
+ # βœ… Also clean up OCR leftovers like "cal X", "mathcal x"
45
+ latex = latex.replace('cal x', 'x').replace('cal X', 'x')
46
+ latex = latex.replace('mathcal x', 'x').replace('mathcal X', 'x')
 
 
47
 
48
  # 🧹 Remove curly braces and punctuation
49
  latex = latex.replace('{', '').replace('}', '')
50
  latex = latex.strip().rstrip(',.') # remove trailing punctuation
51
 
52
+ # βœ… Replace constants like pi and e
53
  latex = re.sub(r'(\d+)\s*\\pi', r'(\1*3.1416)', latex)
54
  latex = latex.replace(r'\pi', '3.1416')
55
  latex = re.sub(r'(\d+)\s*e', r'(\1*2.7183)', latex)
56
  latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', '2.7183', latex)
57
 
58
+ # βœ… Add multiplication
59
  latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
60
  latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
61
  latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
 
 
62
  latex = re.sub(r'\(([^()]+?)\)\s*([a-zA-Z](\^\d+)?)', r'(\1)*\2', latex)
63
 
64
  # βœ… Fix symbols
65
  latex = latex.replace(r'\cdot', '*')
66
  latex = latex.replace('βˆ’', '-') # Unicode minus
67
 
68
+ # βœ… Final cleanup
69
  latex = re.sub(r'[^\w\s^=+*\-().]', '', latex)
70
 
71
  # βœ… Ensure it's an equation
 
75
  return latex
76
 
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
 
79
 
80
  # Fallback to external LLM microservice