cmagganas's picture
Upload folder using huggingface_hub
73588d1
raw
history blame
2.08 kB
def compare_completion_and_prediction(completion, prediction, verbose=False):
"""
a function that compares the completion and prediction
separating each string by comma into their respective columns,
then compare each column and return a DataFrame with the results
Args:
completion (_type_): str
prediction (_type_): str
verbose (bool, optional): bool. Defaults to False.
Returns:
_type_: json object with completion, prediction, matches, and num_correct
"""
# if verbose is True, print the completion and prediction strings
if verbose:
print("Completion:", completion, f"type({type(completion)}):")
print("Prediction:", prediction, f"type({type(prediction)}):")
# split completion and prediction strings on comma character
completion = completion.split(',')
prediction = prediction.split(',')
# create a column that counts the number of matches between completion and prediction
matches = [completion[i] == prediction[i] for i in range(len(completion))]
return {
"completion": completion,
"prediction": prediction,
"matches": matches,
"num_correct": sum(matches),
}
def json_to_dict(json_string):
"""function that takes string in the form of json and returns a dictionary"""
json_string = json_string.replace('\n', '')
json_string = json_string.replace('\t', '')
json_string = json_string.replace(' ', '')
json_string = json_string.replace('"', '')
json_string = json_string.replace('{', '')
json_string = json_string.replace('}', '')
json_string = json_string.replace(':', ',')
json_string = json_string.split(',')
return {
json_string[i]: json_string[i + 1]
for i in range(0, len(json_string), 2)
}
def join_dicts(dict1, dict2):
"""function that joins two dictionaries into one dictionary
Args:
dict1 (_type_): dict
dict2 (_type_): dict
Returns:
_type_: dict
"""
return {key:[dict1[key], dict2[key]] for key in dict1}