in src/dfcx_scrapi/tools/evaluations.py [0:0]
def get_matching_list_idx(a, b):
"""Helper method to find index pairs in the dataset.
Compare lists and find the idx from list a where each element in b fits.
This is used to determine exactly where the utterance or tool pairs
exist in a given dataframe. The pairs are then used to determine where
to write the results after the online inference is complete and the
evals have been computed.
"""
if not b:
return [(a[0], [])] # if b is empty, return
result = []
i, j = 0, 0
current_b = []
while i < len(a) and j < len(b):
if a[i] < b[j]:
current_a = a[i]
if len(current_b) > 0:
result.append((a[i - 1], current_b))
current_b = []
i += 1
elif a[i] > b[j]:
current_b.append(b[j])
j += 1
# if we're at end of list a, and still have list b
# extend the remainder of b
if i == len(a):
current_b.extend(b[j:])
result.append((current_a, current_b))
# if we're at the end of list b, then append our current positions
if j == len(b):
result.append((current_a, current_b))
return result