Если вы пытаетесь ранжировать их на Doc, я предлагаю использовать кортеж для Token. Я не уверен в математике позади косинусного сходства, но предполагая, что мы можем использовать функцию f(x,y)
, которая возвращает сходство косинусов между x и y, мы можем применить это к Token 1 to Token 2 и 3 согласно вашему предложению следующим образом:
list_with_scores = []
for i,doc in enumerate(Docs):
score1_3 = f(doc[0],doc[1])
score1_3 = f(doc[0],doc[2])
list_with_scores.append(i,score1_3, score_2_3,)
#then sort by score1_3
sortedlist1 = sorted(list_with_scores, key = lambda x:x[1])
#similary, sort by score2_3
sortedlist2 = sorted(list_with_scores, key = lambda x:x[2])
Вы также можете сохранить маркерный знак в кортеже, если потребуется. И явное сохранение до score1_3
и score1_2
может быть удалено, это сделано для чтения, возможно, лучше оставить их как есть. Для получения дополнительной информации о сортировочной части, пожалуйста, проверьте Sort a list of tuples by 2nd item (integer value)