J'ai suivi le code sur ce link pour trouver la mesure de similarité entre l'entrée X et Y:Comment trouver la mesure de similarité entre deux phrases en utilisant le simple coefficient de correspondance?
def similarity(X, Y, method):
X = np.mat(X)
Y = np.mat(Y)
N1, M = np.shape(X)
N2, M = np.shape(Y)
method = method[:3].lower()
if method=='smc': # SMC
X,Y = binarize(X,Y);
sim = ((X*Y.T)+((1-X)*(1-Y).T))/M
return sim
def binarize(X,Y=None):
''' Force binary representation of the matrix, according to X>median(X) '''
if Y==None:
X = np.matrix(X)
Xmedians = np.ones((np.shape(X)[0],1)) * np.median(X,0)
Xflags = X>Xmedians
X[Xflags] = 1; X[~Xflags] = 0
return X
else:
X = np.matrix(X); Y = np.matrix(Y);
XYmedian= np.median(np.bmat('X; Y'),0)
Xmedians = np.ones((np.shape(X)[0],1)) * XYmedian
Xflags = X>Xmedians
X[Xflags] = 1; X[~Xflags] = 0
Ymedians = np.ones((np.shape(Y)[0],1)) * XYmedian
Yflags = Y>Ymedians
Y[Yflags] = 1; Y[~Yflags] = 0
return [X,Y]
Cependant, il suppose que l'entrée X et Y doivent être N1 * M
et N2 * M
matrices dimensions respectivement. Je suis confus à la façon de convertir mes entrées qui sont des phrases de longueur variable dans le format d'entrée requis.
En outre, je serais reconnaissant si quelqu'un pourrait me suggérer une autre méthode pour trouver la même chose.
pouvez-vous poster des exemples de données? –