fork download
  1. import numpy as np
  2. def new_jaccard(vec1, vec2):
  3. vec1 = np.array(vec1)
  4. vec2 = np.array(vec2)
  5. vec1 = vec1/sum(vec1)
  6. vec2 = vec2/sum(vec2)
  7. s0=0
  8. s1=0
  9. s2=0
  10. for i in range(len(vec1)):
  11. s1+=vec1[i]*vec1[i]
  12. s2+=vec2[i]*vec2[i]
  13. s0 += vec1[i]*vec2[i]
  14. print(s0, s1, s2)
  15. return s0/(s1+s2-s0)
  16.  
  17. apple = [0,0,1,0,5,2,2,0,0,0,0,0,0,0,0,0]
  18. hp = [0,0,0,0,5,5,3,5,3,0,3,0,0,0,0,0]
  19. samsung=[1,0,1,0,15,1,9,1,5,0,1,0,1,0,3,0]
  20. print(len(apple), len(hp), len(samsung))
  21.  
  22. print('Apple hp')
  23. print(new_jaccard(apple,hp))
  24. print('Apple samsung')
  25. print(new_jaccard(apple,samsung))
  26.  
  27. print('samsung hp')
  28. print(new_jaccard(samsung,hp))
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
Success #stdin #stdout 0.19s 26864KB
stdin
Standard input is empty
stdout
16 16 16
Apple hp
0.17083333333333334 0.3400000000000001 0.17708333333333334
0.4933814681107098
Apple samsung
0.25263157894736843 0.3400000000000001 0.23961218836565093
0.772619451033548
samsung hp
0.14254385964912283 0.23961218836565093 0.17708333333333334
0.5199452689190615