我的口述如下:
dic = {a1: [a,b,c], b1:[b,k,l]}.
我想为每个键的值列表创建一个相似性矩阵。例如,对于键a1
,我想使用假设方法f
计算(a,b), (a,c) and (b,c)
之间的相似性。f((a,a)) = 1
。我们可以通过创建一个向量并用(a,b), (a,c) and (b,c)
之间的相似度值索引它的元素,然后对b重复相同的过程,即(b,a), (b,b), and (b,c)
等等。但这并不是必要的,因为(b,a) =(a,b)
的相似性。那么如何解决呢?如何创建这样的矩阵?
同样的方法将应用于dic的每个键(即b1等)
如果
f
很昂贵而且不可矢量化,那么您可以使用np.tri
和朋友也可以使用
itertools.starmap(f, itertools.combinations(v, 2))
,而不是map(f, iget(...
。你知道吗相关问题 更多 >
编程相关推荐