Ich verfolge den Code auf diesen link das Ähnlichkeitsmaß zwischen dem Eingang X und Y zu finden:Wie finden Sie Ähnlichkeitsmaß zwischen zwei Sätzen mit Simple Matching Coefficient?
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]
Es ist jedoch davon aus, dass der Eingang X und Y jeweils N1 * M
und N2 * M
dimensionale Matrizen sein sollten. Ich bin verwirrt, wie ich meine Eingabe, die Sätze variabler Länge sind, in das erforderliche Eingabeformat konvertieren kann.
Auch wäre ich dankbar, wenn jemand mir eine andere Methode vorschlagen könnte, um das gleiche zu finden.
können Sie einige Beispieldaten posten? –