14
14
"""
15
15
16
16
17
- def jaccard_similariy (set_a , set_b , alternative_union = False ):
17
+ def jaccard_similarity (set_a , set_b , alternative_union = False ):
18
18
"""
19
19
Finds the jaccard similarity between two sets.
20
20
Essentially, its intersection over union.
@@ -35,18 +35,18 @@ def jaccard_similariy(set_a, set_b, alternative_union=False):
35
35
Examples:
36
36
>>> set_a = {'a', 'b', 'c', 'd', 'e'}
37
37
>>> set_b = {'c', 'd', 'e', 'f', 'h', 'i'}
38
- >>> jaccard_similariy (set_a, set_b)
38
+ >>> jaccard_similarity (set_a, set_b)
39
39
0.375
40
40
41
- >>> jaccard_similariy (set_a, set_a)
41
+ >>> jaccard_similarity (set_a, set_a)
42
42
1.0
43
43
44
- >>> jaccard_similariy (set_a, set_a, True)
44
+ >>> jaccard_similarity (set_a, set_a, True)
45
45
0.5
46
46
47
47
>>> set_a = ['a', 'b', 'c', 'd', 'e']
48
48
>>> set_b = ('c', 'd', 'e', 'f', 'h', 'i')
49
- >>> jaccard_similariy (set_a, set_b)
49
+ >>> jaccard_similarity (set_a, set_b)
50
50
0.375
51
51
"""
52
52
@@ -67,14 +67,15 @@ def jaccard_similariy(set_a, set_b, alternative_union=False):
67
67
68
68
if alternative_union :
69
69
union = len (set_a ) + len (set_b )
70
+ return len (intersection ) / union
70
71
else :
71
72
union = set_a + [element for element in set_b if element not in set_a ]
73
+ return len (intersection ) / len (union )
72
74
73
75
return len (intersection ) / len (union )
74
76
75
77
76
78
if __name__ == "__main__" :
77
-
78
79
set_a = {"a" , "b" , "c" , "d" , "e" }
79
80
set_b = {"c" , "d" , "e" , "f" , "h" , "i" }
80
- print (jaccard_similariy (set_a , set_b ))
81
+ print (jaccard_similarity (set_a , set_b ))
0 commit comments