¿Cómo usar los núcleos de cadena en scikit-learn?
Estoy tratando de generar un núcleo de cadena que alimente un clasificador de vectores de soporte. Lo probé con una función que calcula el núcleo, algo así
def stringkernel(K, G):
for a in range(len(K)):
for b in range(len(G)):
R[a][b] = scipy.exp(editdistance(K[a] , G[b]) ** 2)
return R
Y cuando lo paso a SVC como parámetro obtengo
clf = svm.SVC(kernel = my_kernel)
clf.fit(data, target)
ValueError: could not convert string to float: photography
donde mis datos son una lista de cadenas y el destino es la clase correspondiente a la que pertenece esta cadena. He revisado algunas preguntas en stackoverflow con respecto a este problema, pero creo que una representación de bolsa de palabras no es apropiada para este caso.