¿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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta