MasteredUltraInstinct commited on
Commit
3f6c3ea
·
verified ·
1 Parent(s): 325bf57

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -4
app.py CHANGED
@@ -15,10 +15,10 @@ model = LatexOCR()
15
 
16
  # Clean LaTeX output
17
  def clean_latex(latex):
18
- # Fix accidental LaTeX escapes like \+ or \=
19
  latex = re.sub(r'\\([+\-=])', r'\1', latex)
20
 
21
- # Fix common OCR misreads like \chi → x
22
  replacements = {
23
  r'\chi': 'x',
24
  r'\xi': 'x',
@@ -29,23 +29,37 @@ def clean_latex(latex):
29
  for wrong, correct in replacements.items():
30
  latex = latex.replace(wrong, correct)
31
 
 
32
  latex = re.sub(r'\\(cal|mathcal)\s*X', 'x', latex)
33
  latex = re.sub(r'\\(cal|mathcal)\s*Y', 'y', latex)
34
  latex = re.sub(r'\\(cal|mathcal)\s*Z', 'z', latex)
 
 
35
  latex = latex.replace('{', '').replace('}', '')
36
- latex = latex.strip().rstrip(',.')
 
 
37
  latex = re.sub(r'(\d+)\s*\\pi', r'(\1*3.1416)', latex)
38
  latex = latex.replace(r'\pi', '3.1416')
39
  latex = re.sub(r'(\d+)\s*e', r'(\1*2.7183)', latex)
40
  latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', '2.7183', latex)
 
 
41
  latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
42
  latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
43
  latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
 
 
44
  latex = re.sub(r'\(([^()]+?)\)\s*([a-zA-Z](\^\d+)?)', r'(\1)*\2', latex)
 
 
45
  latex = latex.replace(r'\cdot', '*')
46
- latex = latex.replace('−', '-')
 
 
47
  if '=' not in latex:
48
  latex += '=0'
 
49
  return latex
50
 
51
 
 
15
 
16
  # Clean LaTeX output
17
  def clean_latex(latex):
18
+ # Fix invalid LaTeX escapes like \+ \- \=
19
  latex = re.sub(r'\\([+\-=])', r'\1', latex)
20
 
21
+ # 🔁 Replace common misrecognized symbols
22
  replacements = {
23
  r'\chi': 'x',
24
  r'\xi': 'x',
 
29
  for wrong, correct in replacements.items():
30
  latex = latex.replace(wrong, correct)
31
 
32
+ # Replace mathcal variables
33
  latex = re.sub(r'\\(cal|mathcal)\s*X', 'x', latex)
34
  latex = re.sub(r'\\(cal|mathcal)\s*Y', 'y', latex)
35
  latex = re.sub(r'\\(cal|mathcal)\s*Z', 'z', latex)
36
+
37
+ # Remove curly braces
38
  latex = latex.replace('{', '').replace('}', '')
39
+ latex = latex.strip().rstrip(',.') # remove trailing punctuation
40
+
41
+ # Replace constants like pi and e
42
  latex = re.sub(r'(\d+)\s*\\pi', r'(\1*3.1416)', latex)
43
  latex = latex.replace(r'\pi', '3.1416')
44
  latex = re.sub(r'(\d+)\s*e', r'(\1*2.7183)', latex)
45
  latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', '2.7183', latex)
46
+
47
+ # Add explicit multiplication between numbers and letters
48
  latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
49
  latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
50
  latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
51
+
52
+ # Add multiplication for expressions like (x+1)x
53
  latex = re.sub(r'\(([^()]+?)\)\s*([a-zA-Z](\^\d+)?)', r'(\1)*\2', latex)
54
+
55
+ # Fix other symbols
56
  latex = latex.replace(r'\cdot', '*')
57
+ latex = latex.replace('−', '-') # Replace Unicode minus
58
+
59
+ # Ensure it's an equation
60
  if '=' not in latex:
61
  latex += '=0'
62
+
63
  return latex
64
 
65