def margins(doc_scores):
margin_win = np.zeros_like(doc_scores)
margin_lose = np.zeros_like(doc_scores)
for j in range(doc_scores.shape[1]):
my_scores = doc_scores[:, j]
others = np.delete(doc_scores, j, axis=1)
if FROM == 'second':
margin_win[:, j] = np.maximum(my_scores - others.max(axis=1), 0)
margin_lose[:, j] = np.maximum(others.min(axis=1) - my_scores, 0)
if FROM == 'other':
margin_win[:, j] = np.maximum(my_scores - others.min(axis=1), 0)
margin_lose[:, j] = np.maximum(others.max(axis=1) - my_scores, 0)
elif FROM == 'median':
margin_win[:, j] = np.maximum(my_scores - np.median(others,
axis=1), 0)
margin_lose[:, j] = np.maximum(np.median(others, axis=1) -
my_scores, 0)
return margin_win, margin_lose
评论列表
文章目录