Я не осознавал, что эта функция set Python фактически разделяет строку на отдельные символы. Я написал функцию Python для Jaccard и использовал метод пересечения Python. Я передал два набора в этот метод, и перед передачей двух наборов в мою функцию жаккарда я использую функцию набора для setring.
пример :предположим, что у меня есть строка NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
, я бы назвал set(NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg)
, которая разделит строку на символы. Поэтому, когда я отправляю его на пересечение функций жаккарда, на самом деле смотрю на пересечение символов, а не на пересечение слов. Как я могу сделать слово в слово пересечение.
#implementing jaccard
def jaccard(a, b):
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
если я не вызываю функцию set
для своей строки NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
, я получаю следующую ошибку:
c = a.intersection(b)
AttributeError: 'str' object has no attribute 'intersection'
Вместо пересечения символов я хочу сделать пересечение слов и получить сходство с жаккардом.