Spaces:
Sleeping
Sleeping
| import argparse | |
| import pandas as pd | |
| def find_reciprocal_rank(target, row, u, k): | |
| for i in range(k): | |
| q = row['q{}'.format(i+1)] | |
| if target == q: | |
| print(1/(i+1)) | |
| return 1/(i+1) | |
| return 0 | |
| def main(filename, k): | |
| df = pd.read_csv(filename) | |
| u = len(df) | |
| sum_ = 0 | |
| for _, row in df.iterrows(): | |
| target = row['body'] | |
| reciprocal_rank = find_reciprocal_rank(target, row, u, k) | |
| sum_ += reciprocal_rank | |
| mrr = sum_ / u | |
| print('U:', u) | |
| print('MRR: ', mrr) | |
| if __name__ == '__main__': | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('filename') | |
| parser.add_argument('-k', type=int) | |
| args = parser.parse_args() | |
| main(filename=args.filename, k=args.k) |