No me di cuenta de que la función de ajuste de Python realmente separaba la cadena en caracteres individuales. Escribí la función python para Jaccard y usé el método de intersección de python. Pasé dos juegos en este método y antes de pasar los dos juegos a mi función jaccard utilizo la función set en el setring.Python: Distancia de Jaccard usando la intersección de palabras pero no la intersección de caracteres
ejemplo: supongo que tengo la cadena NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
que llamaría set(NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg)
que separará cadena en caracteres. Entonces, cuando lo envío a la intersección con la función jaccard, en realidad miran intersección de caracteres en lugar de intersección de palabra a palabra. ¿Cómo puedo hacer una intersección de palabra a palabra?
#implementing jaccard
def jaccard(a, b):
c = a.intersection(b)
return float(len(c))/(len(a) + len(b) - len(c))
si no llamo set
función en mi cadena NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
me sale el siguiente error:
c = a.intersection(b)
AttributeError: 'str' object has no attribute 'intersection'
En vez de carácter a carácter intersección que quiero hacer palabra a palabra intersección y obtener el Jaccard semejanza.
En realidad, esto es exactamente lo que estaba buscando cuando uso la función de agregar durante la intersección busca la coincidencia completa. –