Cosine.py 662 B

123456789101112131415161718192021222324
  1. import re, math
  2. from collections import Counter
  3. def get_cosine(vec1, vec2):
  4. """"
  5. :return the cosine of 2 vectors following the math equation from Wikipedia
  6. """
  7. intersection = set(vec1.keys()) & set(vec2.keys())
  8. numerator = sum([vec1[x] * vec2[x] for x in intersection])
  9. sum1 = sum([vec1[x] ** 2 for x in vec1.keys()])
  10. sum2 = sum([vec2[x] ** 2 for x in vec2.keys()])
  11. denominator = math.sqrt(sum1) * math.sqrt(sum2)
  12. if not denominator:
  13. return 0.0
  14. else:
  15. return float(numerator) / denominator
  16. def text_to_vector(text):
  17. WORD = re.compile(r'\w+')
  18. words = WORD.findall(text)
  19. return Counter(words)