def getPairsFast(d, type):
X = []
T = []
pairs = []
for i in range(len(d)):
(p1,p2) = d[i]
X.append(p1.representation)
X.append(p2.representation)
T.append(p1)
T.append(p2)
arr = pdist(X,'cosine')
arr = squareform(arr)
for i in range(len(arr)):
arr[i,i]=1
if i % 2 == 0:
arr[i,i+1] = 1
else:
arr[i,i-1] = 1
arr = np.argmin(arr,axis=1)
for i in range(len(d)):
(t1,t2) = d[i]
p1 = None
p2 = None
if type == "MAX":
p1 = T[arr[2*i]]
p2 = T[arr[2*i+1]]
if type == "RAND":
p1 = getPairRand(d,i)
p2 = getPairRand(d,i)
if type == "MIX":
p1 = getPairMixScore(d,i,T[arr[2*i]])
p2 = getPairMixScore(d,i,T[arr[2*i+1]])
pairs.append((p1,p2))
return pairs
ppdb_utils.py 文件源码
python
阅读 39
收藏 0
点赞 0
评论 0
评论列表
文章目录