MCPcopy Create free account
hub / github.com/InternScience/SciReason / normalize_answer

Function normalize_answer

opencompass/datasets/tabmwp.py:61–88  ·  view source on GitHub ↗
(text, unit)

Source from the content-addressed store, hash-verified

59
60
61def normalize_answer(text, unit):
62 # ["1,000", "123", "3/4", "56.456", "$56.4", "-3", "-10.02", "-3/2"]
63
64 text = re.sub(r'^[\$]', '', text)
65 text = re.sub(r'[\,\.\,\/]$', '', text)
66
67 result = re.match(r'^[-+]?[\d,./]+$', text)
68
69 if result is not None:
70 # is number?
71 text = text.replace(',', '')
72 result = re.match(r'[-+]?\d+$', text)
73
74 if result is not None:
75 number = int(text)
76 elif '/' in text:
77 nums = text.split('/')
78 number = round(float(nums[0]) / float(nums[1]), 3)
79 else:
80 number = round(float(text), 3)
81 number = str(number)
82 number = re.sub(r'\.[0]+$', '', number)
83 return number
84 else:
85 # is text
86 if unit:
87 text = text.replace(unit, '').strip()
88 return text
89
90
91def score_string_similarity(str1, str2):

Callers 2

_preprocessMethod · 0.70
qa_f1_scoreMethod · 0.70

Calls 1

replaceMethod · 0.80

Tested by

no test coverage detected