Non mi sono reso conto che la funzione di set Python separa effettivamente la stringa in singoli caratteri. Ho scritto la funzione Python per Jaccard e ho usato il metodo di intersezione python. Ho passato due set in questo metodo e prima di passare i due set nella mia funzione jaccard uso la funzione set sul setring.Python: Jaccard Distance utilizzando l'intersezione di parole ma non l'intersezione di caratteri
esempio: suppongo di avere una stringa NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
che chiamerei set(NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg)
che separerà la stringa in caratteri. Quindi, quando lo mando all'intersezione della funzione jaccard, in realtà guardo l'intersezione del carattere anziché l'intersezione tra parole e parole. Come posso fare l'intersezione parola per parola.
#implementing jaccard
def jaccard(a, b):
c = a.intersection(b)
return float(len(c))/(len(a) + len(b) - len(c))
se io non chiamo set
funzione mia stringa NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
ricevo il seguente errore:
c = a.intersection(b)
AttributeError: 'str' object has no attribute 'intersection'
Invece di carattere a carattere di intersezione che voglio fare parola per parola incrocio e ottenere il Jaccard somiglianza.
In realtà questa è la cosa esatta che stavo cercando quando uso la funzione add durante l'intersezione che cerca la corrispondenza completa. –