Spaces:
Sleeping
Sleeping
import numpy as np | |
from sklearn.metrics.pairwise import cosine_similarity | |
def find_self_closest_match(sim_matrix, word_list): | |
'''sim_matrix should be (n,n)''' | |
n = sim_matrix.shape[0] | |
sim_matrix[range(n), range(n)] = 0 | |
indices = np.argmax(sim_matrix, axis = -1) | |
ret_list = [] | |
for ind in indices: | |
ret_list.append(word_list[ind]) | |
return ret_list | |
def find_ref_closest_match(sim_matrix, word_list): | |
''' | |
sim_matrix should be (n_ref, n_query) | |
word_list should be (n_ref,) | |
''' | |
n_ref, n_query = sim_matrix.shape[0], sim_matrix.shape[1] | |
indices = np.argmax(sim_matrix, axis = 0) # similarity matrix, take the maximum | |
#print(indices) | |
ret_list = [] | |
for ind in indices: | |
ret_list.append(word_list[ind]) | |
return ret_list | |
def sort_ref_closest_match(sim_matrix, word_list): | |
''' | |
sim_matrix should be (n_ref, n_query) | |
word_list should be (n_ref,) | |
''' | |
n_ref, n_query = sim_matrix.shape[0], sim_matrix.shape[1] | |
indices_list = np.argsort(sim_matrix, axis = 0)[::-1] # descending order | |
#print(indices_list) | |
ret_list = [] | |
for indices in indices_list: | |
word_sorted = [] | |
for ind in indices: | |
word_sorted.append(word_list[ind]) | |
ret_list.append(word_sorted) | |
return ret_list |